| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 编写Android.mk把Android studio项目编译到AOSP源码中 -> 正文阅读 |
|
[游戏开发]编写Android.mk把Android studio项目编译到AOSP源码中 |
前言:? ? ? ? ? ? ?在工作,我们利用Android studio开发apk是非常方便的,当我们要把工程代码放在android 源码中编译的时候,需要我们自己编写Andorid.mk 文件。以下内容是对Android.mk文件中的代码 解释说明。 Android.mk 编写:#每个Android.mk文件必须以定义LOCAL_PATH为开始。它用于在开发tree中查找源文件
#CLEAR_VARS 变量由Build System提供。并指向一个指定的GNU Makefile,由它负责清理很多 LOCAL_xxx.例如:LOCAL_MODULE, LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES, 但不清理LOCAL_PATH,这个清理动作是必须的,因为所有的编译控制文件由同一个GNU Make解析和执行,其变量是全局的。所以清理后才能避免相互影响。
#LOCAL_MODULE_TAGS :=? user eng tests optional user: 指该模块只在user版本下才编译 eng: 指该模块只在eng版本下才编译 tests: 指该模块只在tests版本下才编译 optional:指该模块在所有版本下都编译
#LOCAL_SRC_FILES变量必须包含将要打包如模块的C/C++ , java源码。
#编译AndriodManifest.xml
#在指定分区中安装此模块 ? ? ?一般有? system? ? system_ext? ? ?product? ? ?vendor? ? ?odm? ? ? ?分区? ? ?
#LOCAL_PRIVILEGED_MODULE := true对于Android系统应用LOCAL_PRIVILEGED_MODULE 决定了app在编译后,放在ROM分区中的 app? 或者 priv-app位置
#使用sdk的hide的api來编译,?Android P 之后,Android.mk 必须定义 LOCAL_SDK_VERSION 和 LOCAL_PRIVATE_PLATFORM_APIS 变量中的一个, 这两种是或的关系,只需要定义一个
?#aapt 是编译和打包资源的工具。而aapt2是在aapt上做了优化
#指定依赖的共享java类库,这个是编译时依赖,最终不会打包到apk中
#指定依赖的静态java类库,最终会打包到apk里面。 ?使用多个引用的时候,写法如下:
#指定依赖的模块。指定模块运行所依赖的模块(模块安装时将会同步安装它所依赖的模块)
#混淆配置,默认为full obfuscation,全代码混淆,disabled不开启
# LOCAL_CERTIFICATE 用于设置不同的签名方式 用于设置不同的签名方式build/target/product/security目录中有四组默认签名供Android.mk在编译APK使用: ????????1、testkey:普通APK,默认情况下使用。 ????????2、platform:该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system。 ????????3、shared:该APK需要和home/contacts进程共享数据。 ????????4、media:该APK是media/download系统中的一环。 应用程序的Android.mk中有一个LOCAL_CERTIFICATE字段,由它指定用哪个key签名,未指定的默认用testkey. Settings.apk就是platform级别的签名,系统级应用都应该使用这个签名
#声明要调用android包,会打包到apk中,调用多个时,写法如下:
#aapt是Android的打包工具, 1、–auto-add-overlay意思是当不同文件夹有相同的资源id时,只将第一个资源合并打包进来,
#编译APK
BUILD_HOST_STATIC_LIBRARY 编译静态库(适用与主机)
#Android.mk 文件结尾,make文件最后一句话 include $(call all-makefiles-under,$(LOCAL_PATH)) |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 22:03:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |