feat(android): up android sdk version

This commit is contained in:
2021-05-24 22:02:00 +03:00
parent e0eddbcab5
commit 715f6807d8
5 changed files with 41 additions and 23 deletions

View File

@@ -12,27 +12,22 @@ const Env = require('./env');
class Android extends Sdk {
constructor(version) {
constructor(version, ndkVersion) {
super(Android.ID, version || Android.VERSION);
this.ndk_version = 'r15c';
this.ndk_version = ndkVersion || Android.NDK_VERSION;
this.repository = 'https://dl.google.com/android/repository';
}
get prepared() {
try {
return fs.existsSync(`${this.path}/tools/bin/sdkmanager`);
return fs.existsSync(this.sdkmanager_bin);
} catch (e) {
return false;
}
}
get link() {
const system = System.isWindows ? 'windows' : System.isLinux ? 'linux' : null;
if (!system) throw 'Unsupported system';
if (this.version.indexOf('.') > -1) {
return `https://dl.google.com/android/repository/tools_r${this.version}-${system}.zip`;
} else {
return `https://dl.google.com/android/repository/sdk-tools-${system}-${this.version}.zip`;
}
return `${this.repository}/commandlinetools-${System.os}-${this.version}_latest.zip`;
}
get android_home() {
@@ -43,6 +38,10 @@ class Android extends Sdk {
return path.join(this.path, 'ndk-bundle')
}
get sdkmanager_bin() {
return path.join(this.path, 'cmdline-tools/bin/sdkmanager');
}
prepare() {
const result = [];
result.push(super.prepare(0));
@@ -54,7 +53,7 @@ class Android extends Sdk {
prepare_ndk() {
// ToDo: support windows
const url = `https://dl.google.com/android/repository/android-ndk-${this.ndk_version}-linux-x86_64.zip`;
const url = `${this.repository}/android-ndk-${this.ndk_version}-${System.os}-x86_64.zip`;
this.log.d('download: *%s*', url);
return Sdk.Downloader.download(url, this.ndk_home, 1, true);
}
@@ -76,12 +75,15 @@ class Android extends Sdk {
if (install.size === 0) {
return Promise.resolve();
}
const androidBin = path.join(this.path, 'tools/bin/sdkmanager');
if (fs.existsSync(androidBin)) {
fs.chmodSync(androidBin, 0o755);
const sdkmanagerBin = this.sdkmanager_bin;
if (fs.existsSync(sdkmanagerBin)) {
fs.chmodSync(sdkmanagerBin, 0o755);
}
const yes = '(while sleep 3; do echo "y"; done)';
const command = [yes, '|', androidBin].concat(Array.from(install).map(name => `"${name}"`)).join(' ');
const command = [yes, '|', sdkmanagerBin]
.concat(Array.from(install).map(name => `"${name}"`))
.concat([`--sdk_root="${this.path}"`])
.join(' ');
return exec('.', command).then(() => {
for (const key of install) {
installed.add(key);
@@ -180,8 +182,11 @@ class Android extends Sdk {
const self = this;
return through.obj(function(file, enc, callback) {
self._installApk(file.path, file.package).then(() => {
this.push(file);
callback();
// ToDo: kludge: delay before start
setTimeout(() => {
this.push(file);
callback();
}, 500);
});
});
}
@@ -242,10 +247,10 @@ class Android extends Sdk {
Android.ID = 'android';
Android.VERSION_25_2_3 = '25.2.3';
Android.VERSION_3859397 = '3859397';
Android.VERSION_4333796 = '4333796';
Android.VERSION_7302050 = '7302050';
Android.VERSION = Android.VERSION_7302050;
Android.VERSION = Android.VERSION_4333796;
Android.NDK_VERSION_R15C = 'r15c';
Android.NDK_VERSION = Android.NDK_VERSION_R15C;
module.exports = Android;