可以导入android应用程序的gradle来构建AOSP项目

Tie*_*ham 2 android-source

我有一个由 android-studio 构建的 Android 应用程序,它使用 gradle 脚本,现在我想将应用程序移动到 AOSP 构建系统。那么如何导入 gradle 脚本并转换为 AOSP 构建(可能是 Android.bp 或 Android.mk)。在gradle项目中有很多依赖项,android-studio可以自动下载这个依赖项,我可以在AOSP中这样做吗?

Pha*_*uan 5

根据我的经验,您可能需要手动编写 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)
Run Code Online (Sandbox Code Playgroud)