From e7287c678b52c56664d1d2651cb0b777647afa61 Mon Sep 17 00:00:00 2001 From: Ai <132525856+LZX284@users.noreply.github.com> Date: Wed, 19 Jul 2023 11:57:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=BB=A5=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E6=89=93=E5=8C=85=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=8C=85=E5=90=8D=E6=9F=A5=E8=AF=A2=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 改为以插件方式打包,避免增加APP体积; 通过包名判断相应插件应用是否存在,并添加包名查询权限。 --- app/src/main/AndroidManifest.xml | 3 +++ .../apkbuilder/ApkBuilderPluginHelper.java | 8 +++++++- .../autojs/ui/project/BuildActivity.java | 19 ++++--------------- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9e26c272..04e7e9ff 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -92,6 +92,9 @@ android:name="android.permission.WRITE_SECURE_SETTINGS" tools:ignore="ProtectedPermissions" /> + + diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilderPluginHelper.java b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilderPluginHelper.java index 88614c61..51a585a9 100644 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilderPluginHelper.java +++ b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilderPluginHelper.java @@ -23,7 +23,13 @@ public class ApkBuilderPluginHelper { private static final boolean DEBUG_APK_PLUGIN = false; public static boolean isPluginAvailable(Context context) { - return DeveloperUtils.checkSignature(context, PLUGIN_PACKAGE_NAME); +// return DeveloperUtils.checkSignature(context, PLUGIN_PACKAGE_NAME); + try { + context.getPackageManager().getPackageInfo(PLUGIN_PACKAGE_NAME, 0); + } catch (PackageManager.NameNotFoundException e) { + return false; + } + return true; } public static InputStream openTemplateApk(Context context) { diff --git a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java index d927a22c..1d238169 100644 --- a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java +++ b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java @@ -34,9 +34,7 @@ import org.autojs.autojs6.R; import org.autojs.autojs6.databinding.ActivityBuildBinding; import java.io.File; -import java.io.IOException; import java.io.InputStream; -import java.util.Arrays; import java.util.Objects; import java.util.regex.Pattern; @@ -98,7 +96,7 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa if (mSource != null) { setupWithSourceFile(new ScriptFile(mSource)); } -// checkApkBuilderPlugin(); + checkApkBuilderPlugin(); } private void checkApkBuilderPlugin() { @@ -184,16 +182,8 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa } void buildApk() { -// if (!ApkBuilderPluginHelper.isPluginAvailable(this)) { -// ViewUtils.showToast(this, R.string.text_apk_builder_plugin_unavailable); -// return; -// } - try { - if (!Arrays.asList(getAssets().list("")).contains("template.apk")) { - return; - } - } catch (IOException e) { - Log.e(LOG_TAG, e.getMessage()); + if (!ApkBuilderPluginHelper.isPluginAvailable(this)) { + ViewUtils.showToast(this, R.string.text_apk_builder_plugin_unavailable); return; } if (!checkInputs()) { @@ -270,8 +260,7 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa } private ApkBuilder callApkBuilder(File tmpDir, File outApk, ApkBuilder.AppConfig appConfig) throws Exception { -// InputStream templateApk = ApkBuilderPluginHelper.openTemplateApk(BuildActivity.this); - InputStream templateApk = getAssets().open("template.apk"); + InputStream templateApk = ApkBuilderPluginHelper.openTemplateApk(BuildActivity.this); return new ApkBuilder(templateApk, outApk, tmpDir.getPath()) .setProgressCallback(BuildActivity.this) .prepare()