一、前言
在移植和裁剪安卓系统的时候,我们需要添加一些app、模块和服务等东西,那么就需要找到一些关键性的mk文件进行修改。刚开始的时候我天真的以为裁剪一些系统apk文件是在package==>app文件夹下面的Android.mk文件进行修改,把include $(BUILD_PACKAGE)注释掉就行了,事实上这样做并不能阻止安卓编译该模块,反而还会导致编译出错。下面我试着分析安卓系统那些"mk"文件才是关键性的文件。
二、定位关键目录
刚开始移植安卓的时候一直在“devices/自家产品目录/”下面修改各种".mk"文件,这样可以定制安卓一部分功能,其他核心功能需要在“build/target/product/”目录下修改“mk”文件。下面看看build目录下有啥东西:
~/workspace/tiny4412/android-4.2.2_r1$ ls build/
buildspec.mk.default CleanSpec.mk core envsetup.sh libs target tools
~/workspace/tiny4412/android-4.2.2_r1$ ls build/core/
apicheck_msg_current.txt distdir.mk java.mk process_wrapper_gdb.sh
apicheck_msg_last.txt droiddoc.mk legacy_prebuilts.mk process_wrapper.sh
base_rules.mk dumpvar.mk llvm_config.mk product_config.mk
binary.mk dynamic_binary.mk main.mk product.mk
build_id.mk envsetup.mk Makefile proguard.emma.flags
build-system.html executable.mk multi_prebuilt.mk proguard.flags
checktree filter_symbols.sh native_test.mk proguard_tests.flags
cleanbuild.mk find-jdk-tools-jar.sh node_fns.mk raw_executable.mk
cleanspec.mk help.mk notice_files.mk raw_static_library.mk
clear_vars.mk host_executable.mk package.mk root.mk
combo host_java_library.mk pathmap.mk shared_library.mk
config.mk host_native_test.mk pdk_config.mk static_java_library.mk
copy_headers.mk host_prebuilt.mk phony_package.mk static_library.mk
definitions.mk host_shared_library.mk post_clean.mk tasks
devic