动态更新的学习



      动态更新以插件的形式加载到app中实现修补bug的方法确实很诱人,但这个诱人的蛋糕还是需要你去自己实现一次才能领会到里面的真谛的。。。

最近有很多文章在介绍这方面的知识,我也只看了一遍,并没有真正的去自己实现,在真正去自己弄一次时却是各种坑~,可能自己对这一领域的不了解吧,但是这样下来还是有蛮多收获的,如果你也有像学这块的话,就赶紧看看吧,想必你也会有很多收获,好不闲扯,开始动态加载的旅程。


首先给出篇文章,我也是根据前人的经验来实现的,站在巨人的肩膀上你永远都不会输在起跑线上大笑:

http://blog.csdn.net/lmj623565791/article/details/49883661


这篇文章已经很清楚的赘述了如何实现了,在此我就写下我的编译与理解的过程:


文章的工程目录说明:

                                                                                           




在此你已经了解了工程的作用了,还有你要理解为什么要代码注入的,代码注入是出于什么问题,文章已经写的很清楚了,我就不再说了,我主要说说操作过程:

文章中有两个大包命令,这个是输出 jar 和dex 包的关键命令行,如果你有点批处理的功底直接可以两个命令一起实现,一间打包。

命令使用:

1、jar   jav提供的标准命令

用法:    jar cvf 输出文件名  需要打包的目录

        例如我要在当前目录下打包 com目录下的所有文件:

jar cvf path.jar com\*


2、dx   android sdk的工具命令,在sdk的buildtool中,如果你没有设置环境变量就设置一下

      dx --dex --output 输出的jar文件(DEX) jar文件

      例如:

      dx --dex --output out_dex.jar path.jar


3、使用输出的out_dex.jar作为分包加载。



遇到的坑:

1、在打包的时候不要直接在你的工程打包java文件,而是在 build/intermediates/classes 下。

2、由于类在启动后加载一次就不会再认其他你动态加载的类,所有你必须要在类加载之前就事先把修复的类加载好才能正常使用。


附上个人的git地址:https://github.com/popboyking/androidstudio-jar-




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值