首页 > 其他分享 >Android.mk基础知识

Android.mk基础知识

时间:2022-12-07 15:44:45浏览次数:39  
标签:LIBRARY 基础知识 构建 mk jni Android BUILD

Android.mk用于构建系统描述源文件和共享库,它实际上是一个微小的GNU makefile片段,构建系统会将其解析一次或多次。

1. AOSP示例

我们以hello-jni开始熟悉Android.mk,位于Android源码的/development/ndk/samples/hello-jni/jni/Android.mk,此示例代码在Android 7.1之后就删除了,但仍然是一个不错的例子。

1 LOCAL_PATH := $(call my-dir)
2 
3 include $(CLEAR_VARS)
4 
5 LOCAL_MODULE    := hello-jni
6 LOCAL_SRC_FILES := hello-jni.c
7 
8 include $(BUILD_SHARED_LIBRARY)
  • 第1行,表示源文件在开发树中的位置;
  • 第3行,指向一个特殊的GNU Makefile,清除除第1行变量外的其他LOCAL_XXX变量;
  • 第5行,要构建的模块的名称;
  • 第6行,表示要构建到模块中的C/C++源文件列表。
  • 第8行,指向一个GNU Makefile,此脚本确定要构建的内容及构建方式,此处位构建共享动态库。

2. include变量

2.1 CLEAR_VARS

 

2.2 BUILD_EXECUTABLE

 

2.3 BUILD_SHARED_LIBRARY

 

2.4 BUILD_STATIC_LIBRARY

 

2.5 PREBUILT_SHARED_LIBRARY

 

2.6 PREBUILT_STATIC_LIBRARY

 

3. 目标信息变量

 

4. 模块描述变量

 

5. 函数宏

 

标签:LIBRARY,基础知识,构建,mk,jni,Android,BUILD
From: https://www.cnblogs.com/phoebus-ma/p/16963279.html

相关文章

  • android nativate 动态注册 静态注册
    说明:在java函数的入口比较容易分析,把activity的生命周期或者关键函数通过放在so层,分析起来就困难多了 1、在MainActivity中packagecom.demo.nativate;import......
  • android 平台移植sfdisk mkfs.ext4等工具使用
    1、mount-orw,remount/ chmod-R777sbin/mkfs.ext4chmod-R777sbin/mkfs.fatchmod-R777sbin/mtoolschmod-R777sbin/sfdiskchmod-R777sbin/yes.coreutilsch......
  • android 中对apache httpclient及httpurlconnection的选择
    在官方blog中,android工程师谈到了如何去选择apacheclient和httpurlconnection的问题:原文见http://android-developers.blogspot.com/2011/09/andro......
  • Android如何优化启动时间(boot time)
    尽可能地减少LA的启动时间在USER的构建。并假设我们有一个非常稳定的USER构建软件,没有任何错误,甚至警告消息存在于启动阶段。首先,我们需要检查驱动程序的初始化时间是否合......
  • K8S相关基础知识
      相信很多人对他的名字都不陌生,但是很多人却把他和docker相关的关系分不清,也没有搞懂它到底是用来做什么的,能帮助我们解决哪些问题,今天我就给大家详细的讲一下。......
  • android驱动之设备树
    使用DeviceTree之后,可以实现不改动内核代码(不改动zImage)的情况下,不同产品,只更换相应的*.dtb文件即可启动系统。即相同的zImage使用不同的*.dtb文件,可以启动不同的产品。......
  • Jenkins实践指南-02-Groovy基础知识01
    2.Groovy基础知识  [作者:Surpassme] 因为pipeline是基于Groovy的,所以还是需要一些基础的Groovy知识的。2.1Groovy简介  [作者:Surpassme] Groovy是Apac......
  • android开发新版Android studio使用新版logcat是过滤条件规则
    有四个常用的过滤关键字,分别是tag,package,level,message,line前面四个关键字过滤可以单独使用也可以组合使用最后那个line应该是指整行的意思,范围包括前面四个-tag:ex......
  • Android Studio的xml文件无法代码提示
    之前试了省电模式、清理缓存、重新勾选sdk都没有任何用于是我开始乱搞,总结了以下方法:找到GradleScript中的build.gradle(Module:XXXX)  修改compileSdk的版本,我之前......
  • iTOP3588开发板编译Android内核方法一
    iTOP3588开发板编译​​Android​​内核方法一:在Android源码目录下执行如下命令编译Android内核:./build.sh-CKA编译完成后如下图所示:编译后会在rockdev/Image-rk358......