Qihoo360 / RePlugin

RePlugin - A flexible, stable, easy-to-use Android Plug-in Framework
Apache License 2.0
7.25k stars 1.53k forks source link

360手机F4S 6.0系统 插件进程跳转activity黑屏 #606

Closed jaydon closed 6 years ago

jaydon commented 6 years ago

问题详细描述 Detailed description of the problem

360手机F4S 6.0系统 插件进程跳转activity,但返回上个activity不会黑屏,单独跑和不使用p0进程跑插件也不会有黑屏问题,其它手机如华为手机也不会。

复现问题步骤 Steps to reproduce the problem

其它重要信息 Other important information

replugin-host-lib/gradle Version: rePlugin-plugin-lib/gradle Version:

Android API Version: Android 手机型号&ROM(Phone model & ROM):

Logcat上下文 Logcat context

10:33:52.548 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ms-parser: key:com.yimuapply.ThirdParty.plugin.YimuComunicationService; val:[{action:{com.yimuapply.ThirdParty.plugin.YimuComunicationService,}}, ] key:com.baidu.location.f; val:[] 06-19 10:33:52.548 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ws001: mApplication: ApplicationInfo{cbc2f6 com.yimuapply.apply} 06-19 10:33:52.552 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ws001: get binder = android.os.BinderProxy@a0ff036 proxy fetch binder: binder=android.os.BinderProxy@a0ff036 06-19 10:33:52.557 11801-11813/com.microvideo.mivi:p0 D/RePlugin.task-affinity: useDefault = true 06-19 10:33:52.576 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ws001: get resources for app, r=android.content.res.Resources@7970385 06-19 10:33:52.588 11801-11813/com.microvideo.mivi:p0 I/dex: load /data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar = com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar"],nativeLibraryDirectories=[/data/user/0/com.microvideo.mivi/app_p_n/-1728421574, /vendor/lib, /system/lib]]] 06-19 10:33:52.589 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ws001: pkg context=com.qihoo360.loader2.PluginContext@6adc418 06-19 10:33:52.590 11801-11813/com.microvideo.mivi:p0 I/RePlugin.PluginManagerClient: updateUsedIfNeeded: pi.isUsed == used, ignore. used=true; pn=busiApply 06-19 10:33:52.592 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ws001: Plugin.loadEntryLocked(): Load entry, info=PInfo { <busiApply:34(4)> [APK] [DEX_EXTRACTED] [RUNNING] processes=[com.microvideo.mivi] js={"pkgname":"com.yimuapply.apply","ali":"busiApply","name":"busiApply","low":10,"high":10,"ver":34,"verv":2814792716779554,"path":"\/data\/user\/0\/com.microvideo.mivi\/app_p_a\/-1728421574.jar","type":11,"frm_ver":4,"used":true} dex=/data/user/0/com.microvideo.mivi/app_p_od/-1728421574.dex nlib=/data/user/0/com.microvideo.mivi/app_p_n/-1728421574 } 06-19 10:33:52.593 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ws001: loadEntryMethod exception 06-19 10:33:52.594 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ws001: found entry: className=com.qihoo360.replugin.Entry, loader=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar"],nativeLibraryDirectories=[/data/user/0/com.microvideo.mivi/app_p_n/-1728421574, /vendor/lib, /system/lib]]] 06-19 10:33:52.609 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ws001: Loader.invoke2(): plugin=/data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar, plugin.binder.cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar"],nativeLibraryDirectories=[/data/user/0/com.microvideo.mivi/app_p_n/-1728421574, /vendor/lib, /system/lib]]] 06-19 10:33:52.609 11801-11813/com.microvideo.mivi:p0 I/RePlugin.ws001: load /data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar 203098793 c=3 rc=true delta=129 06-19 10:33:52.610 11801-11813/com.microvideo.mivi:p0 I/RePlugin.ws001: loadLocked(): Unlock! logtag = try1; pn = busiApply 06-19 10:33:52.611 11801-11813/com.microvideo.mivi:p0 D/RePlugin.task-affinity: 插件 busiApply 默认 TaskAffinity 为 com.yimuapply.apply com.yimuapply.main.MainActivity 的 TaskAffinity 为 com.yimuapply.apply 06-19 10:33:52.611 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: PAC.create(): Create and load Application. cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar"],nativeLibraryDirectories=[/data/user/0/com.microvideo.mivi/app_p_n/-1728421574, /vendor/lib, /system/lib]]] 06-19 10:33:52.611 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ws001: PACM: alloc registered container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 PACM: bindActivity: lookup activity container: container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 06-19 10:33:52.613 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: PAC.callAttachBaseContext(): Call attachBaseContext(), cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar"],nativeLibraryDirectories=[/data/user/0/com.microvideo.mivi/app_p_n/-1728421574, /vendor/lib, /system/lib]]] PAC.callOnCreate(): Call onCreate(), cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar"],nativeLibraryDirectories=[/data/user/0/com.microvideo.mivi/app_p_n/-1728421574, /vendor/lib, /system/lib]]] 06-19 10:33:52.622 11801-11813/com.microvideo.mivi:p0 D/RePlugin.ws001: PACM: eval plugin busiApply, target=com.yimuapply.main.MainActivity, container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 06-19 10:33:52.777 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: found: ActivityState {container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 state=restored plugin=busiApply activity=com.yimuapply.main.MainActivity size=0} PACM: loadActivityClass in=com.microvideo.mivi.loader.a.ActivityP0STNTS2 target=com.yimuapply.main.MainActivity plugin=busiApply PStatusC.getStatus(): ps is null. pn=busiApply 06-19 10:33:52.778 11801-11801/com.microvideo.mivi:p0 I/RePlugin.ws000: loadLocked(): Initialized, is loaded = true 06-19 10:33:52.778 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: PACM: loadActivityClass, plugin activity loader: in=com.microvideo.mivi.loader.a.ActivityP0STNTS2 activity=com.yimuapply.main.MainActivity PACM: loadActivityClass, plugin activity loader: c=class com.yimuapply.main.MainActivity, loader=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar"],nativeLibraryDirectories=[/data/user/0/com.microvideo.mivi/app_p_n/-1728421574, /vendor/lib, /system/lib]]] 06-19 10:33:52.837 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: activity create before: com.yimuapply.main.MainActivity this=218475363 taskid=55 06-19 10:33:52.838 11801-11801/com.microvideo.mivi:p0 D/RePlugin.theme: defaultThemeId = 2131820831 06-19 10:33:52.839 11801-11801/com.microvideo.mivi:p0 D/RePlugin.theme: dynamicThemeId = 2131820831 manifestThemeId = 2131493241 themeId = 2131493241 06-19 10:33:52.849 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: activity create: com.yimuapply.main.MainActivity this=218475363 taskid=55 06-19 10:33:52.851 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: activity create: name=busiApply activity=com.yimuapply.main.MainActivity process=-2147483648 container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 counter=0 06-19 10:33:52.855 11801-11801/com.microvideo.mivi:p0 I/RePlugin.ws001: perfect: container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 plugin=busiApply activity=com.yimuapply.main.MainActivity 06-19 10:33:52.855 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: found: ActivityState {container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 state=restored plugin=busiApply activity=com.yimuapply.main.MainActivity size=0} 06-19 10:33:52.856 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: PACM: activity created h=218475363 class=com.yimuapply.main.MainActivity container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 06-19 10:33:52.856 11801-11801/com.microvideo.mivi:p0 I/RePlugin.ws001: PACM: create: relaunch activity: history: container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 plugin=busiApply activity=com.yimuapply.main.MainActivity@d05ab63 06-19 10:33:52.859 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: set activity intent cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar"],nativeLibraryDirectories=[/data/user/0/com.microvideo.mivi/app_p_n/-1728421574, /vendor/lib, /system/lib]]] 06-19 10:33:52.863 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: cached filename: busiApply -> /data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar cached componentList /data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar -> com.qihoo360.replugin.component.ComponentList@7345360 06-19 10:33:52.864 11801-11801/com.microvideo.mivi:p0 D/RePlugin.activity-injector: activity = com.yimuapply.main.MainActivity@d05ab63 06-19 10:33:52.866 11801-11801/com.microvideo.mivi:p0 D/RePlugin.activity-injector: ai = ActivityInfo{eeef019 com.yimuapply.main.MainActivity} 06-19 10:33:52.868 11801-11801/com.microvideo.mivi:p0 D/RePlugin.activity-injector: label = 申请 06-19 10:33:52.879 11801-11801/com.microvideo.mivi:p0 D/RePlugin.activity-injector: bitmap = android.graphics.Bitmap@21d9abf 06-19 10:33:52.880 11801-11801/com.microvideo.mivi:p0 D/RePlugin.activity-injector: td = TaskDescription Label: 申请 Icon: android.graphics.Bitmap@21d9abf colorPrimary: 0 06-19 10:33:52.905 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: layout.cache: new constructor. plugin=busiApply name=com.getbase.floatingactionbutton.FloatingActionsMenu 06-19 10:33:52.925 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: layout.cache: new constructor. plugin=busiApply name=com.getbase.floatingactionbutton.FloatingActionButton 06-19 10:33:53.060 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: layout.cache: new constructor. plugin=busiApply name=com.yimuapply.yimubusiness.widget.TitleBar 06-19 10:33:53.094 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: layout.cache: new constructor. plugin=busiApply name=com.yimuapply.ui.widget.PagerSlidingTabStrip 06-19 10:33:53.107 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: layout.cache: new constructor. plugin=busiApply name=com.yimuapply.business.view.CustomViewPager 06-19 10:33:53.236 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: PluginClientHelper.iibc(): Call Plugin! n=ComponentInfo{com.microvideo.mivi/com.yimuapply.ThirdParty.plugin.YimuComunicationService} cached filename: busiApply -> /data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar cached componentList /data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar -> com.qihoo360.replugin.component.ComponentList@7345360 06-19 10:33:53.236 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: PluginServiceClient.fsmbp(): Create a new one! p=-100 06-19 10:33:53.239 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: cached filename: busiApply -> /data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar cached componentList /data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar -> com.qihoo360.replugin.component.ComponentList@7345360 06-19 10:33:53.240 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: PStatusC.getStatus(): ps is null. pn=busiApply 06-19 10:33:53.240 11801-11801/com.microvideo.mivi:p0 I/RePlugin.ws000: loadLocked(): Initialized, is loaded = true 06-19 10:33:53.243 11801-11801/com.microvideo.mivi:p0 D/RePlugin.PluginServiceServer: startPitService: Start ComponentInfo{com.microvideo.mivi/com.qihoo360.replugin.component.service.server.PluginPitServiceP0} 06-19 10:33:53.246 11801-11801/com.microvideo.mivi:p0 I/RePlugin.ws001: PSM.startService(): Start! in=Intent { cmp=busiApply/com.yimuapply.ThirdParty.plugin.YimuComunicationService }; sr=com.yimuapply.ThirdParty.plugin.YimuComunicationService; startRequested=true; bindings=(0) {}] 06-19 10:33:53.305 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: layout.cache: new constructor. plugin=busiApply name=in.srain.cube.views.ptr.PtrFrameLayout 06-19 10:33:53.314 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: layout.cache: new constructor. plugin=busiApply name=com.yimuapply.yimubusiness.widget.swipemenulistview.SwipeMenuListView 06-19 10:33:53.639 11801-11801/com.microvideo.mivi:p0 I/RePlugin.PmBase: loadClass: Loading PitService Class... clz=com.qihoo360.replugin.component.service.server.PluginPitServiceP0 06-19 10:33:53.639 11801-11801/com.microvideo.mivi:p0 D/ActivityThread: SVC-Creating service: CreateServiceData{token=android.os.BinderProxy@1a58800 className=com.qihoo360.replugin.component.service.server.PluginPitServiceP0 packageName=com.microvideo.mivi intent=null} SVC-CREATE_SERVICE handled : 0 / CreateServiceData{token=android.os.BinderProxy@1a58800 className=com.qihoo360.replugin.component.service.server.PluginPitServiceP0 packageName=com.microvideo.mivi intent=null} 06-19 10:33:53.640 11801-11801/com.microvideo.mivi:p0 D/ActivityThread: SVC-Calling onStartCommand: com.qihoo360.replugin.component.service.server.PluginPitService@2eb1839, flags=0, startId=1 SVC-SERVICE_ARGS handled : 0 / ServiceArgsData{token=android.os.BinderProxy@1a58800 startId=1 args=Intent { cmp=com.microvideo.mivi/com.qihoo360.replugin.component.service.server.PluginPitServiceP0 }} 06-19 10:33:53.644 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: PSS.bindService(): Call SystemAPI: in=Intent { act=com.ctg.itrdc.mf.yimu.modules.ThirdParty.plugin.AndroidService.PluginHost pkg=com.microvideo.mivi } 06-19 10:35:39.142 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: PAC.callOnLowMemory(): Call onTrimMemory(), cl=com.qihoo360.replugin.PluginDexClassLoader[DexPathList[[zip file "/data/user/0/com.microvideo.mivi/app_p_a/-1728421574.jar"],nativeLibraryDirectories=[/data/user/0/com.microvideo.mivi/app_p_n/-1728421574, /vendor/lib, /system/lib]]]; lv=20 06-19 10:35:39.143 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: activity destroy: com.yimuapply.main.MainActivity this=218475363 taskid=55 PACM: activity destroy h=218475363 class=com.yimuapply.main.MainActivity container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 06-19 10:35:39.144 11801-11801/com.microvideo.mivi:p0 D/RePlugin.ws001: found: ActivityState {container=com.microvideo.mivi.loader.a.ActivityP0STNTS2 state=restored plugin=busiApply activity=com.yimuapply.main.MainActivity size=0}

cundong commented 6 years ago

您这种情况,一般来讲,是分类给该launchMode+进程的 坑位不够导致的,您可以通过我们的Gradle配置参数,把对应坑位数设置的大一些。

jaydon commented 6 years ago

你好,请问下是直接修改countNotTranslucentStandard = 6 countNotTranslucentSingleTop = 14 countNotTranslucentSingleTask = 3 countNotTranslucentSingleInstance = 2这几个吗?我把这几个数字翻倍了,上边的数目是翻倍前的,还是会,其它360手机不会,暂时只发现只有F4S那台会

jamin918 commented 5 years ago

在vivo x9s Android7.1.2 上面启动插件显示首页(正常),1、在插件中跳转activity出现黑屏现象 2、在插件中加载assets目录下的svg文件加载失败,单独运行或者使用virtualApp加载插件是可以的,可惜VirtualApp商业化了,开源版代码停更不维护了。