[ROM]预制三方apk 自动提取so
生活随笔
收集整理的這篇文章主要介紹了
[ROM]预制三方apk 自动提取so
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
android 集成三方帶so的apk到system/app或者system/priv-app目錄時,要把so提取出來才能正常運行。
網上找的mk腳本都是要手動把apk的so解壓出來。
這樣會導致預制三方apk的時候特別麻煩,常常忘記解壓新版本的so,可能導致隱藏的坑。因此自己寫了一個自動提取so的mk模板。
集成時,只需要把apk和mk放入同一目錄即可。
這里有個副作用,就是會在當前目錄產生一個lib目錄。
新增一個.gitignore文件,防止git跟蹤自動提取出來的lib目錄。
mk文件內容:
LOCAL_PATH := $(call my-dir)APK_NAME_FULL :=$(shell cd $(LOCAL_PATH); ls -A | grep apk) APK_NAME :=$(shell echo $(APK_NAME_FULL) | sed 's/.apk//g') $(warning --------------fullName=$(APK_NAME_FULL)---------------------name=$(APK_NAME))define get-all-libraries-module-name-in-subdirs $(sort $(shell cd $(LOCAL_PATH) ; rm -rf lib >/dev/null ; unzip $(APK_NAME_FULL) 'lib/*.so' -d . >/dev/null ; find -L $(1) -name "*.so")) endefALL_LIBRARIES_MODULE_NAME := $(call get-all-libraries-module-name-in-subdirs, lib/armeabi-v7a) $(warning ALL_LIBRARIES_MODULE_NAME:--- $(ALL_LIBRARIES_MODULE_NAME) )#integrate the apk include $(CLEAR_VARS) LOCAL_MODULE := XXXX LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := APPS LOCAL_CERTIFICATE := PRESIGNED LOCAL_MODULE_SUFFIX := .apk LOCAL_SRC_FILES := $(APK_NAME_FULL) #LOCAL_MULTILIB := 64 LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_APPS) LOCAL_PREBUILT_JNI_LIBS := $(ALL_LIBRARIES_MODULE_NAME) include $(BUILD_PREBUILT).gitignore文件內容:
lib/總結
以上是生活随笔為你收集整理的[ROM]预制三方apk 自动提取so的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS实现复制功能的三种方式,有坑
- 下一篇: 苹果cms10好看的自适应高端大气简洁网