Framework代码本地编译调试流程

代码编译

APP或Service代码单编调试

 1、在aosp文件目录下在将环境变量加载到内存中,在终端中输入下面命令

source build/envsetup.sh

2、选择平台编译选项

lunch

3、输入后会出现一个选择列表,然后输入你想要的项目的序号即可。如下所示我这里选择的7,也可以直接lunch 7或者lunch test_high-userdebug

You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. test_high-userdebug
8. test_high_12g-userdebug
9. test_high-userdebug
10. test_low-userdebug
11. test1_high-userdebug
12. test1_low-userdebug
13. aosp_arm-userdebug
Which would you like? [aosp_arm-eng] 7

4、然后就是编译代码,编译代码方式有两种

第一种:

make命令编译

在源码项目中找到你想要编译的模块下的Android.mk文件找到LOCAL_PACKAGE_NAME或者

LOCAL_MODULE字段

 

然后把对应的参数值加在make命令后执行。例:

make 参数值

第二种:

可以使用mm命令和mmm命令

mm 是编译当前文件夹下的mk文件

mmm /xxx/xx/x 是编译/xxx/xx/x指定目录下的mk文件

第一种和第二种的区别在于第一种make编译会把有关联的模块也都编译了,第二种只是编译当前模块。

建议尽量用第一种,如果你的模块调用了其他模块在其他模块也有改动时编译出的文件会有问题。

5、编译成功后会给你一个文件输出的路径。将路径下的APK push到车机对应的目录中,push成功后需要同步重启下。

adb root
adb remount
adb push out/target/product/xxx/system/app/xx/xx.apk /system/app/xx/xx.apk
adb shell sync
adb reboot

 lib模块代码单编调试

lib代码编译和apk编译前面步骤是一样的,只是输出的产物不同。这种情况不能和apk一样只是单独把编译出来的文件做替换。还要将frameworks下的相关的文件一起替换。例如:

adb push out/target/product/xxx/system/framework/xx.jar /system/framework/

adb push out/target/product/xxx/system/framework/boot-xx.vdex /system/framework/

adb push out/target/product/xxx/system/framework/arm/boot-xx.art /system/framework/arm/

adb push out/target/product/xxx/system/framework/arm/boot-xx.art.rel /system/framework/arm/

adb push out/target/product/xxx/system/framework/arm/boot-xx.oat /system/framework/arm/

adb push out/target/product/xxx/system/framework/arm64/boot-xx.art /system/framework/arm64/

adb push out/target/product/xxx/system/framework/arm64/boot-xx.art.rel /system/framework/arm64/

adb push out/target/product/xxx/system/framework/arm64/boot-xx.oat /system/framework/arm64/

xx是你编译模块的名字

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 了解编译环境 在开始编译调试之前,需要确保已经正确设置了编译环境。具体来说,需要安装并配置好 Android NDK、Android SDK、JDK 和 build 工具。另外,还需要下载 Android 源码并正确配置。 2. 修改代码 在修改 framework 代码之前,需要确保已经正确配置了 Android 源码。如果没有配置,请参考 Android 官方文档进行配置。 在进行代码修改之前,最好先了解一下要修改的代码在哪个文件中,需要修改哪些内容。可以使用 grep 命令来搜索代码,例如: ``` grep -r '要修改的内容' /path/to/android/source/code ``` 修改代码之后,可以使用 git diff 命令检查修改的内容。 3. 编译代码编译代码之前,需要确保已经正确配置了编译环境。可以使用以下命令进行编译: ``` make -jN ``` 其中 N 表示 CPU 核心数,可以根据自己的电脑配置进行调整。编译时间可能比较长,可以使用 ccache 工具加速编译过程。 如果只需要编译某个模块,可以使用以下命令: ``` make -jN module_name ``` 其中 module_name 表示要编译的模块名称。例如,如果要编译 framework 模块,可以使用以下命令: ``` make -jN framework ``` 4. 安装和调试编译完成之后,可以使用以下命令将编译好的代码安装到设备中: ``` adb remount adb sync adb reboot ``` 其中 adb remount 命令用于将文件系统重新挂载为可读写模式,adb sync 命令用于将编译好的代码同步到设备中,adb reboot 命令用于重启设备。 如果需要调试代码,可以使用 Android Studio 或 Eclipse 等 IDE 进行调试。在进行调试之前,需要确保已经正确配置了 IDE 的开发环境。可以参考 Android 官方文档进行配置。 在 Android Studio 中,可以使用 Run 或 Debug 按钮进行调试。在调试时,可以在代码中设置断点并查看变量的值以及调用栈。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值