培訓大綱:
?
第一部分
?
第1個主題: Android的哲學思考
?
1. 造型簡單、內(nèi)涵豐富、無限重復
?
2. Android的IOC
?
3. APK與API
?
第2個主題:Android Application Framework揭秘
?
1. CS結(jié)構(gòu):應(yīng)用框架中的Manager通用的結(jié)構(gòu)
?
2. Manager與Service一一對應(yīng)
?
3. 跨進程通信與AIDL
?
第3個主題:Android中啟動一個新的應(yīng)用程序揭秘
?
1. 當我們觸摸Android屏幕中Launcher上的一個應(yīng)用程序的圖標的時候到底發(fā)生怎樣的調(diào)用過程?
?
2. 應(yīng)用程序的執(zhí)行入口到底在哪里?
?
3. 一個新的Android應(yīng)用程序的進程到底是怎么產(chǎn)生的?
?
第4個主題:Dalvik VM
?
1. Dalvik VM的特點,Dalvik VM和JVM的比較
?
2. Dalvik VM的內(nèi)存分布及OOM(Out of Memory)的根本原因和解決方案是什么?
?
3. Preload Classes和 Preload Resources,ClassLoader到底在哪里?
?
4. Dalvik與Java和C/C++
?
第5個主題:把Java寫的 Service加入到Applciation Framework中
?
1. IInterface與CTS
?
2. Binder
?
3. AIDL
?
4. Java Service與Manager
?
5. SystemServer、ServiceManager
?
第6個主題:Android框架移植移植時的事件驅(qū)動機制
?
1. Android Service是如何應(yīng)對硬件阻塞的?
?
2. 開辟新的子線程并不斷的poll
?
3. Listener注冊
?
4. Callback
?
5. Application Framework中的Handler、Message、Looper、MessageQueue、
?
6. 事件驅(qū)動機制實例
?
第7個主題:Manager、Service和完整的數(shù)據(jù)流
?
1,Manager和Service分離的原則
?
2,ANR問題
?
3,阻塞式的操作和非阻塞式操作
?
4,以實例說明Android中的從底層到上層的數(shù)據(jù)流
?
第8個主題:ActivityManagerService之AMS總體剖析
?
1.ActivityManagerService的main函數(shù)剖析
?
2,AMS的 setSystemProcess剖析
?
3.AMS的 installSystemProviders函數(shù)剖析
?
4.AMS的 systemReady剖析
?
第9個主題:ActivityManagerService之startActivity剖析
?
1.ActivityManager
?
2.AMS的startActivityAndWait函數(shù)剖析
?
3.startActivityLocked剖析
?
第10個主題:ActivityManagerService之Broadcast和BroadcastReceiver剖析
?
1.registerReceiver流程剖析
?
2.sendBroadcast流程剖析
?
3.BROADCAST_INTENT_MSG消息處理函數(shù)
?
4.應(yīng)用進程處理廣播剖析
?
第11個主題:ActivityManagerService之startService剖析
?
1.startService代碼剖析
?
2.startService流程圖
?
第二部分
?
第1個主題:ActivityManagerService之進程管理
?
1.Linux和Android中的進程管理
?
2.AMS進程管理函數(shù)剖析
?
第2個主題:ActivityManagerService之App的 Crash處理
?
1.應(yīng)用進程的Crash處理
?
2.AMS的handleApplicationCrash剖析
?
3.AppDeathRecipient binderDied剖析
?
第3個主題:PackageManagerService之main函數(shù)剖析
?
1.構(gòu)造函數(shù)剖析之前期準備工作
?
2.構(gòu)造函數(shù)剖析之掃描Package
?
3.構(gòu)造函數(shù)剖析之掃尾工作
?
第4個主題:PackageManagerService之APK Installation剖析
?
1.a(chǎn)db install剖析
?
2.pm剖析
?
3.installPackageWithVerification函數(shù)剖析
?
4.APK 安裝流程
?
5.Verification介紹
?
第5個主題:PackageManagerService之queryIntentActivities剖析
?
1.Intent及IntentFilter介紹
?
2.Activity信息的管理
?
3.Intent 匹配查詢剖析
?
4.queryIntentActivities總結(jié)
?
第6個主題:PackageManagerService之installd及UserManager剖析
?
1. installd剖析
?
2.UserManager剖析? ?
?
第7個主題:WindowManagerService之應(yīng)用程序界面的初始化
?
1. Android中的窗口
?
2.應(yīng)用程序界面初始化的過程 ?
?
第8個主題:WindowManagerService之窗口管理
?
1. WindowManagerService.java
?
2.Activity啟動過程中創(chuàng)建窗口的時序
?
第9個主題:WindowManagerService之WindowManagerImpl剖析
?
1. addView
?
2.ViewRoot? ?
?
第10個主題:WindowManagerService之WindowManagerImpl剖析
?
1. ViewRoot和WMS的交互
?
2.WindowState和Surface
?
第11個主題:徹底洞悉ANR
?
1. ANR通常出現(xiàn)的場景和常用的解決方案
?
2.從框架和系統(tǒng)的觀點來看:ANR到底是怎么產(chǎn)生的?
?
3. ANR的終極解決方案是什么?