美文网首页
360插件化replugin问题解决

360插件化replugin问题解决

作者: androidfan | 来源:发表于2021-02-25 17:44 被阅读0次

插件化和热更新一直都是Android的热门技术,插件化目的是为了实现可插拔式的功能对接,而热更新则是为了方便修复代码漏洞在用户微感知情况下进行代码部署。今天我们来聊一聊360推出的插件化 replugin,具体集成步骤就不说了,我们来探讨下遇到的问题和解决思路

github 地址 https://github.com/Qihoo360/RePlugin

image.png

可以看到已经有6.6K的点赞量,使用量广泛,但是目前存在的问题也是挺多的,而且这个库目前是很少有人维护和回复,这给使用者造成了不少的麻烦,而我最近一周也在竭力协助解决项目中插件化带来的问题。

资源Id问题

我们知道Android 程序都是.apk结尾,响应的代码和资源文件是被打包成了apk文件,而插件化则是把单独的apk文件依赖宿主(目标)apk上,实现即用即下载,其实当你点击插件化apk的时候,在Android 系统上相当于新开了一个app,由宿主app跳转到了插件化app上,用户虽然感知没有发生跳转,但是当你查看后台时,你会发现存在两个不同的后台进程。
ok,那我们来说资源Id报错问题。


image.png
image.png

当我尝试从宿主app打开插件app的时候,出现了闪退现象,报的是资源id
0x7f0e003f找不到,这就很麻烦了。

解决探索

首先我根据配置和代码,进行了代码追踪


image.png

在debug模式下进行代码运行步骤追踪,我发现下载的app是正常的,插件名称也是正常的。之后我又在控制台发现了权限问题

image.png

随后经过我的代码排查,发现工程里已经进行了该权限的申请,故排除该权限引发问题的可能性。
在我接到这个任务之前,我们组长和另一位组员已经对该问题进行了尝试修复,已经努力了2天,我也被参与进来后,发现我所经历的修复方法组长已经采坑完毕,并且,已经领先我几步,比如下面的,一直报插件化app MainActivity 代码报错


image.png

经验代码调试和验证,发现这不是根本性问题,并且修复完成之后,又在报MainActivity 其他行数代码问题,就这样我也折腾了一上午,没有任何进展,心里想着
先吃个饭,下午再解决

突破点,转变思路

既然没有找到根源性问题,那么久从最开始地方入手,既然一开始是报的找不到资源ID为0x7f0e003f的资源,那么我们是否可以通过技术手段,查找到该资源呢?我把我的这个想法给组长汇报了下,组长说也在想,但是好像没方法,我决定搜索一番。
最终发现Android studio自带的apk解析工具可以查找资源


image.png

通过定位发现该资源文件是个ic_launcher 图片文件,瞬间感觉找到了希望。后来发现原来是插件化app的工程里


image.png
drawable文件夹资源文件里图片和mipmap 文件夹中不一致导致,修复完成这个之后,果然不会再报资源找不到,但是又在报图片格式问题,通过定位后恢复其中资源原始格式后也解决
image.png
Ok,就这么修复了,还是很开心的。

关于插件化app 运行后无法全屏,像是弹窗一样存在问题

Screenshot_20210225_092523_com.xinan.police.jpg

这就------,一时间不知道从何下手,我的第一感觉是app的theme问题,后来经过百度搜索,发现在一片文章里提到


image.png

原来,虽然插件化app 依赖宿主app,但是插件化app也是要有自己资源管理的,也就是要自己依赖一份v7 support包,而不是共享宿主的。
这个问题解决完,也就算是功德圆满了。
好了,今天先写到这里,我也该下班了

相关文章

  • 热修复和插件化方案

    1.插件化方案 阿里atlas 360DroidPlugin 360RePlugin 携程DynamicApk 滴...

  • 360插件化replugin问题解决

    插件化和热更新一直都是Android的热门技术,插件化目的是为了实现可插拔式的功能对接,而热更新则是为了方便修复代...

  • 360RePlugin插件化方案踩坑笔记

    最近360推出了一个插件化方案RePlugin, github地址具体特点和其他插件化方案有什么区别就在githu...

  • 360 RePlugin插件化-项目接入

    RePlugin是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Tea...

  • RePlugin源码阅读

    0.目录 RePlugin是360公司推出的开源的Android插件化和热更新框架, 广泛运用于360旗下的And...

  • RePlugin 插件化框架介绍与使用说明

    RePlugin GitHub 主页RePlugin Wiki 主页RePlugin 原理剖析全面插件化:RePl...

  • 知识网站

    360开源的插件化框架Replugin深度剖析 Integer与int的种种比较你知道多少? 高级MVP架构封装演...

  • Android全面插件化RePlugin流程与源码解析

    RePlugin,360开源的全面插件化框架,按照官网说的,其目的是“尽可能多的让模块变成插件”,并在很稳定的前提...

  • RePlugin使用总结

    Replugin是什么?由360推出的(完整的?稳定的?适合全面使用的?)插件优化方案RePlugin项目地址 1...

  • 浅谈Android插件化

    插件化,一个陌生有熟悉的名词,从我们学习Android伊始,总能隐约听到关于它的消息,从360的RePlugin,...

网友评论

      本文标题:360插件化replugin问题解决

      本文链接:https://www.haomeiwen.com/subject/vjsufltx.html