使用Android.mk从预构建的APK文件中提取本机库

问题描述

我有一个包含本地库文件的APK文件。当我使用adb安装它们时,库是在 / lib /中正确创建的,但是我必须将我的apk与Android.mk文件一起集成到构建系统中。我需要在make中添加什么才能将库提取到目标上

解决方法

您可以在AOSP中找到一个示例,例如在external/chromium-webview项目中:

SO上已经讨论了一些相关主题:

,
  • 如果您有库,则复制库并在aosp_source / external / yourlibfolder中创建一个文件夹,然后将库粘贴到那里。

  • 转到构建/定位/产品并以您相关的品牌编写此代码 每个库的文件(例如handhel_system.mk)。用每个库名称替换yourlibname

external/yourlibfolder/yourlibname.so:system/lib/yourlibname.so \
external/yourlibfolder/yourlibname.so:system/lib64/yourlibname.so \ 
  • 它将在AOSP中添加与应用程序相关的库。现在,当您添加您的 在AOSP中预构建的APK将正常运行

在packages / app / yourappfolder中创建一个文件夹,并将APK粘贴并在那里创建文件

这应该是您的制作文件

# Adding Apk as system app in AOSP
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Appname # It should be your apk name,and folder name should also be same 
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := .apk
LOCAL_MODULE_CLASS := APPS
LOCAL_CERTIFICATE := platform
include $(BUILD_PREBUILT)