35634
查看Android.mk explanation的源代码
Android.mk explanation
0
←
Android.mk explanation
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
你被禁止执行你刚才请求的操作。
您可以查看并复制此页面的源代码:
• Everything start from: build/core/main.mk - FIND_LEAVES_EXCLUDES: 定义在build/core/config.mk中Android.mk的逻辑: 1. 排除.repo、.git和产物输出目录(默认为out)。 SCAN_EXCLUDE_DIRS默认为空,但可以通过参数传入、修改产品配置等方式设置。 2. 查找目录深度不限。 3. 如果父目录已经有Android.mk,不再查找子目录。 满足上述逻辑的Android.mk,都会被include到Android的Makefile中。 - 但是,其中定义的模块是否参与编译,则定义在 modules_to_install: 1. ALL_DEFAULT_INSTALLED_MODULES,从字面意思理解,系统默认的那些模块。 2. product_FILES,产品指定。 通过在产品配置中,指定PRODUCT_PACKAGES,可以进入这个列表。 3. tags_to_install,指定Tag。 比如,Tag为debug的模块,只在eng或userdebug的编译模式下才编译,在user模式下不编译。 4. CUSTOM_MODULES,自定义模块。 从实现上来讲,其实也是通过Tag来添加,但主要是支持mm、mmm这种单模块编译。 在模块未被添加到完整编译中时,在该模块的目录下执行mm,仍然可以强制编译,就是通过这里来指定的。 平台开发者要想把已经准备好Android.mk的模块,添加到编译中,只剩指定PRODUCT_PACKAGES. • Android.mk description: • LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) clear all LOCAL_* variables except LOCAL_PATH • LOCAL_MODULE 就是模块名 如果该变量未设置,则使用LOCAL_PACKAGE_NAME • LOCAL_MANIFEST_FILE可以指定AndroidManifest.xml的位置。 如果未设置,则默认使用Android.mk的相同路径下的AndroidManifest.xml文件。 • LOCAL_SRC_FILES是指定源文件列表 • include some build functions: include 变量 Makefile 说明 BUILD_HOST_STATIC_LIBRARY host_static_library.mk 编译主机上的静态库。 BUILD_HOST_SHARED_LIBRARY host_shared_library.mk 编译主机上的共享库。 BUILD_STATIC_LIBRARY static_library.mk 编译设备上的静态库。 BUILD_SHARED_LIBRARY shared_library.mk 编译设备上的共享库。 BUILD_EXECUTABLE executable.mk 编译设备上的可执行文件。 BUILD_HOST_EXECUTABLE host_executable.mk 编译主机上的可执行文件。 BUILD_PACKAGE package.mk 编译APK文件。 BUILD_PHONY_PACKAGE phony_package.mk 定义一个不能实际编译的虚假模块。可以指定依赖。 BUILD_HOST_PREBUILT host_prebuilt.mk 处理一个或多个主机上使用的已编译文件,该文件的实现依赖 multi_prebuilt.mk。 BUILD_PREBUILT prebuilt.mk 处理一个已经编译好的文件( 例如Jar包)。 BUILD_MULTI_PREBUILT multi_prebuilt.mk 处理一个或多个已编译文件,该文件的实现依赖prebuilt.mk。 BUILD_JAVA_LIBRARY java_library.mk 编译设备上的共享Java库。 BUILD_STATIC_JAVA_LIBRARY static_java_library.mk 编译设备上的静态Java库。 BUILD_HOST_JAVA_LIBRARY host_java_library.mk 编译主机上的共享Java库。 BUILD_DROIDDOC droiddoc.mk 编译生成droiddoc或javadoc文件。 BUILD_COPY_HEADERS copy_headers.mk 复制相关的头文件,被static_library.mk等文件使用,通常不直接include。 BUILD_NATIVE_TEST native_test.mk 编译设备上的可执行文件测试。 BUILD_NATIVE_BENCHMARK native_benchmark.mk 添加libbenchmark,编译设备上的可执行文件。 BUILD_HOST_NATIVE_TEST host_native_test.mk 主机上的可执行文件测试。 BUILD_SHARED_TEST_LIBRARY shared_test_lib.mk 设备上共享库的测试。 BUILD_HOST_SHARED_TEST_LIBRARY host_shared_test_lib.mk 主机上共享库的测试。 BUILD_STATIC_TEST_LIBRARY static_test_lib.mk 设备上静态库的测试。 BUILD_HOST_STATIC_TEST_LIBRARY host_static_test_lib.mk 主机上静态库的测试。 BUILD_NOTICE_FILE notice_files.mk 追踪、生成版权相关的NOTICE文件。 BUILD_HOST_DALVIK_JAVA_LIBRARY host_dalvik_java_library.mk 编译主机上的Dalvik共享Java库。 BUILD_HOST_DALVIK_STATIC_JAVA_LIBRARY host_dalvik_static_java_library.mk 编译主机上的Dalvik静态Java Ref:https://note.qidong.name/2017/08/android-mk/
返回
Android.mk explanation
。
导航菜单
个人工具
   
个人维基
注册
登录
名字空间
页面
变换
查看
阅读
查看源代码
统计
查看历史
操作
搜索
导航
首页
最近更改
随机页面
工具箱
所有页面
文件列表
特殊页面