IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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.mk学习记录

作者:recommend-item-box type_blog clearfix

一、基本用法(‘:=’是赋值;’+='是追加

#获取当前文件夹的路径
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
# 1.不管是user 还是eng 版本都会编译此app ;
LOCAL_MODULE_TAGS := optional

# 2.定义编译模块所需的源文件 ;
LOCAL_SRC_FILES := $(call all-java-files-under, src)

# 3.指定 APK 的名字,很重要的变量
LOCAL_PACKAGE_NAME := MyDifferentDislay

# 4.设置后,会使用sdk的hide的api來编译
LOCAL_PRIVATE_PLATFORM_APIS := true
# ? 设置后,编译时忽略系统隐藏类(@hide),就是不能访问系统隐藏的API
#LOCAL_SDK_VERSION := current

#LOCAL_DEX_PREOPT := false

# 5.定义编译完成之后的类型:除了APPS,还有ETC,EXECUTABLES(.bin)SHARED_LIBRARIES(.so)
 等选择值
#LOCAL_MODULE_CLASS := APPS

# 7.定义app签名可用选择项platform,shared,media
LOCAL_CERTIFICATE := platform

# 8.将apk编进“/system/priv-app/目录”,如果为false,或者不加这句话,就会编进“/system/app”
 目录, 二者区别在于前者的权限要高于后者,即不可卸载
#LOCAL_PRIVILEGED_MODULE := true

LOCAL_STATIC_ANDROID_LIBRARIES := \
? ? ? ? androidx.appcompat_appcompat \
?? ??? ?androidx-constraintlayout_constraintlayout \
?? ??? ?$(ANDROID_SUPPORT_DESIGN_TARGETS) \
?? ??? ?android-support-percent \
? ? ? ? android-support-transition \
? ? ? ? android-support-compat \

LOCAL_USE_AAPT2 := true
include $(BUILD_PACKAGE)
include $(call all-makefiles-under,$(LOCAL_PATH))


?

二、参数详解? ?

1、LOCAL_CERTIFICATE?:= platform/shared/media(注意,Android.mk填platform/shared/media这三个中的哪一个是根据AndroidManifest.xml确定的):

(1)platform签名:?
AndroidManifest.xml的manifest节点中添加 android:sharedUserId=”android.uid.system”,?
Android.mk中增加  LOCAL_CERTIFICATE := platform?
(2)shared签名:?
AndroidManifest.xml的manifest节点中增加android:sharedUserId=”android.uid.shared”,?
Android.mk中增加LOCAL_CERTIFICATE := shared?
(3)media签名:?
AndroidManifest.xml的manifest节点中增加 android:sharedUserId=”android.media”,?
Android.mk中增加 LOCAL_CERTIFICATE := media?

2、include $(BUILD_PACKAGE):

include $(BUILD_PREBUILT) ? ? ? ? ? ? ? ?#这种方式把文件当成编译项目,
include $(BUILD_PACKAGE) ? ? ? ? ? ? ? ? #是用来编译生成apk。
include $(BUILD_STATIC_LIBRARY) ? ? ? ? ?#表示编译成静态库
include $(BUILD_SHARED_LIBRARY) ? ? ? ? ?#表示编译成动态库
include $(BUILD_EXECUTABLE) ? ? ? ? ? ? ?#表示编译成可执行程序
include $(BUILD_STATIC_JAVA_LIBRARY) ? ? #表示编译生成静态jar包

3、常用函数:

$(call all-java-files-under, <src>)    #获取指定目录下的所有java文件。
 
$(call all-c-files-under, <src>)    #获取指定目录下的所有c文件。
 
$(call all-Iaidl-files-under, <src>)    #获取指定目录下的所有AIDL文件。
 
$(call all-makefiles-under, <folder>)    #获取指定目录下的所有Make文件。

#获取Build输入的目标文件夹路径。 
$(call intermediates-dir-for, <class>, <app_name>, <host or target>, <common?>) 
   
#在LOCAL_PATH的所有子目录中查找.mk文件,不包括当前目录 
$(call first-makefiles-under,$(LOCAL_PATH))    

大爷,赏个铜板呗

?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:12:54  更:2022-04-15 00:14:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 20:45:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码