又学会了一个新名词aidl(Android Interface Definition Language),也搜集了很多这方面的资料,大概了解了下,本地调用远程执行。
但它是同步的,意思就是如果你远程调用的方法需要大量处理的话,那么它有可能阻塞你的调用线程。。。
这种机制的好处,在我的理解就是它可以方便你做一些组件,为你的程序更好的模块化,降低耦合性。在android framework层,可以看到很多这种aidl写的接口,很多实现不同于应用层,还没好好看,这种机制实现了远程调用肯定是牺牲某些性能或者资源消耗为代价的,但是还是在framework中还是存在了大量应用。下面的例子就是用aidl这种机制写的一个下载的后台服务,分为两个apk,downloadService.apk,另外一个则是简单的测试界面用的apk。
首先是定义aidl文件,