IT评测·应用市场-qidao123.com

标题: 基于Ubuntu24.04,下载并编译Android12系统源码 (二) [打印本页]

作者: 科技颠覆者    时间: 2024-12-30 23:49
标题: 基于Ubuntu24.04,下载并编译Android12系统源码 (二)
1. 前言

上篇文章,我们基于Ubuntu24.04,已经成功下载下来了Android12的源码,这篇文章我们会接着上文,基于Ubuntu24.04来编译Android源码。
2. 编译源码

2.1 了解源码编译的名词


2.1.1 Android.mk / Ninja / Soong / Blueprint / kati /Android.bp 的概念之间的联系


2.2 准备编译情况

使用build目录中的envsetup.sh脚本来初始化情况,这个脚本会引入其他的一些执行脚本。
  1. source build/envsetup.sh
复制代码
完成初始化情况的一个操纵
  1. make clobber
复制代码
选择编译的目的,是envsetup.sh中定义的一个命令,用来让用户选择编译的目的
  1. lunch
复制代码
比如会表现出,这些可选的编译项
  1. You're building on Linux
  2. Lunch menu... pick a combo:
  3.      1. aosp_arm-eng
  4.      2. aosp_arm64-eng
  5.      3. aosp_blueline-userdebug
  6.      4. aosp_blueline_car-userdebug
  7.      5. aosp_bonito-userdebug
  8.      6. aosp_bonito_car-userdebug
  9.      7. aosp_car_arm-userdebug
  10.      8. aosp_car_arm64-userdebug
  11.      9. aosp_car_x86-userdebug
  12.      10. aosp_car_x86_64-userdebug
  13.      11. aosp_cf_arm64_auto-userdebug
  14.      12. aosp_cf_arm64_phone-userdebug
  15.      13. aosp_cf_x86_64_phone-userdebug
  16.      14. aosp_cf_x86_auto-userdebug
  17.      15. aosp_cf_x86_phone-userdebug
  18.      16. aosp_cf_x86_tv-userdebug
  19.      17. aosp_coral-userdebug
  20.      18. aosp_coral_car-userdebug
  21.      19. aosp_crosshatch-userdebug
  22.      20. aosp_crosshatch_car-userdebug
  23.      21. aosp_flame-userdebug
  24.      22. aosp_flame_car-userdebug
  25.      23. aosp_sargo-userdebug
  26.      24. aosp_sunfish-userdebug
  27.      25. aosp_taimen-userdebug
  28.      26. aosp_trout_arm64-userdebug
  29.      27. aosp_trout_x86-userdebug
  30.      28. aosp_walleye-userdebug
  31.      29. aosp_walleye_test-userdebug
  32.      30. aosp_x86-eng
  33.      31. aosp_x86_64-eng
  34.      32. arm_krait-eng
  35.      33. arm_v7_v8-eng
  36.      34. armv8-eng
  37.      35. armv8_kryo385-eng
  38.      36. beagle_x15-userdebug
  39.      37. beagle_x15_auto-userdebug
  40.      38. car_x86_64-userdebug
  41.      39. db845c-userdebug
  42.      40. fuchsia_arm64-eng
  43.      41. fuchsia_x86_64-eng
  44.      42. hikey-userdebug
  45.      43. hikey64_only-userdebug
  46.      44. hikey960-userdebug
  47.      45. hikey960_tv-userdebug
  48.      46. hikey_tv-userdebug
  49.      47. pixel3_mainline-userdebug
  50.      48. poplar-eng
  51.      49. poplar-user
  52.      50. poplar-userdebug
  53.      51. qemu_trusty_arm64-userdebug
  54.      52. silvermont-eng
  55.      53. uml-userdebug
  56.      54. yukawa-userdebug
  57.      55. yukawa_sei510-userdebug
复制代码
这里选项名称的含义

BUILDTYPE 指的是编译类型,有以下三种:

这里我们要运行在模拟器上,所以可以选30
2.3 举行编译

然后举行编译
  1. make -j 6
复制代码
  假如装备的内存不敷或性能不敷,同时执行的任务数,即-j可以设置的小一下,比如设置为1或2,只不过编译的时间会变久。
  最终会在 out/target/product/generic_x86/日录生成了三个重要的镜像文件:system.img、userdata.img、ramdisk.img。

表现出如下信息,就表明编译成功了 : Build completed successfully

2.4 运行假造机

编译完成后,执行emulator
命令运行假造机
  1. emulator
复制代码

   遇到的问题 : ubuntu emulator
第一次启动起来了,第二次却提示找不到命令
办理办法 : ubuntu 打开Android模拟器(Android源码编译)提示:emulator
:未找到命令
  3. 单编

mm指的是只编译当前目录的模块,不编译所有模块。
当我们只修改了指定目录下的模块时,就可以使用这个命令,从而加快编译速率。
3.1 进入指定目录,执行mm命令

  1. //进入指定目录
  2. cd packages/apps/settings
  3. //执行mm命令
  4. mm
复制代码

3.2 编译成功

表现出如下信息,就表明编译成功了 : Build completed successfully

除了Settings.odex文件,还会在out/target/product/generic_x86/system/priv-app/Settings日录下生生成Settings.apk
3.3 其他单编命令

此外另有以下命令可以举行单编 :

3.4 单编完成后,怎么查看效果 ?


   详见 : 单编完成后,怎么查看效果 ?
  3.4.1 怎样查找文件

查找文件 -> 编译产物 out/target/
  1. find <起始目录> -name <文件名>
复制代码
  比如可能位于 /out/target/product/generic_x86/system/system_ext/priv-app/Settings/Settings.apk
  3.5 单编表现成功后,运行安卓模拟器,并没有见效

可以带上参数-wipe-data
  1. emulator
  2. -wipe-data
复制代码
  详见 : Android源码单独编译某个模块
  4. 其他

4.1 工具

查看源码

4.2 repo 下载源码中途中断

使用git fetch命令:‌假如repo sync命令在下载过程中中断,‌可以实验进入.repo/projects/prebuild目录,‌并执行git fetch命令来继续同步未完成的源码。‌这种方法适用于在下载过程中遇到网络问题或其他缘故起因导致下载中断的情况。‌
4.3 参考

手把手教你编译和调试AOSP源码
带你玩转编译Android系统源码!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4