android源码编译
来源:互联网 发布:java调用kettle实例 编辑:程序博客网 时间:2024/06/14 02:28
在使用Android编译系统之前,我们需要打开一个shell进入到Android源码根目录中,并且在该shell中将build/envsetup.sh脚本文件source进来。脚本文件build/envsetup.sh被source到当前shell的过程中,会在vendor和device两个目录将厂商指定的envsetup.sh也source到当前shell当中,这样就可以获得厂商提供的产品配置信息。此外,脚本文件build/envsetup.sh还提供了以下几个重要的命令来帮助我们编译Android源码:
1. lunch
用来初始化编译环境,例如设置环境变量和指定目标产品型号。Lunch命令在执行的时候,主要做两件事情。第一件事情是设置TARGET_PRODUCT、TARGET_BUILD_VARIANT、TARGET_BUILD_TYPE和TARGET_BUILD_APPS等环境变量,用来指定目标产品类型和编译类型。第二件事情是通过make命令执行build/core/config.mk脚本,并且通过加载另外一个脚本build/core/dumpvar.mk打印出当前的编译环境配置信息。注意,build/core/config.mk和build/core/dumpvar.mk均为Makefile脚本,因此它们可以通过make命令来执行。另外,build/core/config.mk脚本还会加载一个名称为BoradConfig.mk的脚本以及build/core/envsetup.mk脚本来配置目标产品型号的相关信息。
2. m
相当于是在执行make命令。对整个Android源码进行编译。
3. mm
如果是在Android源码根目录下执行,那么就相当于是执行make命令对整个源码进行编译。如果是在Android源码根目录下的某一个子目录执行,那么就在会在从该子目录开始,一直往上一个目录直至到根目录,寻找是否存在一个Android.mk文件。如果存在的话,那么就通过make命令对该Android.mk文件描述的模块进行编译。
4. mmm
后面可以跟一个或者若干个目录。如果指定了多个目录,那么目录之间以空格分隔,并且每一个目录下都必须存在一个Android,mk文件。如果没有在目录后面通过冒号指定模块名称,那么在Android.mk文件中描述的所有模块都会被编译,否则只有指定的模块会被编译。如果需要同时指定多个模块,那么这些模块名称必须以逗号分隔。
阅读全文
0 0
- 编译android源码5---编译android源码
- android源码编译,模块编译
- android源码的编译
- Android源码编译
- Android源码编译反思
- Android源码编译
- Android源码编译反思
- android 源码编译
- Android 源码下载编译
- android 源码编译
- Android源码编译
- Android 源码编译
- android 源码编译
- ubuntu编译android 源码
- 编译android源码
- android源码编译
- 编译android源码
- 编译android源码
- 公众号从菜鸟到高手的进化:模板消息
- Qt字符编码认识
- 机器学习笔记(XIV)神经网络(I)基本概念
- 使用SourceTree回退代码版本
- ubuntu执行apt-get install出现E: Unable to locate package 问题
- android源码编译
- scrapy刚安装会遇到的坑
- 详解softmax函数以及相关求导过程
- Docker网络-精简版
- JavaScript对象,JSON对象,JSON字符串之间的相互转化大全{包含三者的具体介绍和定义}
- Ubantu16.04踩坑小记(没有wifi,无法apt update)
- CDH 5.13 hue数据库连接测试失败
- 常用数据结构
- Percona监控工具初探