- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
物联网技术应用专业教学资源建设AndroidLow-无锡职业技术学院
Android中几个重要系统进程为: /init /system/bin/servicemanager , /system/bin/mediaserver system_server zygote 前面init分析章节提到init通过解析init.rc,启动对应的服务程序。servicemanager,zygote和mediaserver都通过这种方式启动。system_server则是通过zygote孵化出来。这几个进程是Android系统运行的基础。 * 3.2 Android的编译系统 特点 1.???? Multiple Targets (多目标性,灵活) 2.???? Non-Recursive Make(非迭代创建,高效) 3.???? Rapid Compile-Test Cycles(快速,高效) 4.???? Both Environment and Config File Based Settings (环境变量和配置文件结合,简单) 5.???? Object File Directory / make clean (独立干净,不会破坏源代码结构) * 基于Gnu Make Makefile 规则简介 ???? target ... : prerequisites ... ??????????? command ??????????? ... ??????????? ... target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。 prerequisites就是,要生成那个target所需要的文件或是目标。 command也就是make需要执行的命令。(任意的Shell命令) * Android编译系统构成 完全由build目录里的.mk文件及一些脚本组成: build/core/main.mk makefile的主入口 build/core/config.mk? ?? ?? 用来进行配置基本性配置 build/core/envsetup.mk? ?用来处理环境变量的设置 build/target/product? ?? ?? ?产品相关的配置 build/target/board? ?? ?? ?? ?板卡相关的配置 build/core/combo? ?? ?? ?? ??用来处理各种组合情况,比如Host跟Target的编译器选项的组合 * Local Module 整体由部分组成,对于Android系统,在编译系统之外,每一个部分就是由Android.mk来生成的。它只会找到一个目录里最先找到的Android.mk,如果要进一步编译子目录里的工程,则需要进行makefile的包含处理。 LOCAL_MODULE_TAGS可用于指定在不同模式下需要编译哪些模块,比如user、eng、debug。 编译子目录使用mm,mmm 清除指定模块project_name,使用make clean-project_name * 3.3 在Android里面加入自己的平台 Android的编译系统,会到一个固定的目录里去读取平台相关的配置,在2.2以前的版本在vendor目录,2.2版之后,换到了device目录。命名为vendor/产商名/设备名。比如是ti的panda-board,则以如下方式建立这个目录,再在这个目录里放置平台相关的配置项。 device/acom/s5pc110? 平台相关的配置,主要由几个关键文件构成: vendorsetup.sh AndroidProducts.mk acom_s5pc110.mk device.mk BoardConfig.mk * vendorsetup.sh 提供给build/envsetup.sh,进行环境变量设置,使配置项可被导入编译系统。 在Android编译里一般是使用lunch ti_pandaboard-eng这种方式指定编译配置,这一文件就可以将配置加入到编译系统可选项里。 它的内容一般很简单,是一系列的add_lunch_combo语句。比如我们要加入我们的s5pc110,以工程机方式编译,就是: add_lunch_como acom_s5pc110-eng * AndroidProducts.mk 用来指定这一产品配置文件的主入品配置文件是哪个,一般这个主配置文件以’产商名_设备名.mk’的方式命名,如下面的acom_s5pc110.mk。 而这一文件的内容,也只有简单的一行: PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/acom_s5pc110.mk * acom
文档评论(0)