1. 程式人生 > >Android 內建含有so檔案的APK的另一種方式

Android 內建含有so檔案的APK的另一種方式

受內建GMS應用的Android.mk檔案啟發($(ANDROID_ROOT)/vendor/google/apps/Android.mk),我們在內建還有so檔案的apk時,有個更便捷的方式。

下面的指令碼是內建搜狗輸入法的一個例程。該apk含有三個so檔案,分別是:libhanvonhw_v39.so、libsogouime_jni_v39.so、libthemeextractor_v39.so。


其中Android.mk內容如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Module name should match apk name to be installed
LOCAL_MODULE := SogouInput

LOCAL_MOUDLE_TAGS := optional

LOCAL_SRC_FILES := $(LOCAL_MODULE).apk

LOCAL_MODULE_CLASS := APPS

LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)

LOCAL_CERTIFICATE := PRESIGNED

LOCAL_REQUIRED_MODULES := \
		libhanvonhw_v39 \
		libsogouime_jni_v39 \
		libthemeextractor_v39
		
include $(BUILD_PREBUILT)

#########################################
include $(CLEAR_VARS)

LOCAL_PREBUILT_LIBS := libhanvonhw_v39.so

LOCAL_MODULE_TAGS := optional

include $(BUILD_MULTI_PREBUILT)
#########################################
include $(CLEAR_VARS)

LOCAL_PREBUILT_LIBS := libsogouime_jni_v39.so

LOCAL_MODULE_TAGS := optional

include $(BUILD_MULTI_PREBUILT)
#########################################
include $(CLEAR_VARS)

LOCAL_PREBUILT_LIBS := libthemeextractor_v39.so

LOCAL_MODULE_TAGS := optional

include $(BUILD_MULTI_PREBUILT)
##########################################

最後,不要忘記在$(ANDROID_ROOT)/build/target/product/common.mk裡將SogouInput模組加入到PRODUCT_PACKAGES := 裡。

Enjoy it!!