如何在AOSP中添加应用程序?

时间:2018-01-07 13:43:34

标签: android-source

我们正在尝试使用AOSP的主分支开发自定义ROM。我们已经在AOSP提供的仿真器上成功构建并运行了编译图像。 现在我们尝试在AOSP中添加一个应用程序,以便AOSP分支编译并运行其中的应用程序,这意味着当我们运行android版本时,我们新添加的应用程序将充当默认/系统应用程序。

我们已尝试使用以下步骤执行此操作,但失败了:

  1. App_name文件夹放到/ packages / apps
  2. 将Android.mk添加到/ packages / apps / App_name /
  3. 将App_name条目添加到/build/target/product/core.mk PRODUCT_PACKAGES:= \     ......     一些应用     APP_NAME
  4. 注意App_name是使用android studio开发的应用程序文件夹,显示在Android-Studio Projects文件夹中。

    执行这些步骤后,我们编译整个源代码/ AOSP,最终编译失败。

    有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

要向AOSP添加默认应用程序,您应该在packages/apps中创建一个具有任意名称的目录(目录名称无关紧要),然后您应该在其中放入必要的代码和资源。注意AOSP构建系统不使用Gradle,因此您不需要复制gradle构建文件(如build.gradle和setting.gradle等)。

对于典型的应用程序,您应该创建这些目录:

  • src:将您的java代码放在这里。
  • res:将您的资源目录放置为可绘制的布局,...
  • assets:如果您的项目有任何assests文件,请将它们放在此文件夹中

您的AndroidManifest.xml文件应添加到目录的顶部。放置代码和资源后,创建一个Android.mk文件并在其中写下以下行:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_PACKAGE_NAME := <Name of your app>

LOCAL_SDK_VERSION := current

LOCAL_SRC_FILES := $(call all-java-files-under, src)

# Include libraries

LOCAL_JAVA_LIBRARIES := <Java lib dependencies>

LOCAL_STATIC_JAVA_LIBRARIES := android-common

LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4

LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-appcompat

LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res

LOCAL_ASSETS_DIR := $(LOCAL_PATH)/assets

LOCAL_AAPT_FLAGS := --auto-add-overlay

LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.appcompat

include $(BUILD_PACKAGE)
  • LOCAL_PACKAGE_NAME是您的应用的名称(对于考试相机,app1,...),您应该将此名称添加到/build/target/product/core.mk(没有文件夹名称,文件夹名称并不重要)。

  • LOCAL_SRC_FILES是指向Java代码的指针。

  • LOCAL_JAVA_LIBRARIES:如果您的项目具有java lib依赖项,请在此处引用它。

  • LOCAL_RESOURCE_DIR是res目录的地址

  • LOCAL_ASSETS_DIR是资产目录的地址

最后构建您的应用并将其添加到系统映像。使用这些命令

make <name of your app>
make snod

<name of your app>LOCAL_PACKAGE_NAME文件中Android.mk的值。您不需要使用make -j8之类的东西构建整个AOSP构建树。只需构建您的应用程序并将其添加到系统映像。默认应用程序放在只读系统分区中。