一、Service简介
Service有local和remote两种类型。
local主要是用于本地的应用程序之间的调用,remote主要用于不同应用之间的重用,这里用到AIDL IPC机制。 关于AIDL IPC机制可以参阅SDK Dev Guide,很简单!当然,你要是想完全理解这种机制可能要花费点时间哟,不过还好,我只是用一下,呵呵!~ ~
二、Service与进程
android各个组件之间默认运行在同一个进程之中,它们有各自所在的进程来管理,它们是主线程的一部分而不是系统开启的线程。
这么说来, 要是 在这些组件中做耗时比较长的操作需要另起线程。
这里需要说明,你可以通过android:process=属性说明应用组建的所属进程。
三、远程Service
先看看文件目录结构吧
在对应的包下面新建一个AIDL文件,这里是IMusicService.aidl文件。那么ADT会自动的为你生成对应的java源文件。不要以为 IMusicService.aidl多难写,其实它就是你暴露给外界的接口,只不过我们把他的后缀写为.aidl而不是.java。
IMusicService.aidl文件:
这样,我们就可以在应用程序中使用它啦...
Activity中我是这样做的:
最后,别忘记在manifest.xm文件中声明:
cmd一下,在命令行中adb shell ps 查看 android 应用程序的 PID 以及进程 ID。