-
- 素材大。
- 1.18 MB
- 素材授權(quán):
- 免費下載
- 素材格式:
- .ppt
- 素材上傳:
- ppt
- 上傳時間:
- 2018-02-07
- 素材編號:
- 185185
- 素材類別:
- 儀器設(shè)備PPT
-
素材預(yù)覽
這是一個關(guān)于android源碼分析PPT,包括了JNI重難點分析,init重難點分析,Android常用類重難點分析,Binder重難點分析,Audio系統(tǒng)重難點分析,Surface系統(tǒng)重難點分析等內(nèi)容,Android系統(tǒng)Framework層源碼分析(深入理解Android重難點解析) 主講人——鄧凡平大綱一 JNI重難點分析 1.1 注冊方法的選擇 1.2 垃圾回收二 init重難點分析 2.1 keywords.h的有趣用法 2.2 用好“DllMain函數(shù)”——客戶端Property讀取的實現(xiàn)三 Android常用類重難點分析 3.1 RefBase、sp和wp 3.2 題外話——無所不用其極四 Binder重難點分析 4.1 時空穿越魔術(shù)揭秘 4.2 Binder和線程的關(guān)系五 Audio系統(tǒng)重難點分析 5.1 AudioTrack & 方法論 5.2 AudioFlinger中的對象 5.3 AudioPolicyService實例 5.4 audio_control_block_t分析 5.5 學(xué)習(xí)并實踐Desktop Check 大綱(接上)六 Surface系統(tǒng)重難點分析 6.1 來之不易的Activity 6.2 乾坤大挪移——如何與SurfaceFlinger建立聯(lián)系? 6.3 生產(chǎn)者和消費者之間的紐帶 6.4 SurfaceFlinger的工作流程分析 6.5 Transaction分析 6.6 CameraService中的嚴重bug 6.7 PageFlip過程分析 一 JNI重難點分析 1 JNI是什么,歡迎點擊下載android源碼分析PPT。
android源碼分析PPT是由紅軟PPT免費下載網(wǎng)推薦的一款儀器設(shè)備PPT類型的PowerPoint.
Android系統(tǒng)Framework層源碼分析(深入理解Android重難點解析) 主講人——鄧凡平大綱一 JNI重難點分析 1.1 注冊方法的選擇 1.2 垃圾回收二 init重難點分析 2.1 keywords.h的有趣用法 2.2 用好“DllMain函數(shù)”——客戶端Property讀取的實現(xiàn)三 Android常用類重難點分析 3.1 RefBase、sp和wp 3.2 題外話——無所不用其極四 Binder重難點分析 4.1 時空穿越魔術(shù)揭秘 4.2 Binder和線程的關(guān)系五 Audio系統(tǒng)重難點分析 5.1 AudioTrack & 方法論 5.2 AudioFlinger中的對象 5.3 AudioPolicyService實例 5.4 audio_control_block_t分析 5.5 學(xué)習(xí)并實踐Desktop Check 大綱(接上)六 Surface系統(tǒng)重難點分析 6.1 來之不易的Activity 6.2 乾坤大挪移——如何與SurfaceFlinger建立聯(lián)系? 6.3 生產(chǎn)者和消費者之間的紐帶 6.4 SurfaceFlinger的工作流程分析 6.5 Transaction分析 6.6 CameraService中的嚴重bug 6.7 PageFlip過程分析 一 JNI重難點分析 1 JNI是什么? 1.1 注冊方法的選擇 什么是注冊? 兩種方法: 1 靜態(tài)法 2 動態(tài)法靜態(tài)方法工作原理探析及其弊端工作原理當Java層調(diào)用native_init函數(shù)時,它會從對應(yīng)的JNI庫Java_android_media_MediaScanner_native_linit,如果沒有,就會報錯。如果找到,則會為這個native_init和Java_android_media_MediaScanner_native_linit建立一個關(guān)聯(lián)關(guān)系,其實就是保存JNI層函數(shù)的函數(shù)指針。以后再調(diào)用native_init函數(shù)時,直接使用這個函數(shù)指針就可以了。動態(tài)方法 Quick Question: 1 什么時候,在哪兒注冊JNINativeMethod數(shù)組? 1.2 垃圾回收例子: Local Reference:本地引用。在JNI層函數(shù)中使用的非全局引用對象都是Local Reference。它包括函數(shù)調(diào)用時傳入的jobject、在JNI層函數(shù)中創(chuàng)建的jobject。 Local Reference最大的特點就是,一旦JNI層函數(shù)返回,這些jobject就可能被垃圾回收。 二 init重難點分析 Android對init進行了大規(guī)模改進……,但還是少不了要解析配置文件init.rc。 2.1 keywords.h的用法兩次include keywords.h Result: 2.2用好“DllMain函數(shù)”——客戶端Property讀取的實現(xiàn) Android平臺提供系統(tǒng)級別的屬性管理和控制 Dive into code Dive into code Any Questions about init? 四 Android常用類重難點分析代碼中漫天可見的 RefBase、sp and wp 到底是什么? 3.1 Sample One:初識影子對象 sp的構(gòu)造 wp的構(gòu)造 wp的析構(gòu) Sample 1 sum up: 生死魔咒----extendObjectLifetime 3.2 題外話——無所不用其極我的煩惱: 1 RefBase,sp和wp:共兩個文件,1千行左右的代碼。--不多,真正參與分析的代碼應(yīng)該不到400行。 2 判斷極為復(fù)雜,打log也不方便,影響整個系統(tǒng)。——對于這類邏輯復(fù)雜的代碼,打log實為下策。冥思苦想……,any good ideas? 四 Binder重難點分析 Binder....Binder......聽煩了沒?見惡心了沒? 4.1 時空穿越魔術(shù)揭秘 defaultServiceManager分析 BpBinder分析障眼法——interface_cast Binder理解的重點:區(qū)分業(yè)務(wù)和通信不是家人,不進一家門…….