From 73881345d5a4c6c31a13dc1b48a64f808fba9ab9 Mon Sep 17 00:00:00 2001 From: shifujun Date: Thu, 25 Jul 2019 18:30:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=A0Loader=E4=B8=AD?= =?UTF-8?q?=E5=87=BA=E7=8E=B0VersionedPackage=E9=80=A0=E6=88=904.4?= =?UTF-8?q?=E8=AE=BE=E5=A4=87Crash=E7=9A=84=E9=97=AE=E9=A2=98=20fix=20#68?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/loader/managers/PluginPackageManagerImpl.kt | 10 ---------- .../core/runtime/PackageManagerInvokeRedirect.java | 2 +- .../shadow/core/runtime/PluginPackageManager.java | 3 --- 3 files changed, 1 insertion(+), 14 deletions(-) diff --git a/projects/sdk/core/loader/src/main/kotlin/com/tencent/shadow/core/loader/managers/PluginPackageManagerImpl.kt b/projects/sdk/core/loader/src/main/kotlin/com/tencent/shadow/core/loader/managers/PluginPackageManagerImpl.kt index 532118ae9..1b38d0bc3 100644 --- a/projects/sdk/core/loader/src/main/kotlin/com/tencent/shadow/core/loader/managers/PluginPackageManagerImpl.kt +++ b/projects/sdk/core/loader/src/main/kotlin/com/tencent/shadow/core/loader/managers/PluginPackageManagerImpl.kt @@ -18,10 +18,8 @@ package com.tencent.shadow.core.loader.managers -import android.annotation.TargetApi import android.content.ComponentName import android.content.pm.* -import android.os.Build import com.tencent.shadow.core.runtime.PluginPackageManager internal class PluginPackageManagerImpl(private val hostPackageManager: PackageManager, @@ -42,14 +40,6 @@ internal class PluginPackageManagerImpl(private val hostPackageManager: PackageM hostPackageManager.getPackageInfo(packageName, flags) } - @TargetApi(Build.VERSION_CODES.O) - override fun getPackageInfo(versionedPackage: VersionedPackage?, flags: Int): PackageInfo? = - if (packageInfo.applicationInfo.packageName == versionedPackage?.packageName) { - packageInfo - } else { - hostPackageManager.getPackageInfo(versionedPackage, flags) - } - override fun getActivityInfo(component: ComponentName, flags: Int): ActivityInfo { if (component.packageName == packageInfo.applicationInfo.packageName) { val pluginActivityInfo = allPluginPackageInfo() diff --git a/projects/sdk/core/runtime/src/main/java/com/tencent/shadow/core/runtime/PackageManagerInvokeRedirect.java b/projects/sdk/core/runtime/src/main/java/com/tencent/shadow/core/runtime/PackageManagerInvokeRedirect.java index c8380d439..373f1f8a8 100644 --- a/projects/sdk/core/runtime/src/main/java/com/tencent/shadow/core/runtime/PackageManagerInvokeRedirect.java +++ b/projects/sdk/core/runtime/src/main/java/com/tencent/shadow/core/runtime/PackageManagerInvokeRedirect.java @@ -54,7 +54,7 @@ public static PackageInfo getPackageInfo(ClassLoader classLoaderOfInvokeCode, St @TargetApi(Build.VERSION_CODES.O) public static PackageInfo getPackageInfo(ClassLoader classLoaderOfInvokeCode, VersionedPackage versionedPackage, int flags) throws PackageManager.NameNotFoundException{ - return getPluginPackageManager(classLoaderOfInvokeCode).getPackageInfo(versionedPackage, flags); + return getPluginPackageManager(classLoaderOfInvokeCode).getPackageInfo(versionedPackage.getPackageName(), flags); } public static ProviderInfo resolveContentProvider(ClassLoader classLoaderOfInvokeCode, String name, int flags) { diff --git a/projects/sdk/core/runtime/src/main/java/com/tencent/shadow/core/runtime/PluginPackageManager.java b/projects/sdk/core/runtime/src/main/java/com/tencent/shadow/core/runtime/PluginPackageManager.java index 57181b543..3da709ac7 100644 --- a/projects/sdk/core/runtime/src/main/java/com/tencent/shadow/core/runtime/PluginPackageManager.java +++ b/projects/sdk/core/runtime/src/main/java/com/tencent/shadow/core/runtime/PluginPackageManager.java @@ -5,7 +5,6 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.ProviderInfo; -import android.content.pm.VersionedPackage; public interface PluginPackageManager { ApplicationInfo getApplicationInfo(String packageName, int flags); @@ -14,7 +13,5 @@ public interface PluginPackageManager { PackageInfo getPackageInfo(String packageName, int flags); - PackageInfo getPackageInfo(VersionedPackage versionedPackage, int flags); - ProviderInfo resolveContentProvider(String name, int flags); } From 20d81f82e5e5cdd72984336bbf2d1cc938f46ada Mon Sep 17 00:00:00 2001 From: shifujun Date: Thu, 25 Jul 2019 18:40:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=AF=B9=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95=E6=B5=8B=E8=AF=95=E6=9C=BA=E7=9A=84?= =?UTF-8?q?=E8=A6=81=E6=B1=82=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6ebc09080..a928c9ee7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,6 +11,7 @@ 1. 不要提交无意义改动。 1. 除非是提交复现问题的测试用例,请确保`gradlew testSdk`构建成功(需要连接Android设备) +1. 测试机需要至少有API 28,API 19两种机器,以保证ART和Dalvik虚拟机都能正常工作。 1. 尽量原子化的提交,配有较为清晰的提交信息。 我们会根据大家的PR再调整PR的要求的。