android - 将系统服务从 AOSP 构建树移动到可安装的 APK?
问题描述
我对 Android 开发非常陌生。我的公司使用 AOSP 构建树为我们的设备支持我们自己的 Android 构建,其中一些我们需要的系统服务和 APK 在 AOSP 树中构建。
但是,我们计划迁移到供应商提供的 Android 构建,我们希望从 AOSP 树中删除系统服务并将其移动到单独构建和安装的 APK 中,但仍可作为系统服务访问其他已安装的应用程序。
作为 Android 开发的新手,我什至不知道从哪里开始。作为第一步,我在 AOSP 树中找到系统服务的 APK 的生成/输出位置。我将此 APK 安装到我们的设备上。安装似乎成功了。但是,当需要使用该系统服务的应用程序运行时,Android 会显示有关系统服务如何停止的消息。
1. 我需要采取哪些步骤才能完成这项工作?
2. 诊断问题还需要哪些其他信息?我对此很陌生,我不知道我应该提供什么信息。
解决方案
但是,我们计划迁移到供应商提供的 Android 构建,我们希望从 AOSP 树中删除系统服务并将其移动到单独构建和安装的 APK 中,但仍可作为系统服务访问其他已安装的应用程序。
假设您在 ServiceManager 中进行了更改以在 AOSP 中添加您自己的系统服务。是的,可以将您的系统服务移动到单独的 apk。这将减少您的平台依赖性。但是,仍需要更改 sepolicy(以便在 ServiceManager 中动态添加您的服务)。以下是从 apk 添加系统服务的完整参考: https ://devarea.com/aosp-creating-a-system-service/#.XOOD9KRS9EY
安装似乎成功了。但是,当应用程序运行需要使用该系统服务时,Android 会显示有关系统服务如何停止的消息
请详细说明,您做了哪些更改,以及系统服务崩溃的根本原因。
- 我需要采取哪些步骤才能完成这项工作?
建议将您的系统服务移至单独的 apk。请参阅上面的链接,其中解释了创建系统服务(来自 apk)。
推荐阅读
- python - 如何在 Flask(wtforms)中验证最小大小的浮点数组?
- javascript - 为什么我的两个单独的 Vue 组件会覆盖彼此的数据?
- node.js - 如何将从 reactjs 中的 nodejs 后端接收到的 Blob 下载到 ReactJS 中的任何操作系统?
- python - 计算组内的唯一值,然后将两个转换为类别
- java - 在 JUnit 中模拟方法时传递对象
- javascript - 使用数组元素和数组字符串查找重复元素计数
- android - 已添加 IllegalStateException 片段
- python - Matplotlib:如何为每个散点添加图例?
- reactjs - 反应useState不更新状态
- css - 将 pug 用于独立(微型)小部件