必威体育Betway必威体育官网
当前位置:首页 > IT技术

mk 解释

时间:2019-07-15 00:10:00来源:IT技术作者:seo实验室小编阅读:81次「手机版」
 

mk

local_PACKAGE_NAME:当前编译出来的安装包的名字

例如:LOCAL_PACKAGE_NAME := AmPmListening

然后以如下结尾:

include $(build_PACKAGE)

LOCAL_CERTIFICATE := platform  //使用的哪种key 来给apk签名

LOCAL_MODULE:     当前编译出来的库的名字

include $(BUILD_XXX)

include $(BUILD_STATIC_LIBRARY)表示编译成静态库

include $(BUILD_SHARED_LIBRARY)表示编译成动态库。

include $(BUILD_EXECUTABLE)表示编译成可执行程序

LOCAL_SRC_FILES:  当前参与编译的源文件

LOCAL_C_INCLUDES: 当前参与编译的源文件的头文件

LOCAL_MODULE_TAGS:= user eng tests optional

       user: 指该模块只在user版本下才编译

       eng: 指该模块只在eng版本下才编译

       tests: 指该模块只在tests版本下才编译

       optional:指该模块在 所有版本下都编译,默认是optional

       

LOCAL_CFLAGS

https://www.cnblogs.com/activity-life/p/3639279.html

$(warning  " JNI_H_INCLUDE =  $(JNI_H_INCLUDE)")

LOCAL_PRELINK_MODULE := false

115     {

116             Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可以加快起动速度,还可以减少部分内存开销,

117         是各种linux架构上用于减少程序加载时间、缩短系统启动时间和加快应用程序启动的很受欢迎的一个工具。程序运行时的

118         动态链接尤其是重定位(relocation)的开销对于大型系统来说是很大的。

119         动态链接和加载的过程开销很大,并且在大多数的系统上, 函数库并不会常常被更动, 每次程序被执行时所进行的链接

120         动作都是完全相同的,对于嵌入式系统来说尤其如此。因此,这一过程可以改在运行时之前就可以预先处理好,即花一些时间

121         利用Prelink工具对动态共享库和可执行文件进行处理,修改这些二进制文件并加入相应的重定位等信息,节约了本来在程序

122         启动时的比较耗时的查询函数地址等工作,这样可以减少程序启动的时间,同时也减少了内存的耗用。 

123         Prelink的这种做法当然也有代价:每次更新动态共享库时,相关的可执行文件都需要重新执行一遍Prelink才能保

124         证有效,因为新的共享库中的符号信息、地址等很可能与原来的已经不同了,这就是为什么 Android framework代码一改动,

125         这时候就会导致相关的应用程序重新被编译。

126         这种代价对于嵌入式系统的开发者来说可能稍微带来一些复杂度,不过好在对用户来说几乎是可以忽略的。

127     }

https://blog.csdn.net/xdonx/article/details/8330847

https://blog.csdn.net/xdonx/article/details/8330847

LOCAL_SHARED_LIBRARIES 与 LOCAL_LDLIBS,LOCAL_LDFLAGS的区别:

这三个都是为了链接第三方的库

============================================================

LOCAL_LDLIBS :

链接的库不产生依赖关系,一般用于不需要重新编译的库,如库不存在,则会报错找不到。且貌似只能链接那些存在于系统目录下本模块需要连接的库。如果某一个库既有动态库又有静态库,那么在默认情况下是链接的动态库而非静态库。

例如:LOCAL_LDLIBS += -llog //在我们的代码中添加android的打印库,这个库是android直接提供的,所有我们直接区连接就行了,不用编译。

LOCAL_SHARED_LIBRARIES:会生成依赖关系,当库不存在时会去编译这个库。

LOCAL_LDFLAGS:这个编译变量传递给链接器一个一些额外的参数,比如想传递而外的库和库路径给ld

例如:LOCAL_LDFLAGS += -L$(LOCAL_PATH)/lib/ -lHWrecog –EB{EL} –O{n} …

LOCAL_LDFLAGS = $(LOCAL_PATH)/libvideodecryptkey.a

如果是非系统的第三方库,貌似只能用LOCAL_LDFLAGS方式,LOCAL_LDLIBS方式不行。

相关阅读

File类中createNewFile方法为什么需要抛出异常而mkdir

问题 在学习对硬盘文件操作类File时我们会遇到如下的情况: 我们来创建一个新文件: public class FileTest { public st

IG战队同款 海盗船K70 RGB MK.2游戏键盘详细图文评测

相信在11月3日的比赛玩家们都看过了,IG战队非常轻松地以巨大的优势3:0战胜了欧洲强队FNC获得了《英雄联盟》S8的冠军,这也是中国战

Gooogle发布生成https加密证书工具mkcert

谷歌日前正加快速度完成一项关于mkcert的开源项目,项目本身允许开发者在本地部署https测试环境,而mkcert是一个能够让网站通过自动

mkvmerge GUI怎么使用 MKV字幕提取与封装软件使用图文

Mkvmerge是一款免费的 MKV 编辑器和工具集,支持任何视频、音频、字幕等格式封装合并成mkv格式,配合 Mkvmerge GUI + MKVExtractGUI

MKV文件用什么播放器播放?MKV是什么格式的详细介绍

MKV不是一种压缩格式,而是Matroska的一种媒体文件,Matroska是一种新的多媒体封装格式,也称多媒体容器 (Multimedia Container)。它可

分享到:

栏目导航

推荐阅读

热门阅读