Android-ndk中的.mk文件语法规则
Android.mk
-------------------------------------------------------------------------
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE
LOCAL_SRC_FILES := hello-jni.c
include $(BUILD_SHARED_LIBRARY)
Application.mk
----------------------------------------------------------------------------
#翻译 $(call my-dir) 当前路径的意思,也就是说这个脚本所在的路径
APP_PROJECT_PATH := $(call my-dir)/project
APP_MODULES
out目录说明
-----------------------------------------------------------------------------
host这个文件时必须的,不能删除掉。
apps可以删除掉,这个文件夹是专门用来存放编译源码时产生的临时文件的地方。如果再次生成.so
文件出错可以清楚apps这个目录来达到清理缓存目的。但是我个人认为这个apps文件夹可以在下个版本中
移除,因为程序员可以不必关心这个垃圾中转站。但是想了解编译过程这个是必不可少的。
因为.mk相当于shell或者是php,所以就成他们为脚本吧。
关于mk脚本的注意事项:
1.所有的.mk文件必须是以ansi编码,否则会提示找不到某个变量
2.如果注释和脚本是一行的 是以#开头(注意中文和英文的区别) 之间不能有任何的空格
3.用中文注释的时候中文的#和英文的#都是一样的,这个比较好。
4.编译器内部有个mk脚本版本的hash算法,来区别该脚本是不是有更新过,就像我们开发android应用程序一样(需要有修改才能运行
在模拟器上,否则会提示已经运行到前台),如果所有的.mk脚本没有被修改过,你再次运行make APP=XXX的时候会提示你Nothing To Be Done!
因为两次的hash值是一样的,说明没被改过,不会重复运行。