.so的編譯
進過測試,發(fā)現只有全編才能生成對應的so,編譯了7.8種方法發(fā)現只有這種有效
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
...
// 指定模塊運行所依賴的模塊(模塊安裝時將會同步安裝它所依賴的模塊)
LOCAL_REQUIRED_MODULES := libMemFillTool \
//這樣在編譯的時候,NDK自動會把這個libMemFillTool打包進apk; 放在apk/lib/目錄下
LOCAL_JNI_SHARED_LIBRARIES := libMemFillTool\
include $(BUILD_PACKAGE)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE := libMemFillTool
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
//路徑
LOCAL_SRC_FILES_arm :=libs/armeabi-v7a/libMemFillTool.so
LOCAL_MODULE_TARGET_ARCHS:= arm
LOCAL_MULTILIB := both
include $(BUILD_PREBUILT)
.jar的編譯
這個使用的比較多,如下eg:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
...
LOCAL_STATIC_JAVA_LIBRARIES := gson \
include $(BUILD_PACKAGE)
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := gson:libs/gson-2.2.2.jar \
include $(BUILD_MULTI_PREBUILT)
aidl的編譯
注意點:
- 編譯的目錄只能用單級目錄
- 變量類型map只能in類型,不能用inout類型
- 不添加接口類eg:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
...
LOCAL_SRC_FILES := $(call all-java-files-under,src) \
src/com/galanz/aidlserver/serialport/IAidlSerialPort.aidl \
src/com/galanz/aidlserver/serialport/AttributeChangeCallBack.aidl \
src/com/galanz/aidlserver/serialport/InitFinishCallBack.aidl \
src/com/galanz/aidlserver/serialport/UpgradeCallBck.aidl \
include $(BUILD_PACKAGE)