首页 > 解决方案 > 将系统服务从 AOSP 构建树移动到可安装的 APK?

问题描述

我对 Android 开发非常陌生。我的公司使用 AOSP 构建树为我们的设备支持我们自己的 Android 构建,其中一些我们需要的系统服务和 APK 在 AOSP 树中构建。

但是,我们计划迁移到供应商提供的 Android 构建,我们希望从 AOSP 树中删除系统服务并将其移动到单独构建和安装的 APK 中,但仍可作为系统服务访问其他已安装的应用程序。

作为 Android 开发的新手,我什至不知道从哪里开始。作为第一步,我在 AOSP 树中找到系统服务的 APK 的生成/输出位置。我将此 APK 安装到我们的设备上。安装似乎成功了。但是,当需要使用该系统服务的应用程序运行时,Android 会显示有关系统服务如何停止的消息。

1. 我需要采取哪些步骤才能完成这项工作?
2. 诊断问题还需要哪些其他信息?我对此很陌生,我不知道我应该提供什么信息。

标签: androidandroid-intentapkandroid-source

解决方案


但是,我们计划迁移到供应商提供的 Android 构建,我们希望从 AOSP 树中删除系统服务并将其移动到单独构建和安装的 APK 中,但仍可作为系统服务访问其他已安装的应用程序。

假设您在 ServiceManager 中进行了更改以在 AOSP 中添加您自己的系统服务。是的,可以将您的系统服务移动到单独的 apk。这将减少您的平台依赖性。但是,仍需要更改 sepolicy(以便在 ServiceManager 中动态添加您的服务)。以下是从 apk 添加系统服务的完整参考: https ://devarea.com/aosp-creating-a-system-service/#.XOOD9KRS9EY

安装似乎成功了。但是,当应用程序运行需要使用该系统服务时,Android 会显示有关系统服务如何停止的消息

请详细说明,您做了哪些更改,以及系统服务崩溃的根本原因。

  1. 我需要采取哪些步骤才能完成这项工作?

建议将您的系统服务移至单独的 apk。请参阅上面的链接,其中解释了创建系统服务(来自 apk)。


推荐阅读