一. 背景
framework层代码调试时,需要快速编译,因此有必要了解不同目录源码生成的目标文件。
二. frameworks/base/services
如:
frameworks/base/services/core/java/com/android/server/BatteryService.java
编译:
make -j45 services
输出:
out/target/product/monaco_go/system/framework/oat/arm/services.odex
out/target/product/monaco_go/system/framework/oat/arm/services.vdex
out/target/product/monaco_go/system/framework/oat/arm/services.art
out/target/product/monaco_go/system/framework/services.jar.prof
out/target/product/monaco_go/system/framework/services.jar
运行:
out/target/product/monaco_go/system/framework/oat/arm/services.odex
out/target/product/monaco_go/system/framework/oat/arm/services.vdex
out/target/product/monaco_go/system/framework/oat/arm/services.art
out/target/product/monaco_go/system/framework/services.jar.prof
out/target/product/monaco_go/system/framework/services.jar
验证:如下代码保存.bat
echo off
adb wait-for-device
adb root
adb remount
set dir=%~dp0
adb push %dir%services.jar system/framework/services.jar
adb push %dir%services.jar.prof system/framework/services.jar.prof
adb push %dir%services.art system/framework/oat/arm/services.art
adb push %dir%services.vdex system/framework/oat/arm/services.vdex
adb push %dir%services.odex system/framework/oat/arm/services.odex
adb shell sync
)
pause
三. frameworks/base/
编译:
make -j12 framework
输出:
out/target/product/monaco_go/system/framework/framework.jar
运行:
system/framework/framework.jar
验证:如下代码保存.bat
echo off
adb wait-for-device
adb root
adb remount
set dir=%~dp0
adb push %dir%framework.jar system/framework/framework.jar
adb shell sync
)
pause
参考: