kot*_*sen 2 android android-source
我有一个现有的android应用程序,我想使用Android.mk在AOSP(Android源代码树)中构建。该应用程序使用的约束布局未包含在AOSP源代码树(AFAIK)中。我如何满足这种依赖性?包括其他支持库,例如recyclerview,v4等,但不包含约束布局。
我应该下载lib aar吗?如果是,如何添加/包含它?还是应该获取源代码(在何处下载?)并将其构建在源代码树中的某个位置?
在此先感谢您的帮助。
有几种方法可以解决您的问题。
1.添加一个预建的.apk
您不必将源代码放在AOSP树中。您可以添加.apk文件,将其放在packages/apps/YourApp,或中vendor/yourname/packages/apps/YourApp,甚至your_dir_name/packages/apps/YourApp创建一个Android.mk文件以供构建系统确定您的应用程序。您Android.mk将像:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := YourApplication # your .apk name
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
Run Code Online (Sandbox Code Playgroud)
优点:您可以使用构建项目gradle。
2.将源代码添加到AOSP
如果您仍然希望将源代码packages/apps放入并在其中构建,则可以将a ConstrainsLayout放在项目的libs/目录中,然后添加到以下内容中Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# List of static libraries to include in the package
LOCAL_STATIC_JAVA_LIBRARIES := constraint-layout
# Build all java files in the java subdirectory
LOCAL_SRC_FILES := $(call all-subdir-java-files)
# Name of the APK
LOCAL_PACKAGE_NAME := YourApplication
# Tell it to build an APK
include $(BUILD_PACKAGE)
Run Code Online (Sandbox Code Playgroud)
万一您无法使用它(我还没有遇到这个问题,但是他做到了):
LOCAL_STATIC_JAVA_LIBRARIES := libconstraint-layout
include $(BUILD_PACKAGE)
Run Code Online (Sandbox Code Playgroud)
其他东西,最后
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libconstraint-layout:libs/constraint-layout.aar
Run Code Online (Sandbox Code Playgroud)
缺点:您将必须使用make by mma或来构建代码mm -B,或者将a gradle作为开发的第二个构建系统。第二个选项可以使用,但是要建立完整的构建并具有.apk内置out/目录,则必须使用构建它make。
3.添加一个ConstraintLayout
如果您要拥有多个使用约束布局的应用程序,则可以将其作为预编译的添加为新的库模块.aar。可以分别位于“供应商/您的名称/库”或“您的目录名称/库”中。这类似于添加一个预构建的.apk(我没有添加任何.aar类似的,所以这不是我测试过的,可能包含错误!):
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := constraint-layout
LOCAL_SRC_FILES := $(LOCAL_MODULE).aar
LOCAL_MODULE_SUFFIX := .aar
include $(BUILD_PREBUILT)
Run Code Online (Sandbox Code Playgroud)
然后,在您的应用程序中,Android.mk您必须添加:
LOCAL_STATIC_JAVA_LIBRARIES := constraint-layout
Run Code Online (Sandbox Code Playgroud)
或者,你可以添加ConstraintLayout的.aar到prebuilds/,因为它最终将在那里一天。
有一个关于的好话题Android.mk:https : //wladimir-tm4pda.github.io/porting/build_cookbook.html
| 归档时间: |
|
| 查看次数: |
2736 次 |
| 最近记录: |