将 Android 源代码中的应用程序编译为 system/app
Make app in Android source compile to system/app
我正在尝试学习如何在 android 源代码中编译应用程序。该应用程序只是一个简单的 hello world 应用程序。我遵循了 Making an app in the Android Source compile into system/app instead of data/app? 和其他几个来源的说明。但是当我制作应用程序时,apk 文件被写入 obj/APPS 后缀中间而不是 system/app 并且在我启动时无法显示在模拟器中。请在下面找到 Android.mk 文件。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests
LOCAL_MODULE_PATH := system/app
LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_SDK_VERSION := current
LOCAL_PACKAGE_NAME := MyApplication
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-appcompat
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-gridlayout
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v13
LOCAL_STATIC_JAVA_LIBRARIES += android-support-design
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/v7/appcompat/res
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/v7/gridlayout/res
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/design/res
LOCAL_CERTIFICATE := platform
LOCAL_AAPT_FLAGS := --auto-add-overlay
LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.appcompat:android.support.v7.gridlayout
include $(BUILD_PACKAGE)
##################################################
include $(CLEAR_VARS)
include $(BUILD_MULTI_PREBUILT)
# Use the following include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))
我通过转到 packages/apps 中的应用程序目录并执行 'mm' 来创建应用程序。我在这里遗漏了什么吗?
找出 BoardConfig.mk 并添加:
PRODUCT_PACKAGES += MyApplication
AOSP 构建系统将每隔 Android.mk 构建一次,但只有在 BoardConfig 中定义的包才会放入最终产品路径。
您必须从设备/"your preferred vendor"/"device_name"/aosp_"device Name".mk 文件
将应用程序模块添加到 PRODUCT_PACKAGE
它应该看起来像下面这样
$(call inherit-product, device/lge/hammerhead/full_hammerhead.mk)
PRODUCT_NAME := aosp_hammerhead
PRODUCT_PACKAGES += \
Launcher3 \
MyApplication \
变化不大。 Aosp 检查 /device/"vendor"/"your_device"/"your_platform"/base.mk 文件进行编译和 /device/"vendor"/"your_device"[=18= .mk 用于将 apk 安装到 /out/target/product/"your_device/system/app/"
您应该将您的应用程序名称添加到这两个文件中。
就我而言; aosp/device/qcom/qssi/base.mk 编译,
aosp/device/qcom/common/base.mk 安装输出(apk)到/out/target/product/msm8953/system/app/
我正在尝试学习如何在 android 源代码中编译应用程序。该应用程序只是一个简单的 hello world 应用程序。我遵循了 Making an app in the Android Source compile into system/app instead of data/app? 和其他几个来源的说明。但是当我制作应用程序时,apk 文件被写入 obj/APPS 后缀中间而不是 system/app 并且在我启动时无法显示在模拟器中。请在下面找到 Android.mk 文件。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests
LOCAL_MODULE_PATH := system/app
LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_SDK_VERSION := current
LOCAL_PACKAGE_NAME := MyApplication
LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-appcompat
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v7-gridlayout
LOCAL_STATIC_JAVA_LIBRARIES += android-support-v13
LOCAL_STATIC_JAVA_LIBRARIES += android-support-design
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/v7/appcompat/res
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/v7/gridlayout/res
LOCAL_RESOURCE_DIR += prebuilts/sdk/current/support/design/res
LOCAL_CERTIFICATE := platform
LOCAL_AAPT_FLAGS := --auto-add-overlay
LOCAL_AAPT_FLAGS += --extra-packages android.support.v7.appcompat:android.support.v7.gridlayout
include $(BUILD_PACKAGE)
##################################################
include $(CLEAR_VARS)
include $(BUILD_MULTI_PREBUILT)
# Use the following include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))
我通过转到 packages/apps 中的应用程序目录并执行 'mm' 来创建应用程序。我在这里遗漏了什么吗?
找出 BoardConfig.mk 并添加:
PRODUCT_PACKAGES += MyApplication
AOSP 构建系统将每隔 Android.mk 构建一次,但只有在 BoardConfig 中定义的包才会放入最终产品路径。
您必须从设备/"your preferred vendor"/"device_name"/aosp_"device Name".mk 文件
将应用程序模块添加到 PRODUCT_PACKAGE它应该看起来像下面这样
$(call inherit-product, device/lge/hammerhead/full_hammerhead.mk)
PRODUCT_NAME := aosp_hammerhead
PRODUCT_PACKAGES += \
Launcher3 \
MyApplication \
变化不大。 Aosp 检查 /device/"vendor"/"your_device"/"your_platform"/base.mk 文件进行编译和 /device/"vendor"/"your_device"[=18= .mk 用于将 apk 安装到 /out/target/product/"your_device/system/app/" 您应该将您的应用程序名称添加到这两个文件中。 就我而言; aosp/device/qcom/qssi/base.mk 编译, aosp/device/qcom/common/base.mk 安装输出(apk)到/out/target/product/msm8953/system/app/