JNI代码都写好了,在编译之前我们有非常重要的一部,就是写mk文件,mk文件就相当于gcc编译时的Makefile文件,它是用来告诉编译器如何去编译的。

这里只对自己理解和常用的知识点做记录,想要看关于android.mk的全部解释请移步android.mk

  1. 对执行顺序的猜想,mk文件的执行顺序是从上往下顺序执行的
  2. 基本语法。
    $() 引用方法或变量
    := 赋值符号
    += 拼接赋值
    include 引入(调用)某个代码段,例如include $(BUILD_XXXXX)就相当于把BUILD_XXXXX这个方法的实现拿过来,编译器读到这一行时即执行该方法
  3. mk文件基本都是以LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS)开头,以include $(BUILD_XXXXX)结尾
  4. 常用预留变量解析(基本都以LOCAL_开头)
    LOCAL_PATH:指定当前文件的位置,基本都是赋值为$(call my-dir)
    LOCAL_SRC_FILES:指定需编译的源文件,多文件以空格分隔或使用+=拼接赋值
    LOCAL_MODULE:指定module名,要求必须唯一且不能带空格
    LOCAL_MODULE_FILENAME:指定生成的module的文件名,缺省则按照lib<LOCAL_MODULE>生成.a或.so文件
    LOCAL_STATIC_LIBRARIES:引用的静态库(.a)
    LOCAL_SHARED_LIBRARIES:引用的动态库(.so)
    LOCAL_LDFLAGS:指定链接标志
  5. 常用系统方法
    CLEAR_VARS:清除所有预设的值
    BUILD_SHARED_LIBRARY:编译出动态库(.so)
    BUILD_STATIC_LIBRARY:编译出静态库(.a)
  6. 编译
    cd到.mk文件所在目录,执行ndk包中的ndk-build命令

最新文章

  1. MFC下打开选择文件夹并获取文件夹的绝对路径
  2. MySQL监控利器-Innotop
  3. HBase最佳实践-列族设计优化
  4. phoenix 开发API系列 目录
  5. Android 多点触控与简单手势(一)
  6. 在Linux CentOS上编译CoreCLR
  7. abap alv multiple header using write
  8. jQuery DOM 元素方法 - index() 方法
  9. ASP.NET Core 使用 JWT 搭建分布式无状态身份验证系统
  10. C++读取csv表格文件到vector
  11. InnoDB存储引擎的总览
  12. Thread.interrupt()
  13. STL.vector.iterator的序号
  14. B. ZgukistringZ
  15. Codeforces805 C. Find Amir 2017-05-05 08:41 140人阅读 评论(0) 收藏
  16. node.js学习之post文件上传 (multer中间件)
  17. php 的session机制 和ecshop session机制
  18. CF 833 B. The Bakery
  19. Codeforces 372 B. Counting Rectangles is Fun
  20. SMT Surface Mount Technology footprint references

热门文章

  1. 【区间DP】低价回文
  2. Azure Web App (一)发布你的Net Core Web 项目
  3. Hadoop集群之浅析安全模式
  4. JVM 专题十四:本地方法接口
  5. java 基本语法(十八)Lambda (五)Stream API
  6. python网络编程05 /TCP阻塞机制
  7. Python之堡垒机
  8. python处理json总结
  9. uPDF-功能强大的PDF文件处理小工具
  10. java的干儿子锁Lock