Android ART模式下不重新烧录system.img的情况下如何修改framework和app

Android ART模式不重新烧录system.img的情况下如何修改framework和app

       做Android系统层的相关开发,如果是android5.0以上系统,由于Android中默认art模式,且编译的为user模式,系统编译后在/system/framework中会生成jar包并且在/system/framework/arm文件夹下会生成*.odex, *.art和*.oat文件,如果修改了framework中的内容,只替换framework. jar是运行不了的,必须全部编译后重新烧录system. img才可以运行,这就浪费了很多时间,下面具体介绍一下相关的解决办法.

    一.调试framework模块

  1. 预置条件android 5.1.1 user版本
  2. 具体要求,调试framework模块,具体步骤如下:
adb remount

adb push out/target/product/msm8909/system/framework/telephony-common.jar /system/framework/

adb push out/target/product/msm8909/system/framework/arm/boot.oat /system/framework/arm/

adb shell rm -rf /data/dalvik-cache/arm/system@[email protected]

adb shell sync

adb shell reboot

       注意framework必须重新编译,具体步骤执行mmm frameworks/base/编译命令这样才能更新boot.oat,先不要高兴得过早啊,现在还只能调试framework.jar相关的模块,如果是调试service模块,你会发现执行mmm  frameworks/base/service然后查看boot.oat你会发现不会任何变动,那么怎么才会有效呢,不要着急不要寂寞,且看下面细说

 

   二.调试系统service模块

  1. 预置条件android 5.1.1 user版本
  2. 具体要求,调试service模块,具体步骤如下:
mmm  framework/base/service

adb remount

adb push out/target/product/msm8909/system/framework/service.jar

/system/framework/

adb push out/target/product/msm8909/system/framework/arm/service.odex  /system/framework/arm

adb shell rm –rf /data/dalvik-cache/arm/system@[email protected]@classes.dex

adb shell sync

adb shell reboot

        这样就大功告成了。

三.调试系统app

  1. 在user版本调试系统app应用(普通app应用能用IDE调试所以不在这个范围讨论之内)有两种方法:

(1).在android.mk里面加入一句话LOCAL_DEX_PREOPT := false,这个表示某个app不使用提前优化即不生成oat文件,生成apk这样就可以直接安装了

(2)不做优化,这里以XXX.apk为例,执行如下步骤

adb shell “rm  -rf  /system/app/XXX/* “

adb  shell “rm –rf /data/data/com.android.xxx”其中com.android.xxx为应用的包名

adb push  out\target\product\msm8909\system\app\XXX  /system/app/XXX

adb shell sync

adb reboot

     现在就大功告成了,还有最好一种编译Android源码app会遇到的情况,就是当app下面有jni相关的目录或者so库相关的时候,使用上面的修改方法都不行了,譬如Browser应用,难道木有办法了吗,当然有那就是在Android.mk文件加入一句LOCAL__MODULE_TAGS = tests此时会有意向不到的效果出现。

     希望上述总结能对Android源码开发的码农们有一定的帮助,那我写此文的目的也达到了。

猜你喜欢

转载自blog.csdn.net/tkwxty/article/details/98208322
今日推荐