设为首页 加入收藏

TOP

【腾讯Bugly干货分享】微信热补丁Tinker的实践演进之路(三)
2017-10-13 10:47:26 】 浏览:2686
Tags:腾讯 Bugly 干货 分享 补丁 Tinker 实践 演进
某些机器上,多 abi 的判断并不准确。我们更希望通过封装代码来支持。对于资源,我们处理是跟 dex 差不多,启动时即反射调用。

Q12:是否有动态下发第三方的 jar 包,如何调用第三方 jar 包的方法。反射?

Tinker 框架只会合成输入 pattern 下的 dex,而且在启动的时候把他们加载。如果调用的问题,使用者自己决定的。

Q13:差量下发更新,合成的时候是否会有性能问题?是否支持(图片)资源的差量下发?

合成的话,我们对于内存、GC 以及耗时都有大量的优化。即使是微信这样体量的 app,从外部监控来看,大部分用户都能在60秒以内完成。

Q14:需要在补丁合成加载之后才进入程序(交由用户操作)吗?

合成与加载是分开两个过程,我们的原则是除非合成已经彻底完成,不然其他进程是不会去加载的。即补丁不会去影相其他进程的加载性能

Q15:代码完全开源吗?

对的,所有代码都会开源,从编译到各个模块。

Q16:xposed 框架的那些插件,是通过反射调用替换值?那一般有啥方式保证安全性?保证 app 数据的安全性?

它们只要是反射调用微信的某些类,达到某些功能的篡改。事实上,如果在 root 下,单纯的保护是比较难的。

Q17:为什么要在补丁成功的时候加结果回调是为了启动程序么,但是和您刚才说的为了实时上报?

回调结果是为了给使用者一个回调,在这个回调里面它可以做各种各样的工作。例如我弹出升级完成的 dialog。我设置锁屏或者程序进入后台后自杀,这可以加快补丁的应用

Q18:既然能加载 so 和资源,Tinker 能用于插件化吗?

Tinker 当前没有做四大组件的代理,但是 Tinker 未来绝对是具备这个能力的

Q19:merge 失败后的补救机制是怎样的?可以回退么?

merge 失败,我们会收到回调,这个时候我们不会加载的。在默认实现里面,我们会删除这些临时文件。

Q20:这套框架目前是多少个人在维护呢?

Tinker当前有3个人在开发维护

Q21:请问资源是编译到 arsc 中还是反射加载二进制流?

你的问题我不太明白,资源我们采用的是全量替换,即完全使用新的资源包

Q22:在加入 Tinker 之后,对各平台的加固适配如何?微信是否有加固?

微信没有使用加固,但是加固应该是不影响的,只需要把接口改一下就可以了。

?
首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇结合Retrofit,RxJava,Okhttp,Fast.. 下一篇Android与单片机通信常用数据转换..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目