service 是在当前进程中新开线程,aidl 是系统新开进程,属于另一个进程。
aidl 就是处理客户端和服务端的 ipc 通信实现的方式,通过 aidl 机制,客户端通过调用服务端提供的接口。
便于跨进程调用其他应用程序。如果你的应用程序不涉及其他应用时,没有必要使用 aidl 机制。
service 是 android 中的服务组件, 经常用来执行一些运行在后台的耗时操作. 使用一个 Service 需要继承Service类, 并根据需要重写生命周期方法。
简单来说,进程内通信可以用考虑使用 service,跨进程通信可以使用 aidl。
启动服务的方式有 startService 和 bindService,前一个与调用者生命周期无关。后一个与调用者生命周期有关,调用者context死掉,service也自动立刻停止。