亲爱的, 我是Android的新手。我已经阅读了很多关于Android服务的文章,但我并不清楚地了解本地服务和远程服务之间的差异(“本地服务在与午餐活动相同的过程中运行;远程服务在他们自己的过程中运行”除外)繁忙的编码器Android开发指南 - Mark L. Murphy)。
谢谢&最好的祝福 戴颂
答案 0 :(得分:10)
您的描述正是本地和远程服务之间的区别。没有什么可说的了。您几乎不会想要使用远程服务。
答案 1 :(得分:2)
远程服务和本地服务之间的区别在于:本地服务在同一进程中运行,远程服务在不同的进程中运行,可能在不同的应用程序中。
您可以访问在不同应用程序中运行的远程服务,但无法访问在其他应用程序中运行的本地服务。
答案 2 :(得分:0)
本地服务意味着它可能在同一个应用程序中以相同的进程运行。您可以使用方法startService()
启动服务,并可以使用方法stopService()
停止服务。这两种生命周期方法或服务和远程服务通常在不同的应用程序中运行。您可以通过编写AIDL接口来访问它们,并且可以使用活页夹附加到远程服务。
答案 3 :(得分:0)
我希望我可以根据自己的经验来澄清问题:
LocalService:
通过提供后台执行或执行某些特定的软件功能而创建,以服务于本地应用程序(活动)。除非通过意图,否则不在同一软件包中的其他应用程序无法访问。本地服务通常与伴随活动处于相同的过程中。但是如果需要,它可能具有自己的流程。
远程服务
这种类型的服务通常设计和实现供其他应用程序使用的软件功能。 Android系统服务(wifi / gps / usb / etc。)是此类中的主要示例。如果需要提供供其他应用程序使用的功能,则需要开发一个远程服务,该服务实现远程绑定,意图(通过startCommand)或其他IPC机制。
远程还是本地都取决于您的需求和应用。
更多读物:
Android Official Document on service binding。
干杯,
大卫。
答案 4 :(得分:-1)
我认为你真的是新人,我也是^^。但我和我所知道的一样解释。
本地服务通过进程内存与您的活动进行通信。这很快捷。但是你无法使用本地服务实现插件等多进程程序。
但远程服务可以与其他进程通信。所以你可以制作插件等程序。但它不是那么快(但也许不够)。因为你问操作系统“我想与......沟通”。这通过文件系统(管道)或内核内存(Binder)......可变路由,
发生所以这并不快,因为读取文件或与其他进程进行交换的流量。