代码之家  ›  专栏  ›  技术社区  ›  Daniel

是否可以将预构建的APK作为用户应用程序添加到AOSP构建中?

  •  4
  • Daniel  · 技术社区  · 7 年前

    我希望将预构建的APK添加到我的AOSP构建中。我已经可以通过执行以下操作来实现这一点:

    1. 将APK添加到 文件夹
    2. 文件该文件包含以下内容:

      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)
      
    3. 添加:

      PRODUCT_PACKAGES += \ <name of APK>
      

    这会将APK添加到 /数据/应用程序 文件夹,以便用户可以实际更新预构建的APK。

    我试过这些建议 this 问题,他们没有工作。我试过这个建议 this 问题,并将APK输出到 文件夹,一旦我把图像闪到我的设备上,应用程序就不在了。该问题的第二个答案确实对此提供了可能的解释,但没有其他建议。

    最终,我需要在我的构建中预加载一个可以更新的APK,所以如果这不起作用或是一个糟糕的方法,我愿意接受建议。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Daniel    7 年前

    我发现PackageManager类的标准行为对于我的用例来说已经足够好了。这里有几个值得解释的花絮:

    • Lavakush的答案确实有效,并将APK输出到 文件夹,但APK不会显示在 /数据/应用程序 在系统图像中,一旦它闪现到设备上。根据 this /数据/
    • 在我的用例中,我需要将APK预加载到构建中,然后根据需要进行更新。由于 /系统/应用程序 /数据/应用程序 this 打包安装程序 类的标准行为是将更新的APK安装到 数据/应用程序 /系统/应用程序 APK。答案还说 设置->应用程序 系统/应用程序 APK。我确实观察到了这种行为,这对于我的用例来说很好。
        2
  •  2
  •   Lavakush    7 年前

    LOCAL_MODULE_PATH := $(TARGET_OUT_DATA)
    ------
    include $(BUILD_PREBUILT)