当前位置: 代码迷 >> 综合 >> Aosp 源码环境搭建以及开发调试
  详细解决方案

Aosp 源码环境搭建以及开发调试

热度:5   发布时间:2024-01-17 11:29:29.0

构建搭建环境

系统要求: linux(推荐) / mac

安装软件包: https://source.android.com/setup/build/initializing?hl=zh-cn

同步AOSP源码

官方教程:https://source.android.com/source/downloading?hl=zh-cn

国内镜像:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/
Aosp代码仓库在国外, 如果下载不了, 推荐国内清华大学镜像

分支查询: https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds
如果需要下载指定的分支代码, 可通过上面连接查询分支名称

源码编译

$ source build/envsetup.sh && lunch sdk_phone_x86_64 && make -j2

过程中可能会发生编译问题, 大概率可能是环境配置或工具版本不对导致的。

模拟器 Emulator

运行Emulator

$ emulator

指定系统镜像

$ emulator -system out/target/product/generic_x86_64/system.img

Android Studio查看编辑代码

$ make idegen
$ development/tools/idegen/idegen.sh

执行完成后,源码根目录会生成android.iml 和 android.ipr。 如果文件权限不够需要chmod一下
android.iml 是文件索引的配置, 须在这个文件排除不需要的文件

<excludeFolder url="file://$MODULE_DIR$/bionic" />
<excludeFolder url="file://$MODULE_DIR$/bootable" />
<excludeFolder url="file://$MODULE_DIR$/build" />
<excludeFolder url="file://$MODULE_DIR$/cts" />
<excludeFolder url="file://$MODULE_DIR$/dalvik" />
<excludeFolder url="file://$MODULE_DIR$/developers" />
<excludeFolder url="file://$MODULE_DIR$/development" />
<excludeFolder url="file://$MODULE_DIR$/device" />
<excludeFolder url="file://$MODULE_DIR$/docs" />
<excludeFolder url="file://$MODULE_DIR$/external" />
<excludeFolder url="file://$MODULE_DIR$/hardware" />
<excludeFolder url="file://$MODULE_DIR$/kernel" />
<excludeFolder url="file://$MODULE_DIR$/out" />
<excludeFolder url="file://$MODULE_DIR$/pdk" />
<excludeFolder url="file://$MODULE_DIR$/platform_testing" />
<excludeFolder url="file://$MODULE_DIR$/prebuilts" />
<excludeFolder url="file://$MODULE_DIR$/sdk" />
<excludeFolder url="file://$MODULE_DIR$/system" />
<excludeFolder url="file://$MODULE_DIR$/test" />
<excludeFolder url="file://$MODULE_DIR$/toolchain" />
<excludeFolder url="file://$MODULE_DIR$/tools" />
<excludeFolder url="file://$MODULE_DIR$/.repo" />

上面的配置只做展示, 具体需要排除的文件看你个人需求, 配置好之后通过Android Studio通过已有项目打开Android.ipr文件,Project目录
在这里插入图片描述

调试

修改过代码之后重新编译(只需编译系统镜像)

$  make systemimage

模拟器启动我们新编的镜像

$ emulator -system out/target/product/generic_x86_64/system.img

系统代码断点,以systemui进程为例
在这里插入图片描述