说明

系统:AOSP Android10.0

设备:Android模拟器

前言

本章节重点介绍android 源码下载好之后的编译方法。


一, 编译步骤

编译三部曲:1, 初始化编译环境  2, 选择产品  3, 编译

ldswfun@android:/mnt/ext-disk1/a10-aosp$  source build/envsetup.sh

ldswfun@android:/mnt/ext-disk1/a10-aosp$  lunch


You're building on Linux

Lunch menu... pick a combo:

     1. aosp_arm-eng

     2. aosp_arm64-eng

     3. aosp_blueline-userdebug

     4. aosp_bonito-userdebug

     5. aosp_car_arm-userdebug

     6. aosp_car_arm64-userdebug

     7. aosp_car_x86-userdebug

     8. aosp_car_x86_64-userdebug

     9. aosp_cf_arm64_phone-userdebug

     10. aosp_cf_x86_64_phone-userdebug

     11. aosp_cf_x86_auto-userdebug

     12. aosp_cf_x86_phone-userdebug

     13. aosp_cf_x86_tv-userdebug

     14. aosp_coral-userdebug

     15. aosp_coral_car-userdebug

     16. aosp_crosshatch-userdebug

     17. aosp_crosshatch_car-userdebug

     18. aosp_flame-userdebug

     19. aosp_marlin-userdebug

     20. aosp_sailfish-userdebug

     21. aosp_sargo-userdebug

     22. aosp_sunfish-userdebug

     23. aosp_taimen-userdebug

     24. aosp_walleye-userdebug

     25. aosp_walleye_test-userdebug

     26. aosp_x86-eng

     27. aosp_x86_64-eng

     28. beagle_x15-userdebug

     29. car_x86_64-userdebug

     30. fuchsia_arm64-eng

     31. fuchsia_x86_64-eng

     32. hikey-userdebug

     33. hikey64_only-userdebug

     34. hikey960-userdebug

     35. hikey960_tv-userdebug

     36. hikey_tv-userdebug

     37. m_e_arm-userdebug

     38. mini_emulator_arm64-userdebug

     39. mini_emulator_x86-userdebug

     40. mini_emulator_x86_64-userdebug

     41. poplar-eng

     42. poplar-user

     43. poplar-userdebug

     44. qemu_trusty_arm64-userdebug

Which would you like? [aosp_arm-eng]  //选择27


ldswfun@android:/mnt/ext-disk1/a10-aosp$  make  -j6

二,编译出错处理

Android系统 10.0 AOSP源码编译(三):AOSP源码编译_android源码编译

A交换分区扩大到3-4G, 请参考以下链接:

javascript:void(0)​   

B 若扩展好之后还报错,可尝试虚机关机,然后重启再编译一次。

三,user和eng版本说明


构建类型



使用情况



user



权限受限,适用于生产环境



userdebug



与“user”类似,但具有 root 权限和调试功能;是进行调试时的首选编译类型



eng



工程师版本,具有root权限, 并且具有额外调试工具的开发配置


四, 镜像使用

Android源码编译出来的镜像,可以通过Android自带的emulator来运行。emulator就是平常所说的模拟器, 在用户没有真机的情况, 通过启动模拟器来完成对系统和程序的调试和开发。emulator内部是基于Qemu+KVM虚拟化技术, 通过Qemu模拟出CPU ,硬件总线和外设,emulator在传统的qemu技术上, 增加了各种传感器的模拟, 如重力传感器, gps,电话模块等,  从而实现模拟出一个虚拟机的手机。

emulator启动方法:

ldswfun@android:/mnt/ext-disk1/a10-aosp$  source build/envsetup.sh

ldswfun@android:/mnt/ext-disk1/a10-aosp$  lunch  aosp_x86_64-eng

ldswfun@android:/mnt/ext-disk1/a10-aosp$  emulator  -verbose  -show-kernel -cores 4

Android系统 10.0 AOSP源码编译(三):AOSP源码编译_android_02

总结

Android源码编译是比较费资源的, 并且启动emulator需要的cpu和内存负载都比较大, 如果慢的话,属于正常现象。