Android.mk檔案是在使用NDK編譯C代碼時必須的檔案,Android.mk檔案中描述了哪些C檔案將被編譯且指明了如何編譯。掌握Android.mk檔案的編寫主要是掌握其裡頭將要使用的一些關鍵字,先來看一個簡單的例子,這個例子使用的是android NDK帶的
HellJni的例子。
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello-jniLOCAL_SRC_FILES := hello-jni.cinclude $(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)寫法
android makefile(android.mk)分析(序)
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 -->
/**
* @author 張興業
* 郵箱:xy-zhang#163.com
* android開發進階群:278401545
*
*/