## 廣播
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面試題
- 一面
- 二面
- 三面