Android AOSP源码编译——AOSP整编(二)

切换到源码目录下执行下面命令

1、初始化环境

bash 复制代码
. build/envsetup.sh
//清除缓存
make clobber

2、选择编译目标

bash 复制代码
lunch

AOSP 预制了很多 Product。这里为了简单我们先不用真机,而是选择模拟器的方式,对于 x86_64 模拟器,我们选择的是 aosp_x86_64-eng。

lunch命令回车后会让你选择编译目标,我们选31(aosp_x86_64-eng)

bash 复制代码
maoweiyi@maoweiyi-OMEN-by-HP-Laptop-15-dc0xxx:~/aosp$ lunch

You're building on Linux

Lunch menu... pick a combo:
     1. aosp_arm-eng
     2. aosp_arm64-eng
     3. aosp_barbet-userdebug
     4. aosp_blueline-userdebug
     5. aosp_blueline_car-userdebug
     6. aosp_bonito-userdebug
     7. aosp_bonito_car-userdebug
     8. aosp_bramble-userdebug
     9. aosp_car_arm-userdebug
     10. aosp_car_arm64-userdebug
     11. aosp_car_x86-userdebug
     12. aosp_car_x86_64-userdebug
     13. aosp_cf_arm64_auto-userdebug
     14. aosp_cf_arm64_phone-userdebug
     15. aosp_cf_x86_64_phone-userdebug
     16. aosp_cf_x86_auto-userdebug
     17. aosp_cf_x86_phone-userdebug
     18. aosp_cf_x86_tv-userdebug
     19. aosp_coral-userdebug
     20. aosp_coral_car-userdebug
     21. aosp_crosshatch-userdebug
     22. aosp_crosshatch_car-userdebug
     23. aosp_flame-userdebug
     24. aosp_flame_car-userdebug
     25. aosp_redfin-userdebug
     26. aosp_sargo-userdebug
     27. aosp_sunfish-userdebug
     28. aosp_trout_arm64-userdebug
     29. aosp_trout_x86-userdebug
     30. aosp_x86-eng
     31. aosp_x86_64-eng
     32. arm_krait-eng
     33. arm_v7_v8-eng
     34. armv8-eng
     35. armv8_kryo385-eng
     36. beagle_x15-userdebug
     37. beagle_x15_auto-userdebug
     38. car_x86_64-userdebug
     39. db845c-userdebug
     40. fuchsia_arm64-eng
     41. fuchsia_x86_64-eng
     42. hikey-userdebug
     43. hikey64_only-userdebug
     44. hikey960-userdebug
     45. hikey960_tv-userdebug
     46. hikey_tv-userdebug
     47. pixel3_mainline-userdebug
     48. poplar-eng
     49. poplar-user
     50. poplar-userdebug
     51. qemu_trusty_arm64-userdebug
     52. silvermont-eng
     53. uml-userdebug
     54. yukawa-userdebug
     55. yukawa_sei510-userdebug

Which would you like? [aosp_arm-eng] 31

3、编译

选择好编译目标,通过下面命令进行编译

bash 复制代码
//通过-jN 参数来设置编译的并行任务数,提高编译速度
make -j4

2000 years later~

看到build completed successfully就代表我们构建成功了。

接下来运行模拟器

运行模拟器

bash 复制代码
emulator

因为我们是刚编译, 执行过envsetup脚本和lunch,否则需要先执行这两条命令

bash 复制代码
. build/envsetup.sh
lunch 31
emulator

备注:在启动模拟器的时候遇到了磁盘空间不足,我看了下整个AOSP文件夹占用了我200多G,其中隐藏文件.repo占用了50G,考虑了下因为是学习后期不使用repo

sync同步更新代码,所以就给删除了。

到这里我们的模拟器就成功运行起来了

4、修改代码运行

最后我们尝试下修改我们的Activity.java,重新编译看看有没有生效。可以通过find -name "Activity.java"命令找到我们的Activity.java

找到后给Activity.java的onCreate加一行日志打印。
修改后保存,重新编译

bash 复制代码
. build/envsetup.sh
lunch 31
make -j4

编译成功再次运行模拟器

bash 复制代码
. build/envsetup.sh
lunch 31
emulator

打开终端 通过adb shelllogcat 命令查看日志
adb shell 的配置可自行百度。

点击模拟器中几个app后日志结果日下
可以看到我们修改的代码确实生效了。

相关推荐
paid槮31 分钟前
MySql基础:数据类型
android·mysql·adb
用户2018792831672 小时前
AMS和app通信的小秘密
android
用户2018792831672 小时前
ThreadPoolExecutor之市场雇工的故事
android
诺诺Okami2 小时前
Android Framework-Launcher-InvariantDeviceProfile
android
Antonio9153 小时前
【音视频】Android NDK 与.so库适配
android·音视频
sun00770012 小时前
android ndk编译valgrind
android
AI视觉网奇13 小时前
android studio 断点无效
android·ide·android studio
jiaxi的天空13 小时前
android studio gradle 访问不了
android·ide·android studio
No Silver Bullet14 小时前
android组包时会把从maven私服获取的包下载到本地吗
android
catchadmin14 小时前
PHP serialize 序列化完全指南
android·开发语言·php