線程間通信
-
主線程和工作線程
主線程和工作線程 -
工作線程與工作線程
工作線程與工作線程 - 為什么主線程Looper.loop()一直死循環(huán),為什么沒有卡死?
主要死循環(huán)中Looper.loop()中
Message msg = queue.next(); // might block
一直在等待,不占用CPU。

image.png
具體看nativePollOnce函數(shù)分析
自定義View
onMeasure()--->onLayout()--->onDraw()
注:除了自繪控件需要搞清楚三個方法(onMeasure, onLayout, onDraw)外其他兩個自定義相對比較簡單。
- invalidate()與postInvalidate(),requestLayout()三者區(qū)別?
| | invalidate() | postInvalidate() | requestLayout() |
| ----- | ----- | ----- | ----- |
| | 在ui線程執(zhí)行 | 在工作線程執(zhí)行 | |
| | onDraw() | onDraw() | onMeause(),onLayout(),onDraw()| - onMeasure()有幾種Mode?
有三種模式:
UNSPECIFIED
這說明parent沒有對child強加任何限制,child可以是它想要的任何尺寸。
EXACTLY
Parent為child決定了一個絕對尺寸,child將會被賦予這些邊界限制,不管child自己想要多大。
AT_MOST
Child可以是自己任意的大小,但是有個絕對尺寸的上限。
事件分發(fā)機制
- Android事件分發(fā)機制完全解析,帶你從源碼的角度徹底理解(上)
- Android事件分發(fā)機制完全解析,帶你從源碼的角度徹底理解(下)
-
圖解 Android 事件分發(fā)機制
注:三個重要方法:- dispatchTouchEvent事件分發(fā)
- onInterceptTouchEvent 事件攔截
- onTouchEvent() 事件處理
跨進程通信IPC
RPC指的是跨進程遠程調用,強調了調用的功能,即一個進程之間調用另外一個進程的方法。
IPC指的是進程間通信,android使用Binder機制來進行進程間的通信,沒有調用的功能。
通信方式:
- Binder機制
- socket
- 管道
- 消息隊列
- 共享內存
- 信號量
傳遞數(shù)據(jù)類型:
- intent
- 基本類型
- 文件共享
- Content Provider

image.png
Android適配
- Android開發(fā):最全面、最易懂的Android屏幕適配解決方案
-
Android切圖
- 1套標注dp圖
- 三套切圖(hdpi,xhpi,xxhdpi)
Android動畫
- Frame Animation(幀動畫):按順序播放事先做好的圖像
- Tween Animation(補間動畫):只能對View進行平移,縮放,漸變,旋轉
- Property Animation(屬性動畫):API11開始引入,基于Object進行屬性改變而
達到動畫效果 - 使用動畫場景
- 轉場動畫
- 加載動畫
- 其他動畫
Bitmap四種屬性
ALPHA_8:每個像素占用1byte內存
ARGB_4444:每個像素占用2byte內存
ARGB_8888:每個像素占用4byte內存 (默認)
RGB_565:每個像素占用2byte內存(沒有alpha屬性)
Android繪制圓形圖片的方法總結
- 使用Xfermode 相交模式:一般選擇這種方式
- 通過裁剪畫布區(qū)域實現(xiàn):邊角有鋸齒
- 使用BitmapShader:不適合畫太復雜圓,比較耗內存
定義Java注解處理器
Android ListView 與 RecyclerView 對比淺析
- 使用:ListView默認只支持垂直滾動,定義了比較多通用方法。RecyclerView支持水平和垂直滾動,定義比較多抽象接口具體實現(xiàn)由自己實現(xiàn),擴展性強。
- 緩存:ListView二級緩存,一是離開屏幕View加入緩沖池,進入屏幕view復用緩沖池view,二是緩存多種類型view,更換adaper就清空。RecyclerView比ListView多兩級緩存四級緩存,另外兩個緩存為默認緩存離開屏幕的2個view和多個RecyclerView共用一個緩存池(上限5個))。
- 緩存本質區(qū)別:ListView緩存View,RecyclerView緩存View+ViewHolder+flag
生還是死?Android 進程優(yōu)先級詳解
- 前臺進程
- 可見進程
- 服務進程
- 后臺進程
- 空進程
MVC,MVP,MVVM與架構經驗談

image.png
插件化
-
動態(tài)加載使用的類加載器
- PathClassLoader:只能加載已經安裝的apk,即/data/app目錄下的apk
- DexClassLoader:能加載手機中未安裝的apk、jar、dex,只要能在找到對應的路徑。
- 插件化開源庫
- 簡單理解Android Dalvik、ART及APK編譯過程

