Android 编译系统的组成
Android 和 Linux 的编译系统都是通过 Makefile 工具来组织编译源代码的。
Makefile 工具用来解释和执行 Makefile 文件,在 Makefile 文件里定义好工程源代码的编译规则,通过 make 命令即可以完成对整个工程的自动编译。
1、Makefile:编译系统的入口 Makefile 文件,在系统根目录下,只有一行代码,包含 build/core/main.mk。
2、build/core/main.mk:主要 Makefile,定义了 Android 编译系统的主线。
3、build/core/config.mk:根据用户输入的编译选项导出配置变量,影响编译目标。
4、build/core/envsetup.mk:定义大量全局变量,用户编译配置。
5、build/core/product_config.mk:根据用户选择的目标产品,定义编译结果输出目录。
6、device/*/$(TARGET_DEVICE)/BoardConfig.mk:根据用户选择的目标产品找到对应的设备 TARGET_DEVICE,加载设备的板级配置。
7、build/core/definitions.mk:定义编译过程中用到的大多数变量和宏,是编译系统的函数库。
8、MODULES_DIR/Android.mk:每个模块的规则定义文件,它出现在每个要编译的目录下,我们可以向 Android 系统中添加自己的模块,来达到定制系统的目的。
9、build/core/Makefile:Android 编译目标规则定义文件,最终编译结果在该文件中定义,如 system.img、boot.img 等。
Android 编译系统的组成的更多相关文章
- Android编译系统详解(一)
++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: http://blog.csdn.net/mr_raptor/art ...
- 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)
第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...
- 【转】Android编译系统详解(三)——编译流程详解
原文网址:http://www.cloudchou.com/android/post-276.html 本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接 1.概述 编译Androi ...
- Android编译系统入门(二)
Android.mk的使用方法 在上一篇Android编译系统入门(一)中我们只要介绍了Android系统使用make命令默认编译的依赖树是droid,而droid是一个伪目标,它有两个先决条件dro ...
- Android编译系统中的Android.bp【转】
本文转载自: 转自:http://note.qidong.name/2017/08/android-blueprint/ Android编译系统中的Android.bp.Blueprint与Soong ...
- Android编译系统(Android.mk文件详解)
[Android-NDK(Native Development Kit) docs文档] NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成a ...
- Android编译系统入门(一)
做过Android平台开发的朋友对make,mm或make clean命令应该很熟悉,但也许大家只是熟知这些命令的作用却不知道这些命令底下有些什么原理?那么今天我就带着大家推开Android编译系统的 ...
- Android编译系统简要介绍【转】
本文转载自:http://blog.csdn.net/luoshengyang/article/details/18466779 在Android源码环境中,我们开发好一个模块后,再写一个Androi ...
- Android编译系统参考手册
build/core/clear_vars.mk Clear out values of all variables used by rule templates 清除LOCAL变量,每个模块的And ...
随机推荐
- MySQL相关错误汇总
Eroor 1 描述: 在启动mysql的时候出现如下问题:"ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' ...
- 【hive】null值判断
hive用作null值的判断是不能用 = , != 来判断的 只能用is [not] null来完成 不支持ifnull()函数(mysql支持) 适用于所有数据类型 (1)条件中判断是否为空 whe ...
- 【zznu-夏季队内积分赛3-F】学无止境
题目描述 “别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“ACM程序设计竞赛是一个团体项目.宝儿姐作为其中优秀的一份子,每天好好学习天天向上.曾经宝儿姐给自己定了一个计划,刷穿bzoj.于 ...
- C#使用Docx操作word文档
C#使用Docx编写word表格 最近接手了一个小Demo,要求使用Docx,将Xml文件中的数据转换为word文档,组织数据形成表格. 写了已经一周,网络上的知识太零碎,就想自己先统计整理出来,方便 ...
- hdu 6114 chess(排列组合)
Chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 用css和php脚本来使得poscms的list标签顺利输出记录
每次拿到前端给的页面,都会有意想不到的惊喜,因为他们给的页面总是不能很好地契合poscms的模板标签 输出规范,这时候就需要动点脑筋去解决问题了. 拿前两天拿到的一类(对,你没看错,是一类)页面来说吧 ...
- EasyAACEncoder海思/ARM平台优化G711、G726转AAC的CPU占用高问题
本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/75645378 引言 目前EasyDarwin ...
- Ext JS 5 关于Store load返回json错误信息或异常的处理
关于在store load的时候服务器返回错误信息或服务器出错的处理.ExtJS4应该也能用,没测试过. 这里有两种情况: 服务器返回错误json错误信息,状态为200 服务器异常,状态为500 一. ...
- vue_ form表单 v-model
插值两种方式:{{}},v-model v-model 可以用 v-model 指令在只能在表单 <input> 及 <textarea> 元素上创建双向数据绑定.它会根据控件 ...
- I.MX6 修改调试串口号(ttymx0 -> ttymxc2)
I.MX6 修改调试串口号(ttymx0 -> ttymxc2) 一.参考文章: uboot修改默认调试串口ttymxc0 ->ttymxc4(imx53) http://www.xueb ...