在android开发的时候,有时候单独替换framework.jar时,不知道为啥没生效
首先得确认编译的framework.jar里是否有自己的文件,还有是否有自己想要的修改
比如ConnectivityManager.java在framework.jar里,但是WifiManager.java则不在(之前一直以为在)
下载dex-tools-v2.4:
https://download.youkuaiyun.com/download/yudelian/88814346
使用dex-tools-v2.4
./dex-tools-v2.4/d2j-dex2jar.sh ./framework.jar
使用dex-tools的 d2j-dex2jar.sh命令,将dex文件编译可以读取的class文件
生成的文件是framework-dex2jar.jar
然后将framework-dex2jar.jar更改后缀为framework-dex2jar.zip
然后使用unzip framework-dex2jar.zip,解压缩为如下
android com dex-tools-v2.4 faw framework-dex2jar.zip framework.jar javax org
可以看出自己修改的文件是否在framework.jar里
然后想要看自己的修改比如日志是否编译进去
可以使用jd-gui,下载地点:
Java Decompiler (java-decompiler.github.io)
使用的jd-gui时候:
我是文件选择的里面的android\net\ConnectivityManager.class
好像不能选择文件夹,但是选择的ConnectivityManager.class,展现出来的就是全部,就可以正常看自己的修改编译成功没
这样单编译framework.jar替换不生效时,就可以看看是否arm、arm64、oat文件夹是否删除 ,
framework.jar文件是否正确等