-
android aidl跨进程调用 完整源码下载(含客户端和服务端源码)
这两天在学习aidl跨进程调用,研究了一天终于写出了个helloword。。做下记录吧。根据官方提供的指南,开发aidl跨进程调用,主要分以下步骤:1. 创建.aidl文件-该文件(YourInterface.aidl)定义了客户端可用的方法和数据的接口。2. 在makefile文件中加入.aidl文件-(Eclipse中的ADT插件提供管理功能)Android包括名为AIDL的编译器,位于tools/文件夹。3. 实现接口-AIDL编译器从AIDL接口文件中利用Java语言创建接口,该接口有一个继承的命名为Stub的内部抽象类(并且实现了一些IPC调用的附加方法),要做的就是创建一个继承YourInterface.Stub的类并且实现在.aidl文件中声明的方法。4. 向客户端公开接口-如果是编写服务,应该继承Service并且重载Service.onBind(Intent) 以返回实现了接口的对象实例上面的东西真的很官方。。下面结合我的例子做一下学习总结:先开发服务器端1.创建一个aidl文件,可以看提供的源码。创建完成后,eclipse插件自动在gen目录下生成同名字的java文件。里面包含一个Stub抽象类,这个类继承自android.os.Binder,这个类是实现整个远程调用的核心。2.然后创建一个类来继承上面说到的那个Stub抽象类,实现里面的抽象方法。(这些抽象方法是根据aidl文件自动生成的)。3.创建一个自定义Service继承自Service,实现其onBind方法,注意此onBind方法必须返回第二步创建的那个Stub类的子类。然后在xml中声明此service,注意此service的声明必须包含一个action,此action也用于客户端的调用使用。(在下面的客户端开发中会有介绍)。4.创建一个activity,此activity只要实现把service启动了即可。这样服务器端就开发完毕,运行后启动了一个可供远程调用的service。关键还是通过onBind暴露一个Binder给客户端。Binder哪来呢?就是通过aidl文件adt会自动生成一个抽象类Stub继承自Binder,只需要创建一个类实现这个Stub的抽象方法即可。然后开发客户端:1.客户端也需要一个aidl文件,注意客户端的aidl文件的包名必须和服务器端的aidl包名一致,名字也相同。创建完后同样会在gen下生成一个接口。2.创建一个Activity,包含变量ServiceConnection con,实现其onServiceConnected和onServiceDisconnected方法,onServiceConnected方法生成第一步那个接口的实现类的对象。con对象用于在onCreate中绑定service,这个service的action必须为服务器端声明的那个service的配置action。绑定中用到con会执行onServiceConnected方法生成aidl对象iPerson。然后就可以通过iPerson来调用aidl里的任意方法返回服务器的东西。客户端开发完毕。关键点是创建aidl文件自动生成了一个接口,在activity中必须绑定服务程序开启的service,在绑定过程中初始化aidl对象。然后就可用aidl对象调用任意方法了。OK,可以运行看效果了。过程真的很繁琐。。但是好像也只能这样了。最主要的还是服务端onBind暴露,然后客户端bindService得到aidl对象。
- 2020-12-01 17:29:26下载
- 积分:1
-
航空订票系统
方法对用户友好的机票与航空公司的预订系统。该系统具有灵活性,因为它使用先进的功能和安全功能的 java。在这方面,用户可以通过输入的源和目标搜索航班和他们的空运公司,他们想要去旅行。用户也可以与他们的所有详细信息和付款进行订票。用户可以取消这张票,如果他/她想要的钱将退还。那里是管理员被称为该系统的控制器。管理员可以添加、 删除、 更新飞行和他们的信息。方法对用户友好的机票与航空公司的预订系统。该系统具有灵活性,因为它使用先进的功能和安全功能的 java。在这方面,用户可以通过输入的源和目标搜索航班和他们的空运公司,他们想要去旅行。用户也可以与他们的所有详细信息和付款进行订票。用户可以取消这张票,如果他/她想要的钱将退还。那里是管理员被称为该系统的控制器。管理员可以添加、 删除、 更新飞行和他们的信息。
- 2022-03-04 19:28:41下载
- 积分:1
-
danpianji
单片机C语言程序设计实训100例——基于8051+Proteus仿真(Microcontroller C Programming Language Training 100 cases- based on 8051+ Proteus simulation)
- 2013-08-17 15:55:53下载
- 积分:1
-
jquerypichight
jQuery实现平滑的图片亮度渐变,鼠标移到图片上,可看到渐变效果,很平滑流畅的jQuery特效,代码也是超简洁的,可把此特效应用于图片展示、导航菜单中,制作一个鼠标高亮的菜单也是很不错的效果。(jQuery smooth picture brightness gradient, the mouse over the picture, you can see the gradient effect, very smooth smooth jQuery effects, the code is super simple, this effect can be applied to the picture display, navigation menu, make a mouse high highlighted menu is also very good results.)
- 2014-10-16 18:34:33下载
- 积分:1
-
JSP+Serlvet+JavaBean+Maven+MySql 学生学籍信息管理系统实战 Idea版本(源码+数据库脚本)
为新学习 JSP 的开发爱好者小白写下这篇文章,教你若何创建一个自己的学生信息管理系统,可能有很多小白也在迷茫中,建议你不要灰心啊,在下面我讲给你叙述如何进行完成一套自己的系统,并且提供两套版本,一套为 IntelliJ IDEA 进行开发的版本,一套为 eclipse 开发的系统版本,接下来我以 Idea 开发为基础,整套开发方式完全基于 MVC 架构思想为新入门的小白们进行一步一步的讲解这一块的知识。以下所有信息都是个人完成,若有转载或者借鉴请注明出处。大家可以参考我的博客进行参考部署开发。
- 2019-07-28下载
- 积分:1
-
支持向量机应用示例
支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类(binary classification)的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane),属于机器学习方法比较高级的一种,被应用于风电、水电的模拟,黑箱模型,模拟效果较好
- 2019-03-20下载
- 积分:1
-
Android获取手机短信验证码
实现发送短信到指定的手机
- 2017-03-16下载
- 积分:1
-
WebService
android webservice 获取天气预报情况android webservice 获取天气预报情况(android webserviceandroid webserviceandroid webserviceandroid webserviceandroid webservice)
- 2013-09-16 19:24:18下载
- 积分:1
-
DetectiveFace
基于百度媒体云人脸识别安卓版啊啊啊啊啊啊啊啊啊啊啊啊啊(Based on baidu media cloud face recognition android version)
- 2019-01-14 16:06:19下载
- 积分:1
-
程序员老黄历
应用背景android开发的一个小程序。模仿网页版程序员日历。代码简单。一看就会。
android开发的一个小程序。模仿网页版程序员日历。代码简单。一看就会。
android开发的一个小程序。模仿网页版程序员日历。代码简单。一看就会。关键技术java android 移动端 伪随机 java android 移动端 伪随机 java android 移动端 伪随机 java android 移动端 伪随机
- 2023-05-08 03:40:03下载
- 积分:1