Android.mk 用法解析整理

Android  2019年5月9日 pm7:30发布6年前 (2019)更新 91es.com站长
94 0 0


Android.mk 还是整理一下,有时候还是忘记了,这里只是讲解一部分,其他的自己百度或谷歌吧。

 

编译一个APK的Android.mk文件

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

#指定依赖的共享Java类库
LOCAL_JAVA_LIBARARIES := android-common
#指定依赖的静态Java类库
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v13

#指定源码文件目录,这里定义搜寻src目录中的
LOCAL_SRC_FILES := $(call all-subdir-java-files,src)
#这种也可以,没指定哪个目录
#LOCAL_SRC_FILES := $(call all-subdir-java-files)

#指定模块的标签
LOCAL_MODULE_TAGS := optional
#指定当前编译环境中的SDK版本(通常不设定)
#若是添加,编译时会忽略源码隐藏的API,导致编译失败
LOCAL_SDK_VERSION := current
#指定编译后模块的名称
LOCAL_PACKAGE_NAME := MyAvm
#指定模块的签名方式
LOCAL_CERTIFICATE := platform
#指定编译一个APK
include $(BUILD_PACKAGE)

include $(call all-makefiles-under,$(LOCAL_PATH))

一、LOCAL_MODULE_TAGS

指定模块的TAG标签,其后面可以跟user eng tests optional这四种tag,不同tag代表不同的作用。

user: 指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
tests: 指该模块只在tests版本下才编译
optional:指该模块在所有版本下都编译

一般我们项目中都是使用optional 作为默认的TAG

二、LOCAL_SDK_VERSION

通常是不会增加此选项的。但是我们还是要搞定一下这个选项的意义。

如果你是添加LOCAL_SDK_VERSION := current 此选项,此APK在编译时会忽略源码隐藏的API,如果你用了隐藏(hide)的API就会编译异常。

三、LOCAL_CERTIFICATE

1、LOCAL_CERTIFICATE := platform

该APK完成一些系统的核心功能。经过对系统中存在的文件夹的访问测试,这种方式编译出来的APK所在进程的UID为system

2、LOCAL_CERTIFICATE := shared

该APK需要和home/contacts进程共享数据。

3、LOCAL_CERTIFICATE := media

该APK是media/download系统中的一环。

4、LOCAL_CERTIFICATE := testkey

普通APK,默认情况下使用
PS: 此部分摘抄于《对于mk文件的理解

 

目前就这些吧,后续继续整理。

 历史上的今天

  1. 2024: Android关闭selinux(0条评论)
  2. 2023: IJKPlayer和MediaPlayer切换问题(0条评论)
  3. 2022: C语言输出格式符(0条评论)
  4. 2018: [摘]UML类图符号的各种关系说明(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

世界,您好!

1、好记性不如烂笔头;2、觉得已经晚了,恰恰是最早的时候;3、鸡蛋从外打破是食物,从内打破是生命我们新版上线啦(掌声),这次改版很大,放弃之前传统的导航模式,首先采用“网址导航+读书(阅读)+博客”全新的模式,依旧是国内第一个以读书(阅读)为主题的网址导航大全!因为热爱,所以折腾!P...

舒婷:墙

我无法反抗墙只有反抗的愿望 我是什么?它是什么?很可能它是我渐渐老化的皮肤既感觉不到雨冷风寒也接受不了米兰的芬芳或者我只是株车前草装饰性地寄生在它的泥缝里我的偶然决定了它的必然 夜晚,墙活动起来伸出柔软的伪足挤压我勒索我要我适应各式各样的形状我...

去除USB权限效验弹框

修改路径:frameworks/base/core/res/res/values/config.xml 修改内容:<bool name="config_disableUsbPermissionDialogs">true</bool>

adb获取Android系统属性

在android系统中,它的根文件系统下有几个用于启动系统时需要的配置文件:/init.rc/default.prop/system/build.prop通常我们可以通过命令getprop获取,setprop设置;在使用这两个命令前,先看看build.prop里面到底有些什么东西:...

王安忆:洗澡

行李前的马路上没有一棵树,太阳就这样直晒下俩。他已经将八大包书捆上了自行车,自行车再也动不了了。那小伙子早已注意他了,很有信心地骑在他的黄鱼车上,他徒劳地推了推车,车却要倒,扶也扶不住。小伙子超前骑了半步,又朝后退了半步,然后说:“师傅要去哪里?”他看了那人一眼停了一下,才说:“静安寺。”小伙子就说...

陈忠实:马罗大叔

星期六回到家中,刚落坐,母亲说:“你马罗儿叔不在了。”“什么时候?”我问。“昨日夜里,还弄不清辰时卯时咽的气。”母亲叹了口气,“今日清早人才发觉。”这也许不奇怪。一个老光棍儿,夜里独自一个人睡在窑里,死一百次,大约也不会被谁及时发现的。尽管这样想,我的心里仍然禁不住悲哀起来了。“啥病也没添,...