《android源码阅读四》Android系统源码整编、单编并运行到虚拟机

1、编译环境

  1. 《安装Ubuntu系统》
  2. 《android源码下载》

2、整编源码

  • 进入Android源码根目录
cd AOSP
  • 初始化环境
source build/envsetup.sh
  • 清除缓存
make clobber
  • 选择编译目标
// 选择编译目标
lunch
// 因为本次是在虚拟机中运行,这里使用x86
lunch aosp_x86_64-eng
  • 编译
    这里的 -j16 是代表编译的时候的线程数,一般是CPU核心数的1~2倍,电脑配置差点,就减少。
make -j16
  • 等待编译结束,这个过程比较漫长,我的 i5-9400F CPU, 32G 内存,全固态硬盘,编译了两个半小时…电脑配置好的话,会更快。
  • 编译结束,运行虚拟机
emulator
  • 虚拟机启动卡在开机界面时,可以尝试关闭 gpu 和配置大小
emulator -gpu off -partition-size 4096

3、单编

单编就是编译某个模块,比如 Settings ,会在 out 目录对应的产品有 Settings.apk , 例如:out/target/product/generic_x86/system/priv-app/Settings/Settings.apk,这是可以直接安装的。

1、source build/envsetup.sh

2、lunch

3、选择单编版本序号

4、编译

4.1、mmm

mmm packages/apps/Settings/

编译指定⽬录下的模块,但不编译它所依赖的其它模块。

4.2、mm

先进⼊⽬录:

cd packages/apps/Settings/

再编译

mm

编译当前⽬录下的模块,它和 mmm ⼀样,不编译依赖模块。

4.3、mma

编译当前⽬录下的模块及其依赖项。

4.4、mmma [module_path]

编译指定路径下所有模块,且包含依赖

4.5、make

make: 不带任何参数则是编译整个系统

make MediaProvider

单个模块编译,会把该模块及其依赖的其他模块⼀起编译,会搜索整个源代码来定位 MediaProvider
模块所使⽤的 Android.mk ⽂件,还要判断该模块依赖的其他模块是否有修改。

make snod

如果我们修改代码,想看效果,怎么办?

1、可以在编译完成后,借助 adb install -r apk路径 直接将⽣成的 apk ⽂件安装到设备上,如果
不是 APK,直接 push 对应的⽂件。

2、可以编译好完成后,再使⽤ make snod ,重新⽣成 system.img,再运⾏模拟器也可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的铅笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值