这儿略过对android在手机上的文件体系结构的论述(google或许baidu都能协助你找到对应的信息),主要看google是怎么把生成适宜的rootfs的作业整合到它的build体系傍边,一起,会顺带看一下CyanogenMod中对应各种机型的build机制。
首要,来看一下Android的build体系中,运用到的编译选项和相关东西
详细的目录在:mydroid/build/tools/下
|– acp
这是一个略微改进的cp指令,用来敷衍在windows/MAC/Linux下的cp指令的缺点,其间的README很值得一看!
|– adbs
这是一个用来检查crash问题的东西,详细请看《Android调试东西之adbs》
|– Android.mk
|– apicheck
用来进行发布前的API检查(拜见mydroid/build/core/tasks/apicheck.mk),是否新编译的体系中有损坏API兼容性或是不合法的API
这儿的代码是用Java写的用来检查编译时生成的API相关信息的xml文件(mydroid/framework/base/api/中),能够参阅里边关于xml文件解析的代码
|– apriori
完结prelink的东西,简略介绍拜见(mydroid/bionic/linker/README.TXT)
|– atree
为android SDK服务的一个东西,用来依照指定xxx.atree文件中的内容进行一些文件操作
|– bin2asm
不太理解详细的用途,应该是用来敷衍mac上编译android一些与gcc相关的问题
|– buildinfo.sh
生成target中的各种xxx.prop文件,如system.prop, build.prop等
|– check_builds.sh
包装了diff,用来看2个发布版别之间改变
|– check_prereq
device上进行ota晋级时的东西之一
|– compare_fileslist.py
与check_builds.sh合作完结版别比较的脚本
|– droiddoc
Android更具javadoc的一些移植
|– dump-package-stats
简略的检查一个jar/apk文件内的dex和其它文件的巨细信息
|– event_log_tags.py
处理event-log-tags的内容,关于event-log-tags文件的含义拜见《Android学习之event-log-tags是神马》
|– fileslist.py
简化的列出指定目录下一切文件及巨细的脚本 — 能够放入自己的东西库了运用:)
|– findleaves.py
在指定目录中(可多个)找指定文件的脚本 — 能够放入自己的东西库了运用:)
|– fixlinebreaks.sh
把windows中的换行改为linux下的 — 能够放入自己的东西库了运用:)
|– fs_config
列出指定文件夹及文件的权限
|– fs_get_stats
得到指定文件夹下文件的简略stats信息
|– iself
判别文件是否是ELF格局
|– isprelinked
判别文件是否是prelink过的
|– java-event-log-tags.py
处理event-log-tags的内容,关于event-log-tags文件的含义拜见《Android学习之event-log-tags是神马》
|– kcm
key character map的东西, 相关材料参照:http://www.kandroid.org/online-pdk/guide/keymaps_keyboard_input.html#androidKeymapKeyCharMap
|– lsd
!!!!!! ???
|– merge-event-log-tags.py
处理event-log-tags的内容,关于event-log-tags文件的含义拜见《Android学习之event-log-tags是神马》
|– mktarball.sh
与fs_get_stats合作而履行的打包东西
|– print_module_licenses.sh
显现当时目录下一切module信息
|– releasetools
— check_target_files_signatures
|– common.py
|– edify_generator.py
|– img_from_target_files
|– ota_from_target_files
`– sign_target_files_apks
|– rgb2565
rgb转化东西
|– signapk
指令行下对jar包签名的东西
|– soslim
Android定制的编译东西之一,简略介绍拜见(mydroid/bionic/linker/README.TXT)
|– warn.py
解析Android体系编译log的东西
`– zipalign
zipfile的对齐东西,拜见该文件夹下的README.TXT
在来看看Android编译体系中界说的一些通用XXX.mk文件
mydroid/build/core/
|– armelflib.x
|– armelf.x
|– armelf.xsc
|– base_rules.mk
|– binary.mk
|– build_id.mk
|– build-system.html
|– checktree
|– cleanbuild.mk
|– cleanspec.mk
|– clear_vars.mk
|– combo
|– config.mk
|– copy_headers.mk
|– definitions.mk
|– device.mk
|– dex_preopt.mk
|– distdir.mk
|– droiddoc.mk
|– dumpvar.mk
|– dynamic_binary.mk
|– envsetup.mk
|– executable.mk
|– filter_symbols.sh
|– find-jdk-tools-jar.sh
|– help.mk
|– host_executable.mk
|– host_java_library.mk
|– host_native_test.mk
|– host_prebuilt.mk
|– host_shared_library.mk
|– host_static_library.mk
|– java_library.mk
|– java.mk
|– legacy_prebuilts.mk
|– main.mk
|– Makefile
|– multi_prebuilt.mk
|– native_test.mk
|– node_fns.mk
|– notice_files.mk
|– package.mk
|– pathmap.mk
|– phony_package.mk
|– prebuilt.mk
|– process_wrapper_gdb.cmds
|– process_wrapper_gdb.sh
|– process_wrapper.sh
|– product_config.mk
|– product.mk
|– proguard.flags
|– proguard_tests.flags
|– raw_executable.mk
|– raw_static_library.mk
|– root.mk