问题描述
我有一个使用gradle脚本的android-studio构建的android应用,现在我想将应用移至AOSP构建系统。因此,如何导入gradle脚本并转换为AOSP构建(可能是Android.bp或Android.mk)。 在gradle项目中有很多依赖项,android-studio可以自动下载此依赖项,我可以在AOSP中做到吗?
解决方法
根据我的经验,您可能需要手动编写Andorid.mk。顺便说一下,AOSP构建系统不会自动为您下载依赖项。如果依赖关系在AOSP中可用,则无需下载它们,只需链接到它们。否则,您需要将它们下载到本地目录,然后使用Android.mk将它们添加到AOSP并进行链接。
这是Android.mk的示例。其中,“ libs”目录包含AOSP中不可用的库。
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(call all-java-files-under,src)
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_PACKAGE_NAME := testapp
LOCAL_PRIVATE_PLATFORM_APIS := true
LOCAL_REQUIRED_MODULES := com.example.testapp
LOCAL_CERTIFICATE := platform
LOCAL_MODULE_TAGS := optional
LOCAL_PRIVILEGED_MODULE := true
LOCAL_USE_AAPT2 := true
LOCAL_PROGUARD_ENABLED := disabled
LOCAL_STATIC_ANDROID_LIBRARIES += \
androidx.lifecycle_lifecycle-extensions \
androidx.appcompat_appcompat \
androidx-constraintlayout_constraintlayout \
androidx.recyclerview_recyclerview \
androidx.cardview_cardview \
android-support-v4 \
LOCAL_STATIC_JAVA_LIBRARIES := \
cdi-api \
zxing-core \
http \
httpclient \
httpcore \
include $(BUILD_PACKAGE)
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
cdi-api:libs/cdi-api.jar \
zxing-core:libs/core-3.3.2.jar \
http:libs/http-2.2.1.jar \
httpclient:libs/httpclient-4.2.2.jar \
httpcore:libs/httpcore-4.2.3.jar \
include $(BUILD_MULTI_PREBUILT)