今天主要学习了一下AIDL,
什么是AIDL呢? 实际上它实现了一种不同应用程序共享服务的方式,需要编写服务器端和客户端,服务器端需要编写AIDL文件和具体实现并发布到模拟器上,客户端绑定服务就可以调用了,网上有不少例子教如何调用的,例如:
http://android.tgbus.com/Android/tutorial/201105/353147.shtml
这里就不详述。
但是我在自己实现的时候遇到了一个问题:
bindService时找不到服务,网上的解决方法是:确保客户端调用的服务名和服务器端定义的服务名即<service>标签内的action android:name里写的名字一致。我首先排除了这种可能。
但是错误依旧,没办法我想到在程序里打印出所有可见的全局服务,在后台日志发现确实找不到那个服务,后来发现我的客户端和服务端的包名一样,而在android系统中,是不允许有两个包名完全相同的应用程序存在,所以当我启动客户端时会把服务器端冲掉。
修改包名解决。
分享到:
相关推荐
AIDL项目源码、Android跨进程通信、Binder Service
android aidl service
浅析aidl过程和绑定service的过程(不会使用的撤).zip
aidl双向通信,Service加回调刷新自身Activity
深入理解aidl和service机制。 aidl是android进行系统间通信的借口描述语言,仔细分析由aidl生成的java类,你会发现code是用的是proxy design pattern,能看到这层就会觉得google的设计其实真的是很巧妙。如果需要...
学习顺序 testService testBindService testIntenService testAidlClient+testAIDL
Android安卓AIDL进程间通信Service简单例子,分为客户端和服务端代码,一看就会,一看就懂,核心还是IBinder.
Android 调用AIDL服务的方法及例子源代码
Android中的Service:Binder,Messenger,AIDL 用AIDL文件来完成跨进程通信。
android aidl 之 system service 架构
Activity和Service生命周期及使用AIDL通信
AIDLService,远程调用例子。包括服务端与客户端两个工程文件.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
使用AIDL实现Service与Client绑定后的双向调用,Client在绑定Service时传入自己的Binder ,Service使用这个Binder实现调用Client的方法
AIDL方式实现Service更新UI的功能
Android Service讲解 和 aidl 实现
android学习之remote service 的aidl详解: http://blog.csdn.net/hfreeman2008/article/details/47431123#t0
Android 远程服务 RemoteService 通过AIDL方式实现跨应用接口访问
自己写的一个通过AIDL进行注册的小实例 ...register_service_aidl 外部API与service的AIDL接口 register_service_api 外部API(即暴露给UI的接口) register_ui 注册UI 调用关系为 ui->service_api---->service
两个工程导入一下,先运行service, 再运行client, 点击Button,就可以看到从Service中弹出的Toast, 内容是从Button那里发送过去的
AIDLService,远程调用例子。包括服务端与客户端两个工程文件源码,有兴趣的伙伴们抽时间可以看一下把。