【发布时间】:2018-04-09 21:02:52
【问题描述】:
我希望将预构建的 APK 添加到我的 AOSP 构建中。我已经可以通过执行以下操作来做到这一点:
- 将 APK 添加到 $root_of_my_source_tree/packages/apps 文件夹。
-
创建一个 Android.mk 文件。该文件有以下内容:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_MODULE := <name of APK> LOCAL_SRC_FILES := <Name of APK>.apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_CERTIFICATE := platform include $(BUILD_PREBUILT) -
添加:
PRODUCT_PACKAGES += \ <name of APK>到由 AOSP 构建系统获取的 make 文件。
这会将 APK 添加到 /system/app 文件夹,该文件夹是只读的,因此用户将无法更新 APK。我希望将 APK 放置在 /data/app 文件夹中,以便用户实际更新预构建的 APK。
我尝试了this 问题中的建议,但没有奏效。我尝试了this 问题中的建议,虽然它确实将 APK 输出到了完成构建的 /data/app 文件夹,但一旦我将图像刷到我的设备上,应用程序就不存在了。该问题的第二个答案确实为此提供了可能的解释,但没有其他建议。
最终,我需要在我的构建中预加载一个可以更新的 APK,所以如果这不起作用或者是一个不好的方法,我愿意接受建议。
【问题讨论】:
-
“一旦我将图像刷到我的设备上,应用程序就不存在了”——这是什么意思?您的意思是
/data/app中缺少该文件吗?您的意思是该应用位于/data/app但未显示在“设置”中?您的意思是该应用位于/data/app,出现在“设置”中,但没有出现在主屏幕启动器中?你还有别的意思吗? -
1.当我为我的 AOSP 映像运行构建脚本时,我得到两种类型的输出:一个 system.img 文件和 out/target/product/
/ 中的一堆文件 文件夹。文件夹中的文件通常代表系统映像完成闪烁后将加载到设备的内容。例如,如果我的应用位于 out/target/product//system/app 文件夹中,我有 99.99% 的把握一旦系统映像被加载到设备上闪烁,它将位于 /system/app 文件夹下。 -
2.我的问题是我需要在 /data/app 下加载我的应用程序,以便可以根据需要删除或更新它。下面的答案确实在 out/target/product/
/data/app/ 而不是 out/target/product//system/app/ 中生成应用程序i> 但是一旦我完成了系统映像的闪烁,应用程序就不存在了。 -
“但是一旦我完成了系统映像的闪烁,应用程序就不存在了”——没有冒犯,但最后你的两个 cmets 重复我在原始评论中询问的相同段落.请用精确的技术术语解释“应用不存在”是什么意思。
-
data/app 中缺少 APK。该应用程序不在设置下,也不在启动器中。话虽如此,我已经找到了足够的信息来回答我自己的问题。我在下面发布一个答案。
标签: android makefile apk android-source