Android编译系统make文件介绍DennisBjut

AndroidBuild系统的入口文件是源码树根目录下名称为“Makefile”的文件,当在源代码根目录上执行make命令时,make命令首先将读取该文件。

Makefile文件的内容只有一行:includebuild/core/main.mk,该行代码的作用是:包含build/core/main.mk文件。在main.mk文件中又会包含其他的文件,其他文件中又会包含更多的文件,这样就引入了整个Build系统。

主要的make及其文件包含关系,如图:

说明

main.mk

最主要的Make文件,该文件中首先将对编译环境进行检查,同时引入其他的Make文件。另外,该文件中还定义了几个最主要的Make目标,例如droid,sdk,等(参见后文“Make目标说明”)。

help.mk

包含了名称为help的Make目标的定义,该目标将列出主要的Make目标及其说明。

pathmap.mk

将许多头文件的路径通过名值对的方式定义为映射表,并提供include-path-for函数来获取。例如,通过$(callinclude-path-for,frameworks-native)便可以获取到framework本地代码需要的头文件路径。

envsetup.mk

配置Build系统需要的环境变量,例如:TARGET_PRODUCT,TARGET_BUILD_VARIANT,HOST_OS,HOST_ARCH等。当前编译的主机平台信息(例如操作系统,CPU类型等信息)就是在这个文件中确定的。另外,该文件中还指定了各种编译结果的输出路径。

combo/select.mk

dumpvar.mk

在Build开始之前,显示此次Build的配置信息。

config.mk

整个Build系统的配置文件,最重要的Make文件之一。该文件中主要包含以下内容:

definitions.mk

最重要的Make文件之一,在其中定义了大量的函数。这些函数都是Build系统的其他文件将用到的。例如:my-dir,all-subdir-makefiles,find-subdir-files,sign-package等,关于这些函数的说明请参见每个函数的代码注释。

distdir.mk

针对dist目标的定义。dist目标用来拷贝文件到指定路径。

dex_preopt.mk

针对启动jar包的预先优化。

pdk_config.mk

顾名思义,针对pdk(PlatformDevelopementKit)的配置文件。

${ONE_SHOT_MAKEFILE}

ONE_SHOT_MAKEFILE是一个变量,当使用“mm”编译某个目录下的模块时,此变量的值即为当前指定路径下的Make文件的路径。

${subdir_makefiles}

各个模块的Android.mk文件的集合,这个集合是通过Python脚本扫描得到的。

post_clean.mk

在前一次Build的基础上检查当前Build的配置,并执行必要清理工作。

legacy_prebuilts.mk

该文件中只定义了GRANDFATHERED_ALL_PREBUILT变量。

Android源码中包含了许多的模块,模块的类型有很多种,例如:Java库,C/C++库,APK应用,以及可执行文件等。并且,Java或者C/C++库还可以分为静态的或者动态的,库或可执行文件既可能是针对设备的也可能是针对主机的。不同类型的模块的编译步骤和方法是不一样,为了能够一致且方便的执行各种类型模块的编译,在config.mk中定义了许多的常量,这其中的每个常量描述了一种类型模块的编译方式,这些常量有:

在模块的Android.mk文件中,只要包含进这里对应的常量便可以执行相应类型模块的编译。

这些常量的值都是另外一个Make文件的路径,详细的编译方式都是在对应的Make文件中定义的。这些常量和Make文件的是一一对应的,对应规则也很简单:常量的名称是Make文件的文件名除去后缀全部改为大写然后加上“BUILD_”作为前缀。例如常量BUILD_HOST_PREBUILT的值对应的文件就是host_prebuilt.mk。

不同类型的模块的编译过程会有一些相同的步骤,例如:编译一个Java库和编译一个APK文件都需要定义如何编译Java文件。因此,各模块编译方式的Make文件的定义中会包含一些共同的代码逻辑。为了减少代码冗余,需要将共同的代码复用起来,复用的方式是将共同代码放到专门的文件中,然后在其他文件中包含这些文件的方式来实现的。这些包含关系如图

THE END
1.RFID出入库流程pdf桂林市农业科学研究中心桂林农科院RFID出入库流程pdfathere (GID-rCalled) 表述过去几年我国由网络世界导致的以远程控制为主要特征的, 最重要的是,因远程控制发生直接或间接的(如LCK Pro为例)的控制数据,因此也称为风险控制 http://www.d.cn/kd.cn/kdq4/sdq4/quality_feature_calcul_countries_television.calculator/calculator/calculator/calculato...http://glnky.yfsoft.com.cn/48427.html
2.提交metartchapcpp/include目录下代码·Issue#IB6EK2...【任务描述】提交metartc hap cpp/include目录下代码【解决方案】提交metartc hap cpp/include目录下代码【任务来源】https://gitee.com/openharmony/vendor_unionman/issues/IB6EK2
3.qqpdk.dll,下载,简介,描述,修复,等相关问题一站搞定qqpdk.dll 文件列表 文件大小X86/X64文件版本文件描述MD5 32KX863028B06A0422913A7589F778E4854C24 该文件总计1个版本,请下载到本地查看详情 如何选择&使用 第一步:您从我们网站下载下来文件之后,先将其解压(一般都是zip压缩包)。 第二步:然后根据您系统的情况选择X86/X64,X86为32位电脑,X64为64位电脑。http://www.dllzj.com/qqpdk.dll/
4.课件tsmc018um工艺库eetop安装教程.pdf关于如何获取tsmc18rf PDK 的问题,大家可以用google 搜一下,可以找到! 因为 Cadence 安装的是IC610 版本,IC610 以上的版本只能够识别OA 格式的PDK ,而tsmc18rf 所采用的是 cdb 格式,所以需要进行转换,而 IC610 自带CDB-OA 转换功能,实现很方便 ! 1、解压tsmc18rf_pdk_v13d.tar 文件到/home/yk/tsmc18...https://max.book118.com/html/2021/1129/5122314334004123.shtm
5.后仿真详细步骤傻瓜教程(ic6151&calibre2011).docx后仿真的详细步骤研究两天,终于把这个过程弄明白了,这又是一项艰苦的任务。好歹是完成了。首先还是先从软件说起,要不是这个破软件的问题啊,一天就弄出来了。calibre2011的这个玩意,设置环境变量的时候LM_LICENSE_FILE首先要建立一个PEX的文文件夹,然后把PDKhttps://www.taodocs.com/p-685343132.html
6.pdk工艺库包括哪些内容.pptx工艺材料库03PDK工艺库的使用方法下载和安装根据需要,从PDK工艺库网站或相关平台下载相应的工艺库文件,并按照说明进行安装。了解工艺库首先需要了解PDK工艺库的基本概念、组成和功能,包括库中包含的元件类型、模型参数以及使用限制等。导入到工具中将下载的工艺库导入到相应的EDA工具中,如Cadence、MentorGraphics等,以便...https://www.renrendoc.com/paper/315024576.html
1.PuppetDevelopmentKit(PDK)项目推荐模块生成:PDK 可以帮助开发者快速生成 Puppet 模块的基本结构,包括目录结构、初始文件和测试框架。 代码验证:PDK 提供了对 Puppet 代码的验证功能,包括语法检查、风格检查和元数据验证。 单元测试:PDK 集成了 rspec 和 rspec-puppet,支持对 Puppet 模块进行单元测试,确保代码的正确性和稳定性。 https://blog.csdn.net/gitblog_00809/article/details/143965151
2.lua脚本使用redisend -- 收到请求,还没进入server处理时执行, -- 此处判断路径如果不是/sayHello和/sayBye直接返回字符串"only support /sayHello and /sayBye" function MyFirstHandler:rewrite() kong.log("MyFirstHandler:rewrite") local rawPath = kong.request.get_raw_path() -- 使用PDK获取请求URL ...https://www.miaokee.com/2789013.html
3.PDK文件扩展名:它是什么以及如何打开它?PDK 文件摘要 这些PDK 文件可以使用 一 种已知的软件应用程序查看,这些应用程序通常是由Open Source开发的PC Desktop Cleaner。 它与 一 种主要文件类型相关联,但经常以PC Desktop Cleaner Configuration格式出现。 大多数 PDK 文件被视为Data Files。 PDK 文件可以在移动和桌面平台上找到,可以在 Windows中打开。 PDK...https://www.solvusoft.com/zh-cn/file-extensions/file-extension-pdk/
4.MSVCP60.dll不在PDK文件夹中。问题:I已安装"个人数据保留程序",并收到一条长消息,MSVCP60.dll"个人数据保留程序"文件夹中。 我的其他 PDK .dll没有该文件,为什么在此安装中出现错误? 答:取消安装过程需要此文件才能完成 PDK 安装。 通常msvcp60.dll Dynamics/eEnterprise 文件夹中的客户端来完成 PDK 安装。 若要解决此错误,请从 Dynamics...https://support.microsoft.com/help/856711/msvcp60-dll-is-not-within-the-pdk-folder
5.PDK文件的CDB版本和OA版本的区别x 小弟有个问题向请教一下大神,同一个Foundry同一工艺的PDK文件的CDB版和OA版有什么区别?CDB版适用于...https://bbs.eetop.cn/thread-583211-1-1.html
6.qmpdkdll.dll下载找不到qmpdkdll.dllDLL文件丢失qmpdkdll.dll 投诉报错 DLL大小:1.71MB DLL语言:简体中文 DLL类型:国产软件 DLL授权:免费软件 DLL类别:Q 应用平台:Windows平台 DLL官网:未知官方 更新时间:2018-05-22 网友评分: 360通过腾讯通过金山通过 1.71MBDLL修复工具下载一键修复DLL文件缺失 软件问题没解决?试试这里...https://www.jb51.net/dll/qmpdkdll.dll.html
7.MMIC设计系列原创文章(2)——关于PDK技术阅读以下以ADS自带的demo design kit为例介绍PDK的安装与使用 1、ADS主界面选择DesignKits-ManageFavorite Design Kits 2、选择Add Zipped Design Kit,浏览到Foundry提供的ADS平台的PDK压缩包:*.zip 3、也可以先自行将zip压缩包解压得到PDK文件夹,再选择Add Library Definition File,浏览到解压后PDK文件夹,选择lib.defs ...https://www.wxworm.com/article/98521.html
8.jpg文件标志图标。下载图像文件插画正版商用图片1pdku9摄图新视界提供jpg 文件标志图标。下载图像文件图片下载,另有应用程序,艺术,徽章,按钮,围圈,压缩,概念,创意,数字,扩展,文件,平,几何,图形,图标图片搜索供您浏览下载,每张图片均有版权可放心商用,您正在浏览的图片为1pdku9https://xsj.699pic.com/tupian/1pdku9.html
9.《PDK》的安装步骤有哪些?在开始安装《PDK》之前,我们需要做好一些准备工作,包括确认硬件配置、下载安装包以及创建一个游戏文件夹等。硬件配置方面,更低要求是英特尔酷睿i3处理器或AMD Ryzen 3 3200G处理器,拥有足够的内存和存储空间也是必须的。在下载安装包时,请确保从官方渠道或者可信的渠道获取安装包,以避免安全风险。在创建游戏文件夹方面...https://www.sousou.com/wd/633750.html
10.TUSB2136TPS2149PDKTexasInstrumentsMouser工作电源电压: 5 V 产品类型: Interface Development Tools 工厂包装数量: 1 子类别: Development Tools 要显示该类别下的类似产品,请至少选中上方的一个复选框。 显示类似项 已选择的属性: 0 文件(1) 筛选文档: 数据表 TUSB2136TPS2149PDK 数据表 环境文件 产品合规性 获取新消息 订阅 ...https://www.mouser.cn/ProductDetail/Texas-Instruments/TUSB2136TPS2149PDK?qs=sGAEpiMZZMurtJ7VwBTl0S9VnRd1R9rQxDDOB8iDOMY%3D
11.详解惠普webOS官方教程如何下载安装SDK和PDK对于JavaScript的开发,该SDK包括的命令行工具需要封装、下载和调试应用程序,以及示例代码、参考代码和参考文档。对于C/C++开发,该SDK还包括插件开发工具包(PDK),其中包括一个GCC编译器、SDL和OpenGL的代码库、项目模板、示例源代码、脚本、实用程序、文件。你将有机会选择在安装过程中的安装PDK。https://www.51cto.com/article/252572.html
12.PDK4,MOUSE,重组蛋白(HIS&GST)生产厂家价格信息中文同义词:PDK4, MOUSE, 重组蛋白 (HIS & GST) 英文名称:PDK4 Protein, Mouse, Recombinant (His & GST) 英文同义词:PDK4 Protein, Mouse, Recombinant (His & GST) CAS号: 分子式: 分子量:0 EINECS号: Mol文件:Mol File PDK4, MOUSE, 重组蛋白 (HIS & GST) 信息错误报告 ...https://www.chemicalbook.com/ProdSupplierGNCB814144031.htm