android 原始碼中預置帶.so檔案的APK
阿新 • • 發佈:2018-12-30
有原始碼有.so預置apk:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under,src)
LOCAL_PACKAGE_NAME := APK_NAME
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4
LOCAL_PREBUILT_JNI_LIBS:=\
libs/armeabi/libsafekey.so
LOCAL_CERTIFICATE := platform
LOCAL_MULTILIB :=32
include $(BUILD_PACKAGE)
LOCAL_STATIC_JAVA_LIBRARIES 載入庫檔案
LOCAL_STATIC_JAVA_LIBRARIES 新增.so檔案,如果apk中不帶.so檔案,可不加
LOCAL_MULTILIB 只預置32位的.so,(64bit/32bit)
預置無原始碼無.so檔案的apk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Module name should match apk name to be installed LOCAL_MODULE := APK_NAME LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(LOCAL_MODULE).apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_PREBUILT_JNI_LIBS:= \ @lib/armeabi/libBDRC4_V1_1.so \ @lib/armeabi/libfileobserver_jni.so \ @lib/armeabi/libfreetype-jni.so \ @lib/armeabi/libKSOStatEncryption.so \ @lib/armeabi/libkwopdf.so \ @lib/armeabi/libOoxmlDecrypt.so \ @lib/armeabi/libweibosdkcore.so #LOCAL_MULTILIB :=32 LOCAL_CERTIFICATE := PRESIGNED include $(BUILD_PREBUILT)
LOCAL_PREBUILT_JNI_LIBS:apk中帶.so
預置無原始碼無so檔案的apk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := APK_NAME LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_TAGS := optional LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_CERTIFICATE := PRESIGNED LOCAL_SRC_FILES := $(LOCAL_MODULE).apk include $(BUILD_PREBUILT)
容易出問題的是第一種,有原始碼有.so檔案的,可能會碰到各種so檔案的錯誤,特別注意一下。
有原始碼預置apk時,不要忘了在AndroidManifest.xml中新增 android:sharedUserId="android.uid.system"