編輯:關於android開發
最近新項目需要編譯64位的動態庫,這裡記錄如何配置。
在jni目錄下加入Android.mk和Application.mk文件。
Application.mk
1 APP_ABI := armeabi armeabi-v7a arm64-v8a
Android.mk
1 LOCAL_PATH := $(call my-dir) 2 include $(CLEAR_VARS) 3 4 LOCAL_MODULE := hello-jni 5 LOCAL_SRC_FILES := hello-jni.c 6 7 include $(BUILD_SHARED_LIBRARY)
加上這兩個mk文件後,編譯就會生成armeabi、armeabi-v7a、arm64-v8a的庫文件。
補充:
Android.mk文件是用來向build system(編譯系統)描述你的源文件的,比如你要編一個靜態庫(.a文件) 或 一個動態庫(.so文件),將由build system解析一次或者多次。
Application.mk目的是GNU Makefile的一部分,描述你的應用所依賴的編譯系統中的模塊(靜態庫或動態庫)。
在Android.mk文件中判斷64位還是32位
1 ifneq ($(filter $(NDK_KNOWN_DEVICE_ABI64S),$(TARGET_ARCH_ABI)),) 2 # 64-bit ABIs 3 4 …… 5 …… 6 7 else 8 # 32-bit ABIs 9 10 …… 11 …… 12 …… 13 14 15 endif
編譯目標類型
每個Android.mk文件後面都會指明要編譯什麼類型的輸出,比如下面:
編譯動態庫 : include $(BUILD_SHARED_LIBRARY)
編譯靜態庫 : include $(BUILD_STATIC_LIBRARY)
輸出已編譯好的so文件 : include $(PREBUILT_SHARED_LIBRARY)
編譯jar文件 : include $(BUILD_JAVA_LIBRARY)
輸出已編譯好的apk文件 : include $(BUILD_PREBUILT)
編譯apk文件 : include $(BUILD_PACKAGE)
Android多媒體--MediaCodec 中文API文檔,mediacodecapi*由於工作需要,需要利用MediaCodec實現Playback及Transcod
Android 國際化,Android國際化由於公司的項目是投放 google play store , 所以要做國際化。國際化遇到的兩個大問題 字符串國際化 布局樣
安卓熱更新之Nuwa實現步驟,安卓nuwa實現步驟
Android 自定義控件的使用,android自定義控件首先自定義一個attrs.xml的資源文件,聲明自定義屬性 <?xml version=1.0 enco