位置: 编程技术 - 正文

Android进程间通信--AIDL(android进程间通信机制有哪些)

编辑:rootadmin
本文讲解AIDL的基本使用,通过本文的学习你应该掌握如下内容: 1.了解Android进程间通信IPC(interprocess Communication); 2.学会AIDL的基本使用方法,实现在进程间通信。 我们先看下Android对AIDL的描述:在这段描述中我们可以看到,AIDL实际上是接口定义语言(IDL)的一种而这种就是由Android定义的。在第二段我们可以看到,在Android中通常不允许一个进程访问另外一个进程的数据,所以这个时候我们就许需要使用AIDL来帮助我们完成这项工作。当然有人会说,我们可以在一个进程把数据写入文件或数据库,而另外一个进程去文件或数据库中读取。实际上这种理解是错误的,这种只适合进程在同一个应用中的情况,如果两个进程不在同一个应用中就不行了,因为Android不允许直接跨应用访问。 下面我们看下AIDL的使用,首先我们用server和client代表两个不同的进程并且两个进程在两个应用中。AIDL的使用server端有三步,client端也有三步,总共六步,我们先讲server的三步: 1.创建.aidl文件:AIDL支持Java语言的基本类型(int, boolean, String, long, List等),但如果像这样的List<Student>或只单独传递一个Student就需要加入Student的import语句。(Student为自定义的对象)如上图所示,在这个aidl文件中我既使用了基本的数据类型(String)又使用了自定义的数据类型(Student),可以看到在使用了自定义的数据类型后要把这个数据类型import到这个文件中,不然aidl无法找到这个数据类型。同时由于使用了自定义的数据类型我们还需要专门为这个数据类型写一个aidl文件并且文件名和自定义数据类型的类名保持一致,内容如下:上图你看到我们自定义的数据类型Student,为了能在aidl使用自定义的数据类型我们还需要对Student改造下:其中: Parcelable.Creator<Student>:具体干什么我还没有完全看懂,怀疑是从序列化中创建Student对象,因为它的方法createFromParcel明显就是从Parcel中重组Student。 writeToParcel():将Student对象序列化。到这里AIDL的基础工作就做好了,其完整目录结构如下: 2.实现aidl接口:这里我们需要创建一个类来实现我们定义aidl接口,也就是实现我们在上图IStudentService.aidl文件中定义的接口,以便在client连接server时把aidl接口的具体实现传递给client,代码如下:在这里可以看到,我具体实现了在IStudentService.aidl中定义的接口,将client传入的参数都打印出来。 3.创建一个Service:这个Service让client来启动,这样就能实现client与server进行交互了。代码如下:在这里,当其他进程通过bindService来启动这个Service时我就第二步aidl接口的具体类的实例返回给其他进程,这样其他进程拿到这个实例就能与Server交互了。另外,创建了Service记得要在manifest中配置下: client端的三步为: 1.复制server端创建的.aidl文件:相当于server与client共同遵守一份协议,具体就是如下目录结构的文件: 2.创建一个ServiceConnection类:这个类实现ServiceConnection接口,而这个接口会在bindService时带上这样当Service连接成功后会回调这个接口的onServiceConnected方法,这样我们就知道service连接成功了从而就可以获取server端我们aidl接口的具体实现类了,代码如下:这里的mService就是我们获取的server端的aidl接口的具体实现。 3.传输数据:用我们获取server端的aidl接口的具体实现传输数据,这里就是mService。大家可以看到在上一张图中有个方法叫tanslateStudents()方法,里面实际就是调用aidl接口的方法传输数据并返回结果。其具体调用就是我写了几个按钮来触发而已,代码如下:这里mConnection就是上面ServiceConnection类的一个实例:而我在按钮中造了3个Student和一句”hello franken!"的语句。 到此AIDL的基本使用方法就介绍完了,相对于线程间通信进程间通信就要稍微复杂些,希望这篇文章对你理解AIDL有所帮助。另外,由于不知道怎么在文章中加入完整工程代码,需要完整代码的同学请到

推荐整理分享Android进程间通信--AIDL(android进程间通信机制有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

Android进程间通信--AIDL(android进程间通信机制有哪些)

文章相关热门搜索词:Android进程间通信,android进程间通讯可以传输多大数据,android进程间通信有哪几种,android进程间通信有哪几种,android进程间通信机制,android进程间通信机制,android进程间通信可以通过什么技术,Android进程间通信,内容如对您有帮助,希望把文章链接给更多的朋友!

JSON学习 JSON的定义:一种轻量级的数据交换式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类于正则表达式,获得

Android Http访问网络 学习(慕课网学习) 一:通过Http下载百度源码加载到WebView显示1:需要访问网络必须先要获取网络权限:spanstyle=font-family:Arial,Helvetica,sans-serif;uses-permissionandroid:name=android.perm

ListView布局多个样式

标签: android进程间通信机制有哪些

本文链接地址:https://www.jiuchutong.com/biancheng/381055.html 转载请保留说明!

上一篇:View分析总结(interview分析方法)

下一篇:JSON学习(json初学)

  • 总公司是小规模分公司是一般纳税人
  • 增值税留抵税额账务处理
  • 公对公转账在手机上怎么操作
  • 税额四舍五入的计算公式
  • 购买方怎么写分录
  • 一般纳税人可以开1%的发票吗
  • 简易计税项目税金要计入成本吗
  • 中小企业怎么避税
  • 融资租赁开具的发票是货物还是租金
  • 渔业专业合作社简介
  • 印花税到底什么通俗一点
  • 增值税发票委托公司开具
  • 油品沥青消费税征收范围
  • 不计入工资薪金所得的有哪些补贴
  • 收入冲正
  • 股票交易的印花税和手续费是多少
  • 商业企业成本核算内容包括
  • 一般纳税人企业所得税如何计算
  • 不征税的通行费怎么分录
  • 利息赔款是否缴纳企业所得税?
  • 筹建期发生的费用是放在那个科目
  • 付临时工工资计入什么科目
  • 生产型企业公司有哪些
  • 汇算清缴工资薪金支出包含社保费吗
  • 资产负债表结构是什么
  • 苹果系统最新版本
  • 债券利息收入征税吗
  • 清理c盘清理
  • win10excel闪退是什么原因
  • PHP:mb_convert_case()的用法_mbstring函数
  • 收到退款的会计分录
  • mce文件是什么软件
  • Mother cheetah and her cub in the Maasai Mara nature reserve, Kenya (© gudkovandrey/Adobe Stock)
  • HuggingFace简明教程
  • PHP:imagecolorset()的用法_GD库图像处理函数
  • echarts饼图颜色设置
  • 滴滴打车电子普票可以抵扣进项税额吗
  • 新成立公司实收资本没到位该怎么做账
  • 小规模纳税人和一般纳税人的区别
  • php安装swoole扩展
  • 涌泉的准确位置图 图解
  • 三维重建是啥意思
  • 营业外支出是什么会计要素
  • 进口设备退税如何计算
  • 银行账户收费开什么发票
  • 人力资源公司开票税目
  • 对c++的认识与体会
  • 财务负责人和法人可以一个人吗
  • sql server2005使用方法
  • sql去除重复项
  • 未分配利润分配后在报表如何体现
  • 公司为职工承担社保费用
  • 企业应纳税额计算直接利息的应纳税额
  • 公司名下的车怎样领免检标志
  • 以个人名义汇货要交税吗
  • 企业现金购货限额
  • 建筑业收入叫什么
  • 包装物是指什么
  • 其他综合收益要转入投资收益吗
  • 技术开发技术服务属于什么行业
  • 平均增长率计算公式怎么算
  • 会计的凭证怎么做账
  • sql语句汇总数据
  • 案例如何分析
  • windows server2008系统弹出今天必须修改密码该怎么处理?
  • linux安装gdb命令
  • xp如何更新
  • xp系统没无线网络连接怎么办
  • win7的命令对话框在哪里
  • [Unity3D]Stencil buffer失效了怎么办
  • 飞行歌曲
  • 模拟监控app
  • android adbd
  • 如何判断python列表长度
  • 政务服务网怎么打印电子资格证书
  • 建筑垃圾清运属于什么应税服务
  • 房屋维修是什么职业
  • 开企业资信证明怎么办?需要哪些材料?
  • 成本费用总额在报表哪里看
  • 深圳国税总局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设