我有一个由 android-studio 构建的 Android 应用程序,它使用 gradle 脚本,现在我想将应用程序移动到 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)
关于android-source - 可以导入android应用程序的gradle来构建AOSP项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64041734/