android-source - 在 AOSP Lollipop 中添加 .so 库作为包/应用程序的一部分

标签 android-source android.mk

我一直在尝试将 .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))

下面是包含 libopentok.so 的 Android.mk:

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 库放入系统 lib 文件夹中:

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)

关于android-source - 在 AOSP Lollipop 中添加 .so 库作为包/应用程序的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32472228/

相关文章:

android - 如何在 AOSP 源代码中添加预建应用程序(系统应用程序)

java - 修改Android源的核心Java库以在应用程序中使用

java - 如何在我的 Android.mk 中使用 Android tesseract Android.mk 文件?

android - 如何将 .cpp 包含文件添加到 android.mk 中的依赖项?

android - NDK 和 libiconv

android - 如何将文件系统移植到Android?

android - 相机原生代码底层逻辑

Android,搭建Linux编译环境,libgl1-mesa-glx :i386 package have unmet dependencies

android - 从 Java 文件调用 C++ 文件中的 C++ 方法时出现 UnsatisfiedLinkError

android - C 源代码不会为 ARM 架构编译