Android 12 模块编译的常用命令小结(更新中)
文章目录
- 编译 framework 中的代码
- 编译 services (各种JNI中调用的 servicie )
- 编译速度
- make -j32 services
- 参考:
编译 framework 中的代码
make -j32 framework-minus-apex
生成路径:
out/target/product/rk3568_s/system/framework/framework.jar
生成的 framework.jar包 待测试 (应用层修改)
make update-api
make framework
将javalib.jar放入 Android Studio中测试,只用于应用调用 Framework中的接口,但是只是用于测试
out\target\product\rk3568_s\obj\JAVA_LIBRARIES\framework_intermediates\javalib.jar
系统中添加的日志生效,需要编译 framework.jar 包或 service.jar 包,并 push 到相应的目录下才生效。
编译 services (各种JNI中调用的 servicie )
如果 frameworks/base/services 下有修改代码,则要编译services.jar
mmm frameworks/base/services -j32
或者 make -j32 services
编译速度
-
mmm frameworks/base/services -j32
由于编译范围较小,通常编译速度会比较快。尤其是当你只修改了 framework/base/services 目录下的代码时,使用这个命令可以快速验证修改的效果。 -
make -j32 services
由于编译范围可能更广,涉及更多的模块和依赖项,编译时间可能会更长。但如果你的修改影响到了多个目录下与 services 相关的代码,使用这个命令可以确保所有相关模块都被正确编译。
make -j32 services
out/target/product/rk3568_s/system/framework/oat/arm64/services.art
替换 services.jar 批处理命令
#!/bin/bash
adb wait-for-device
adb root
sleep 2
adb wait-for-device
adb remount
adb push services.jar /system/framework/
adb shell sync
adb reboot
pause
参考:
https://www.jianshu.com/p/7659b4044b6a
