第六章 android.mk语法
更新时间:2023-06-01 10:22:01 阅读量: 实用文档 文档下载
- 第六章光夜结局是谁推荐度:
- 相关推荐
Android系统移植第四章 android.mk语法
第1页
一、android.mk的基本语法 二、简单实例介绍 三、系统软件执行步骤
第2页
一、android.mk语法 android.mk是android的工程的管理文件,起作用基本等同于linux 中的MakeFile。在语法上,android.mk和普通的MakeFile略有不同, 主要是android.mk包含一些android编译系统的公共宏。 可以参考build/core/config.mk 各个选项的默认值在build/core/base_rules.mk Android.mk文件处理从根目录开始找到的第一个android.mk文件, 如果需要递归需要在当前目录中做如下处理 Include $(call all-makefile-under,$(LOCAL_PATH)) 增加以上内容后,如果当前子目录中还有android.mk,也会对其作 出处理。 Android.mk中可以生成多个目标:可执行程序、动态库、静态库、 或者android的应用程序包。
第3页
一、android.mk语法 编译可执行程序 LOCAL_PATH:=$(my-dir) //获取当前目录 #Test Exe Include $(CLEAR_VARS) //清除许多LOCAL_XXX变量 LOCAL_MODULE_TAGS :=eng //编译的版本 LOCAL_SRC_FILES:= \ //源文件 main.c LOCAL_MODULE=test_exe //生成可执行程序 LOCAL_C_INCLUDES := //包含的头文件 LOCAL_STATIC_LIBARIES:= //需要的静态库 LOCAL_SHARED_LIBARIES:=libc //需要的动态库 Include $(BUILD_EXECUTABLE) //编译后生成文件路径
第4页
android.mk语法说明 LOCAL_PATH - 编译时的目录 $(call 目录,目录….) 目录引入操作符: 如该目录下有个文件夹名称 src, 则可以这样写 $(call src),那么就会得到 src 目录的完整路径 宏函数’my-dir’, 由编译系统提供,用于返回当前路径 include $(CLEAR_VARS) -清除之前的一些系统变量 CLEAR_VARS:= $(BUILD_SYSTEM)/clear_vars.mk 在 build/core/config.mk 定义 CLEAR_VARS:= $(BUILD_SYSTEM)/clear_vars.mk 通过include 包含自定义的.mk文件(即是自定义编译规则)或是引用系统其 他的.mk文件(系统定义的编译规则)。 LOCAL_SRC_FILES - 编译的源文件 可以是.c, .cpp, .java, .S(汇编文件)或是.aidl等格式, 不同的文件用空格 隔开。如果编译目录子目录,采用相对路径,如子目录/文件名。 也可以通过$(call 目录),指明编译某目录下所有.c/.cpp/.java/.S/ .aidl文 件. 追加文件 LOCAL_SRC_FILES += 文件
第5页
android.mk语法说明 LOCAL_C_INCLUDES - 需要包含的头文件目录 可以是系统定义路径,也可以是相对路径. 如该编译目录下有个 include目录,写法是include/*.h 宏CLEAR_VARS 由编译系统提供,指定让GNU MAKEFILE为你清除许 多LOCAL_XXX变量(例如 LOCAL_MODULE, LOCAL_SRC_FILES,LOCAL_STATIC_LIBRARIES, 等等...),除 LOCAL_PATH 。这是必要的,因为所有的编译控制文件都在同一个GNU MAKE执行环境中,所有的变量都是全局的。 eng: 工程机,user:
最终用户机 tests:测试机 optional:指该模块在所有版本 下都编译 LOCAL_SRC_FILES - 编译的源文件,可以是.c, .cpp, .java, .S(汇编文件) 或是.aidl等格式, 不同的文件用空格隔开 Include $(BUILD_EXECUTABLE): out/target/product/<TARGET_PRODUCT>/obj/EXECUTABLES/<LOCAL_ MODULE>
第6页
android.mk语法说明 编译静态库的模板: #Test Static Lib LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:= / helloworld.c LOCAL_MODULE:= libtest_static #LOCAL_C_INCLUDES := #LOCAL_STATIC_LIBRARIES := #LOCAL_SHARED_LIBRARIES := include $(BUILD_STATIC_LIBRARY) 一般的和上面相似,BUILD_STATIC_LIBRARY表示编译一个静态库。 编译生成的是以“lib<module_name>.so”的文件,这个就是共享库了,这是系统会自 动加上“头”和“尾”。 libtest_static.a Include $(BUILD_EXECUTABLE): out/target/product/<TARGET_PRODUCT>/obj/STATIC_LIBRARY/<LOCAL_MODUL E>第7页
android.mk语法说明 编译动态库的模板: #Test Shared Lib LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:= / helloworld.c LOCAL_MODULE:= libtest_shared TARGET_PRELINK_MODULES := false #LOCAL_C_INCLUDES := #LOCAL_STATIC_LIBRARIES := #LOCAL_SHARED_LIBRARIES := include $(BUILD_SHARED_LIBRARY) LOCAL_PRELINK_MODULE := false Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可 以加快起动速度,还可以减少部分内存开销。 out/target/product/<TARGET_PRODUCT>/obj/SHARED_LIBRARY/<LOCAL_ MODULE>第8页
android.mk语法说明 编译一个简单的APK LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Build all java files in the java subdirectory LOCAL_SRC_FILES := $(call all-subdir-java-files) # Name of the APK to build LOCAL_PACKAGE_NAME := LocalPackage # Tell it to build an APK include $(BUILD_PACKAGE) BUILD_PACKAGE表示编译一个apk程序,而call all-subdir-java-files表示自动 查找当前目录下的所有java文件进行编译。 在源码中编译和SDK环境下编译有所不同,涉及的目录主要有两个。 Out/target/common/obj/apps—通用java字节码目录 out/target/product/<TARGET_PRODUCT>/apps---android应用包目录
第9页
android.mk语法说明 在这两个目录中都有一个名为LOCAL_PACKAGE_NAME_intermediates/的独立目录。每个目录下有三个apk文件,名称为 LOCAL_PACKAGE_NAME.apk.unsigned:第一步生成没有签名的apk包 LOCAL_PACKAGE_NAME.apk.unaligned:第二步生成没有签名的apk包 LOCAL_PACKAGE_NAME.apk.:第三步生成最终的apk包
第 10 页
Android系统开发 在android
第 11 页
Android系统开发 在android
第 12 页
Android系统开发 在android
第 13 页
Android系统开发 在android
第 14 页
Android系统开
发
可执行程序:XXX_intermediates 静态库: XXX_static_intermediates 动态库: XXX_shared_intermediates
第 15 页
第 16 页
正在阅读:
第六章 android.mk语法06-01
浅谈建筑成本控制中的全面预算管理研究06-05
三维离子导入疗法03-11
2018版高中数学第一章解三角形1.2应用举例(二)学案新人教B版必05-23
2018-2024年中国妈咪包市场发展趋势分析研究报告(目录) - 图文01-19
普通心理学12-03
高校学生缴费收入账务核算之重建(一)03-15
七年级数学国庆作业二10-15
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 语法
- android
- mk