【Android系统编译方法】-编译源码命令(make)(lunch)(adb)

思想原则

  • 研究Android编译系统之前,需要了解Linux系统的Make命令。Make命令在执行的时候,默认在当前目录找到一个Makefile文件,Make命令执行的是Makefile文件中的指令。Makefile文件中的指令可以是编译命令,也可以是其它命令。
  • 此处不选择Shell而选择Make是因为Make可以帮助我们处理好编译系统中典型的文件依赖需求关系。
  • 整个编译工程只有一个Makefile

编译命令

编译步骤:

 1. source build/envsetup.sh
 2. lunch
 3. make
 4. 单独编译(全编之后,代码修改后可使用单独编译,提高开发速度)
 5. 结果验证
1. source build/envsetup.sh

执行build/envsetup.sh,加载了编译时使用到的函数命令,同时添加了编译选项。

2. lunch

执行lunch命令后,打印出选择菜单,列出可用的编译选项,定义项目和编译过程中用到的全局变量。

lunch <product_name>-<build_variant>

例如:选择构建Nexus 5X的命令将是:

lunch aosp_bullhead-userdebug

在make命令后加上-j+数字来加快编译速度,-j后面的数字代表多线程个数,线程个数建议设置为编译服务器CPU核的个数乘以2,例如编译服务器CPU核的个数为2,多线程编译make命令为

3. make

执行make命令对整个android源码进行编译,执行当前目录下的Makefile文件

make -j4

不过线程越多,编译错误出现的概率越大。
编译的结果会生成在out目录下

4. 单独编译(全编之后,代码修改后可使用单独编译,提高开发速度)

单独编译可以有镜像或模块的单独编译
对镜像进行单独编译
例:

make bootloader

编译结果是:生成fdl2-sign.bin、u-boot-sign.bin、u-bootautopoweron-sign.bin。
对特定模块(module)进行单独编译
例:
在根目录下 mmm 模块路径

mmm packages/apps/Settings/
5. 结果验证
  • adb push 验证
    如验证qapp应用:
adb rootadb remount
adb push xxx/Qapp.apk product/priv-app/Settings
adb push xxx/oat/arm64(arm)/Qapp.vdex product /priv-app/Qapp/oat/arm64(arm)
adb push xxx/oat/arm64(arm)/Qapp.odex product /priv-app/Qapp/oat/arm64(arm)
adb reboot
  • 镜像下载验证

刷机工具使用编译生成的新镜像文件替换旧镜像文件,下载到手机验证(这里刷机如果不成功除了考虑手机连接问题外也要确定驱动是安装可运行的)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译ADB码需要进行以下步骤: 1. 安装编译环境:首先,需要在计算机上安装Android SDK和NDK,以及Java Development Kit (JDK)。Android SDK提供了必要的API和工具,用于编译ADB码。NDK提供了必要的编译器和工具链,用于编译C/C++代码。JDK则提供了Java语言的编译器。 2. 下载ADB码:ADB码可从Android项目的仓库中获取。你可以通过Git工具进行克隆,或者直接下载压缩包。 3. 设置环境变量:将Android SDK和NDK的路径添加到系统的环境变量中,以便编译过程可以找到相应的工具和库。 4. 配置编译选项:进入ADB码目录,找到码根目录下的“Android.mk”文件,这个文件定义了ADB编译过程中的各种选项和依赖关系。根据自己的需求,可以在这个文件中进行必要的配置。 5. 执行编译命令:打开终端,进入ADB码目录,并执行以下命令: ``` make adb ``` 这个命令会自动调用Android NDK的编译工具链,将C/C++代码编译成可执行的二进制文件。编译过程可能需要一段时间,取决于你的计算机性能和代码大小。 6. 编译完成后,将生成的二进制文件复制到系统的可执行文件目录中,以便在终端中可以直接执行ADB命令。 总结来说,编译ADB码需要先安装好编译环境,配置好相应的环境变量,然后执行编译命令即可。这样就能得到可执行的ADB二进制文件,用于在终端中执行ADB命令操作Android设备。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值