1.要解决什么问题
它可以让后续的开发者无需了解内部,只根据接口实现相关的操作用,常用于在不同的Activity中对Service进行控制。

2.什么是AIDL
AIDL (Android Interface Definition Language):Android接口描述语言,编译器可以通过aidl文件生成一段代码,通过预先定义的接口达到两个进程内部通信进程的目的. 如果需要在一个Activity中, 访问另一个Service中的某个对象, 需要先将对象转化成AIDL可识别的参数(可能是多个参数), 然后使用AIDL来传递这些参数, 在消息的接收端, 使用这些参数组装成自己需要的对象。

3.如何对aidl进行操作
启动service有两种方式,一种通过bindService来启动,调用退出时,服务也将停止,或者用unbind来停止;另一种通过startService来启动,调用退出时,服务还在运行,只能通过stop来停止。
使用aidl时,先引入aidl的相关类,然后使用bind <-> unbind,start <-> stop,或者start&bind <-> unbind&stop,不同调用方式的生命周期不同,详见参考网页。

4.参数规则
必须导入(import)所有非内置类型,哪怕是这些类型是在与接口相同的包中。AIDL能支持的数据类型有:Java编程语言的主要类型 (int, boolean等) —不需要 import 语句;
类String, List,Map, CharSequence不需要import 语句,但需要Parcelable封装,否则会报错。

5.参考
http://blog.csdn.net/lganggang131/article/details/6553468
http://www.oschina.net/question/195301_32171

更多相关文章

  1. java解析json字符串的两种方法详解(Android通用)
  2. OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接
  3. Android客户端与服务器用Socket进行通信
  4. 关于Android使用新浪API的一些说明
  5. flutter state
  6. Android消息处理机制笔记
  7. Android平台调用WebService详解
  8. Android常用类库包介绍
  9. Android(安卓)Context 是什么?

随机推荐

  1. 【开源项目3】Android快速开源框架--afin
  2. Android官方技术文档翻译——开发工具的
  3. 二阶段之八
  4. Android之Handler
  5. Android(安卓)ApiDemos示例解析(34):App->
  6. android内存管理
  7. 创建ListView的基本步骤
  8. Android百度地图(五):百度地图鹰眼sdk监
  9. 用angularjs写android应用连手机调试的步
  10. 【Android手机游戏】贪吃蛇(1)