AndroidM: Build(编译系统)
来源:互联网 发布:淘宝京东哪个好 编辑:程序博客网 时间:2024/05/22 00:20
Android Build 系统是 Android 源码的一部分,是用来编译 Android 系统,Android SDK 以及相关文档的一套框架。众所周知,Android 是一个开源的操作系统。Android 的源码中包含了许许多多的模块。 不同产商的不同设备对于 Android 系统的定制都是不一样的。如何将这些模块统一管理起来,如何能够在不同的操作系统上进行编译,如何在编译时能够支持面向不同的硬件设备,不同的编译类型,且还要提供面向各个产商的定制扩展,是非常有难度的。 但 Android Build 系统很好的解决了这些问题.
Make文件可以分为三大类:
第一类,Build系统核心文件:此类定义了整个Build系统的框架,而其他Make文件就是在此框架的基础上编写出来的,它位于Build/core目录下;
第二类,针对某个产品的Make文件:通常位于devices目录下;
第三类,针对某个模块的Make文件:整个系统中有大量的mokuai,每个模块中都有一个Make文件,统一名称为Android.mk,该文件定义了如何编译当前模块。Build系统会在整个系统中扫描名为Android.mk的文件,并根据其中的内容执行模块的编译;
编译Android系统(Android5.0以上版本):
1.source build/envsetup.sh
引入了 build/envsetup.sh脚本。该脚本的作用是初始化编译环境,并引入一些辅助的 Shell 函数,提供一些额外的方法;
2.lunch full-eng
调用 lunch 函数,并指定参数为“full-eng”;
lunch 函数的参数用来指定此次编译的目标设备以及编译类型。在这里,这两个值分别是“full”和“eng”;
“full”是 Android 源码中已经定义好的一种产品,是为模拟器而设置的。而编译类型会影响最终系统中包含的模块;
3.make -j8
真正开始执行编译;
make 的参数“-j”指定了同时编译的 Job 数量.这是个整数,该值通常是编译主机 CPU 支持的并发线程总数的 1 倍或 2 倍(例如:在一个 4 核,每个核支持两个线程的 CPU 上,可以使用 make -j8 或 make -j16)。
Build结果的目录结构:
所有的编译产物都将位于 /out 目录下,该目录下主要有以下几个子目录:
/out/host/:该目录下包含了针对主机的 Android 开发工具的产物。即 SDK 中的各种工具,例如:emulator,adb,aapt 等;
/out/target/common/:该目录下包含了针对设备的共通的编译产物,主要是 Java 应用代码和 Java 库;
/out/target/product/<product_name>/:包含了针对特定设备的编译结果以及平台相关的 C/C++ 库和二进制文件。其中,<product_name>是具体目标设备的名称;
/out/dist/:包含了为多种分发而准备的包,通过“make disttarget”将文件拷贝到该目录,默认的编译目标不会产生该目录。
Build生成的镜像文件:
Build 的产物中最重要的是三个镜像文件,它们都位于 /out/target/product/<product_name>/ 目录下。
这三个文件是:
system.img:包含了 Android OS 的系统文件,库,可执行文件以及预置的应用程序,将被挂载为根分区。
ramdisk.img:在启动时将被 Linux 内核挂载为只读分区,它包含了 /init 文件和一些配置文件。它用来挂载其他系统镜像并启动 init 进程。
userdata.img:将被挂载为 /data,包含了应用程序相关的数据以及和用户相关的数据。
- AndroidM: Build(编译系统)
- AndroidM 振动器系统
- android编译系统 build/core
- Ubuntu16.06编译AndroidM(SoC:Allwinner A64)
- Ubuntu16.04 上安装openJDK7 编译AndroidM环境
- Android Build System (Android 编译系统)
- Android的编译环境--Build系统
- 理解 Android Build 系统_编译 Android 系统_3
- Android编译系统(三):官方文档Android Build System
- build/envsetup.sh简记Android系统编译分析
- Android编译系统(三):官方文档Android Build System
- Android编译系统(三):官方文档Android Build System
- Android编译系统详解(一)——build/envsetup.sh
- Android编译系统详解(一)——build/envsetup.sh
- Android编译系统——build/envsetup.sh
- Android编译环境,Build系统的学习总结
- 安卓build编译各种系统镜像的过程。
- Android编译系统详解(一)——build/envsetup.sh
- android 进程通信--aidl
- js全局替换回车换行符
- 【资源分享】Prezi的介绍——PPT的取代工具(文末有安装软件教程和大量资源的下载链接)
- Basic Calculator
- 两个有序数组合并成一个有序数组
- AndroidM: Build(编译系统)
- android shape的使用
- 金币阵列问题
- ThinkPHP3.2.3整合Jpgraph插件
- Django文件上传
- spring <context:component-scan>使用说明。
- echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
- android图像的二值化处理
- Linux下bash的快捷键