Android.mk文件是在使用NDK編譯C代碼時必須的文件,Android.mk文件中描述了哪些C文件將被編譯且指明了如何編譯。掌握Android.mk文件的編寫主要是掌握其里頭將要使用的一些關鍵字,先來看一個簡單的例子,這個例子使用的是android NDK帶的
HellJni的例子。
~~~
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c
include $(BUILD_SHARED_LIBRARY)
~~~
LOCAL_PATH 是描述所有要編譯的C文件所在的根目錄,這邊的賦值為$(call my-dir),代表根目錄即為Android.mk所在的目錄。
include $(CLEAR_VARS) 代表在使用NDK編譯工具時對編譯環境中所用到的全局變量清零,如LOCAL_MODULE,LOCAL_SRC_FILES等,因為在一次NDK編譯過程中可能會多次調用Android.mk文件,中間用到的全局變量可能是變化的。關于這個問題看了下面比較復雜的例子可能就明白了。
LOCAL_MODULE 是最后生成庫時的名字的一部分,給其加上前綴lib和后綴.so就是生成的共享庫的名字libhello-jni.so。
LOCAL_SRC_FILES 指明要被編譯的c文件的文件名
include $(BUILD_SHARED_LIBRARY) 指明NDK編譯時將生成一些共享庫
參考:
[android編譯系統makefile(Android.mk)寫法](http://www.cnblogs.com/hesiming/archive/2011/03/15/1984444.html)
[android makefile(android.mk)分析(序)](http://blog.csdn.net/chief1985/article/details/4699831 "android makefile(android.mk)分析(序)")
[Android.mk的用法和基礎](http://blog.csdn.net/zhandoushi1982/article/details/5316669 "Android.mk的用法和基礎 ")
~~~
<!-- JiaThis Button BEGIN -->
<div id="ckepop">
<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt" target="_blank"><img src="http://v2.jiathis.com/code_mini/images/btn/v1/jiathis1.gif" border="0" /></a>
<a class="jiathis_counter_style_margin:3px 0 0 2px"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code_mini/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END --><!-- JiaThis Button BEGIN -->
<div id="ckepop">
<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt" target="_blank"><img src="http://v2.jiathis.com/code_mini/images/btn/v1/jiathis1.gif" border="0" /></a>
<a class="jiathis_counter_style_margin:3px 0 0 2px"></a>
</div>
<script type="text/javascript" src="http://v2.jiathis.com/code_mini/jia.js" charset="utf-8"></script>
<!-- JiaThis Button END -->
~~~