添加.so库作为AOSP棒棒糖中包/应用程序的一部分



我一直在尝试将.so库作为AOSP中应用程序的一部分。它可以用Android.mk完成。下面是我在pacakges/app目录中的应用程序的Android.mk:

 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS)
 LOCAL_MODULE_TAGS := optional
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 LOCAL_PACKAGE_NAME := OpentokSample  
 LOCAL_CERTIFICATE:= platform
 LOCAL_JNI_SHARED_LIBRARIES=libopentok
 include $(BUILD_PACKAGE)
 include $(call all-makefiles-under,$(LOCAL_PATH))

下面是Android.mk,包括libopentok.so:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libopentok
LOCAL_PREBUILT_LIBS := opentok.so
include $(BUILD_SHARED_LIBRARY)

但这无济于事?

我认为如果使用预构建的.so文件,则应该使用include $(BUILD_PREBUILT),并将其标记为LOCAL_MODULE_CLASS := SHARED_LIBRARIES。并且您需要在LOCAL_REQUIRED_MODULES中列出依赖项。

下面是一个Android.mk示例,它添加了一个预编译的apk应用程序,并将其.so库放入系统库文件夹:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := MyApp
LOCAL_CERTIFICATE := platform
LOCAL_REQUIRED_MODULES := libamrcodec libecies
LOCAL_SRC_FILES := MyApp.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := libamrcodec
LOCAL_SRC_FILES := libs/armeabi/libamrcodec.so
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_PRELINK_MODULE := false
#LOCAL_MODULE_PATH := system/lib
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := libecies
LOCAL_SRC_FILES := libs/armeabi/libecies.so
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_PRELINK_MODULE := false
#LOCAL_MODULE_PATH := system/lib
include $(BUILD_PREBUILT)
LOCAL_MODULE_TAGS := samples

LOCAL_MODULE_TAGS := tests

相关内容

最新更新