gpt4 book ai didi

启动时的 Android C++ 服务

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:53 24 4
gpt4 key购买 nike

我需要在启动时在 android 中启动一个服务,我不使用广播接收器,我用 C++ 编写了一个服务,因为我需要访问驱动程序 libusb 层来与我的外部设备通信,如果我启动,该服务工作正常manualy,如果我想在启动时启动服务意味着我需要在 android 中编辑 inir.rc 文件,如果我这样做它也工作良好。但问题是我无法在所有设备中编辑 init.rc。我将我的服务放在 Sytem/bin 位置并按如下方式编辑 init.rc 文件

service sampleservice/system/bin/sampleservice
oneshot
disable

对于手动操作,我是这样从终端启动服务的

#./system/bin/sampleservice

但我无法在每次系统重新启动时都启动该服务确实有任何想法在启动时启动该服务而无需编辑 init.rc

最佳答案

据我所知(NDK 引用、google-ndkandroid-developers 等谷歌群组),没有可靠的方法启动原生二进制作为 init.rc 以外的服务。

对于您的特定用例,您可以提供此处描述的 USB SDK:http://developer.android.com/guide/topics/connectivity/usb/index.html一试。但是,如果这还不够,或者如果您想支持低于 10 的操作系统 API 级别,那么我相信没有简单的方法可以实现您想要的。

假设您的服务不是关键(即系统不依赖于它),我在这里和建议创建常规 Android 应用程序的组上看到了几个线程您将使用 ADT 创建。它将是最小的并且包含:

当需要在非根设备上安装服务时,也推荐使用此方法。但是,我从未尝试过。我知道这并不多,但我想分享我对这个主题的了解。

关于启动时的 Android C++ 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14830798/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com