## 广播
https://www.jianshu.com/p/0cca211df63c
## Messenger
http://blog.csdn.net/lmj623565791/article/details/47017485
此处延伸:简述Binder , http://blog.csdn.net/luoshengyang/article/details/6618363/
## AIDL(Android Interface Definition Language)
### 为什么要设计AIDL
Android为了实现进程间的通信,尤其是在涉及到多进程并发情况下的进程通信。
Android中每一个进程都对应一个Dalvik VM实例,都有一块自己独立的内存,都在自己的内存上存储数据,执行自己的操作, 各个进程之间就像海上的小岛,在同一个世界,但又有自己的独立的世界。AIDL就相当于两座岛之间的桥梁,通过AIDL制定一些规则, 规定他们能进行哪些交流。
最终达到一个进程访问另一个进程的数据。甚至调用它们一些特定的方法。
如果仅仅是为了跨进程通信我们也还有其他的选择,比如BroadcastReceiver,Message等都可以达到跨进程通信,但是BroadcastRecever占用系统的资源比较多,如果频繁的跨进程通信的话显然就不可取,;
Message进行跨进程通信时请求队列时同步进行的,无法并发执行,在有些要求多进程的情况下不实用,这个时候就需要使用AIDL。
### 它有哪些语法?
语法上基本和Java一致, 只是再一些细微处有些许的差别
#### 文件类型
用AIDL书写的文件后缀是.aidl, 而不是java
#### 数据类型
它只支持一些数据类型,这些数据类型不需要导包
#### 其他知识:
https://www.jianshu.com/p/54bc60246e67
- 空白目录
- 自我介绍
- Android面试题
- Handler
- 网络请求框架
- 图片处理框架Picasso,Glide
- Android最佳性能实践OOM
- 异步:RxJava,AsyncTask
- View,ViewGroup事件分发
- 消息传递:EventBus
- HTTPS和HTTP的区别
- 进程间通信的方式
- HttpClient与HttpUrlConnection的区别
- 性能优化
- Java多线程
- Fragment状态保持和恢复
- 讲解一下Context
- JNI
- java虚拟机和Dalvik虚拟机的区别
- 线程sleep和wait有什么区别
- 保存Activity状态
- WebView与js交互(调用哪些API)
- 内存泄露检测,内存性能优化
- 布局优化
- 自定义view和动画
- 设计模式(单例,工厂,观察者。作用,使用场景)
- String,Stringbuffer,Stringbuilder 区别
- 开源框架,为什么使用,与别的有什么区别
- Android大厂面试题
- 爱奇艺
- 小米
- 腾讯
- 阿里
- 今日头条
- 共同问到的
- 其他问题
- 框架MVC、MVP、MVVM
- sleep和wait有什么区别
- React Native原理
- React Native面试题
- 数据结构
- Android开发
- 基础知识
- Java基础
- 数据结构
- 面向对象思想
- 设计模式
- 开发环境
- Android SDK
- Activity
- Service
- Broadcastreceiver
- Contentprovider
- ActionBar
- Fragment
- UI
- 通信
- 数据持久化
- 性能
- 调试
- 适配
- 测试
- 安全
- NDK
- 手机功能
- 第三方扩展
- 其他
- 2018 Java面试题
- Android(2017-2018)BAT面试题整理
- 2017下半年,一二线互联网公司Android面试题汇总
- 2018阿里Android面试题
- 一面
- 二面
- 三面