《Android系統(tǒng)級(jí)深入開發(fā)》(韓超//梁泉)電子書網(wǎng)盤下載免費(fèi)在線閱讀
十余年的玄武網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷型網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整玄武建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“玄武網(wǎng)站設(shè)計(jì)”,“玄武網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
資源鏈接:
鏈接:
提取碼: nx1v
書名:Android系統(tǒng)級(jí)深入開發(fā)
作者:韓超//梁泉
豆瓣評(píng)分:6.2
出版社:電子工業(yè)出版社
出版年份:2011-2
頁(yè)數(shù):372
內(nèi)容簡(jiǎn)介:《Android系統(tǒng)級(jí)深入開發(fā):移植與調(diào)試》是一本全面介紹Android系統(tǒng)級(jí)開發(fā)的作品,全書以移植和調(diào)試為重點(diǎn)。Android具有一個(gè)龐大的軟件系統(tǒng),任何開發(fā)者都難以掌握系統(tǒng)的每一個(gè)細(xì)節(jié)。因此,如何高效地理解和開發(fā)系統(tǒng),就成了Android系統(tǒng)級(jí)別工程師面對(duì)的主要問(wèn)題。《Android系統(tǒng)級(jí)深入開發(fā):移植與調(diào)試》作者以實(shí)際的開發(fā)經(jīng)驗(yàn)為基礎(chǔ),以軟件工程思想為指導(dǎo),完成了《Android系統(tǒng)級(jí)深入開發(fā):移植與調(diào)試》?!禔ndroid系統(tǒng)級(jí)深入開發(fā):移植與調(diào)試》介紹了從Android開源工程到一個(gè)基于實(shí)際硬件產(chǎn)品中的主要工作,一方面讓讀者清晰把握各個(gè)子系統(tǒng)的架構(gòu),另一方面讓讀者把握移植這個(gè)開發(fā)核心環(huán)節(jié)的要點(diǎn)。
讀者對(duì)象:Linux開發(fā)人員、移動(dòng)設(shè)備開發(fā)人員、Android系統(tǒng)框架層和底層開發(fā)人員、有意圖深入學(xué)習(xí)Android的人員、手機(jī)研發(fā)的公司。
作者簡(jiǎn)介:移動(dòng)系統(tǒng)開發(fā)資深工程師,在Android領(lǐng)域具有完備的知識(shí)和前沿的技術(shù),長(zhǎng)期從事一線開發(fā)工作。韓超是中國(guó)大陸地區(qū)較早參與Android系統(tǒng)開發(fā)的人員之一,也是中國(guó)大陸的Androidin(機(jī)鋒網(wǎng))開發(fā)社區(qū)的核心成員和重要組織者之一;也曾經(jīng)引領(lǐng)大陸各種相關(guān)技術(shù)人員進(jìn)入Android領(lǐng)域,并組織參與國(guó)內(nèi)外的相關(guān)枝術(shù)交流。
安卓6.0又稱Android M。一款“為工作升級(jí)而生”的Android系統(tǒng)。 Android M最大的一個(gè)亮點(diǎn)是:為用戶提供兩套相互獨(dú)立的解決方案。 簡(jiǎn)單來(lái)說(shuō),Android M將為每位用戶的每一個(gè)應(yīng)用都提供兩套數(shù)據(jù)存儲(chǔ)方案。一套專門用來(lái)儲(chǔ)存用戶的工作資料,另一套專門用來(lái)存儲(chǔ)用戶的個(gè)人信息。并且,讓這兩套系統(tǒng)完全相互獨(dú)立。 在Android 5.X系統(tǒng)中ART已經(jīng)取代Dalvik成為默認(rèn)選項(xiàng),系統(tǒng)執(zhí)行效率大大提高,而全新的Android 6.0在5.X的基礎(chǔ)上又加入了諸多新特性,進(jìn)一步提升用戶體驗(yàn)。 Android 6.0新特性 鎖屏下語(yǔ)音搜索 用戶可以直接在鎖屏狀態(tài)下進(jìn)行語(yǔ)音搜索,雖然現(xiàn)在的一些安卓手機(jī)支持語(yǔ)音喚醒功能,但這些語(yǔ)音喚醒都是第三方廠商開發(fā)的,而此次的Android 6.0在系統(tǒng)層面加入鎖屏下語(yǔ)音搜索,這無(wú)疑會(huì)在體驗(yàn)上有一個(gè)明顯的提升。 指紋識(shí)別 說(shuō)道指紋識(shí)別,很多用戶都會(huì)覺(jué)得現(xiàn)在的中高端安卓手機(jī)都支持,但事實(shí)上這些安卓手機(jī)的指紋識(shí)別都是各個(gè)廠商自行開發(fā)的并沒(méi)有系統(tǒng)底層的支持。Android 6.0則在系統(tǒng)層面加入指紋識(shí)別,能提供原生指紋識(shí)別API,這不但降低了廠商開發(fā)指紋識(shí)別模塊的成本,最重要的是原生指紋識(shí)別將會(huì)大大提升安卓手機(jī)的指紋識(shí)別支付安全性。 更完整的應(yīng)用權(quán)限管理 在此前的原生安卓系統(tǒng)中有應(yīng)用通知管理功能,但更為深入的應(yīng)用權(quán)限管理只能靠第三方應(yīng)用實(shí)現(xiàn)。Android 6.0進(jìn)一步強(qiáng)化應(yīng)用權(quán)限管理,應(yīng)用權(quán)限管理也成為系統(tǒng)級(jí)的功能,不過(guò)這對(duì)于那些權(quán)限管理軟件來(lái)說(shuō)并不是什么好消息。 Doze電量管理 Android 6.0自帶Doze電量管理功能,在“Doze”模式下,手機(jī)會(huì)在一段時(shí)間未檢測(cè)到移動(dòng)時(shí),讓應(yīng)用休眠清殺后臺(tái)進(jìn)程減少功耗,谷歌表示,當(dāng)屏幕處于關(guān)閉狀態(tài),平均續(xù)航時(shí)間提高30%。 Now on Tap功能 Now on Tap功能是和Google搜索緊密結(jié)合的功能,它可以讓谷歌從任何應(yīng)用中進(jìn)行搜索。例如,在微信中聊天的時(shí)候提到餐館,那么就可以在不跳轉(zhuǎn)的情況下進(jìn)行谷歌搜索。 App Links 通過(guò)App Links功能,Android平臺(tái)能夠向網(wǎng)絡(luò)服務(wù)器提出申請(qǐng),自主識(shí)別鏈接內(nèi)容。直接跳轉(zhuǎn)到App客戶端中,改善用戶體驗(yàn),有利于讓用戶在體驗(yàn)更完善的App客戶端完成更多操作。 此外,在Android 6.0谷歌還加入了Android Pay進(jìn)一步強(qiáng)化移動(dòng)支付,同時(shí)也是為了對(duì)抗Apple Pay。在發(fā)布會(huì)上谷歌表示Android 6.0將在下周開始推送,Nexus5/6/7/9以及Nexus Player將能夠在第一時(shí)間得到升級(jí)。 Android 6.0.1版本發(fā)布 增加新emoji表情 安卓5.2就不保留后臺(tái)了,這項(xiàng)改進(jìn)被稱為 控制內(nèi)存溢
當(dāng)按下Android設(shè)備電源鍵時(shí)究竟發(fā)生了什么?
Android的啟動(dòng)過(guò)程是怎么樣的?
什么是Linux內(nèi)核?
桌面系統(tǒng)linux內(nèi)核與Android系統(tǒng)linux內(nèi)核有什么區(qū)別?
什么是引導(dǎo)裝載程序?
什么是Zygote?
什么是X86以及ARM linux?
什么是init.rc?
什么是系統(tǒng)服務(wù)?
當(dāng)我們想到Android啟動(dòng)過(guò)程時(shí),腦海中總是冒出很多疑問(wèn)。本文將介紹Android的啟動(dòng)過(guò)程,希望能幫助你找到上面這些問(wèn)題的答案。
Android是一個(gè)基于Linux的開源操作系統(tǒng)。x86(x86是一系列的基于intel 8086 CPU的計(jì)算機(jī)微處理器指令集架構(gòu))是linux內(nèi)核部署最常見的系統(tǒng)。然而,所有的Android設(shè)備都是運(yùn)行在ARM處理器(ARM 源自進(jìn)階精簡(jiǎn)指令集機(jī)器,源自ARM架構(gòu))上,除了英特爾的Xolo設(shè)備()。Xolo來(lái)源自凌動(dòng)1.6GHz x86處理器。Android設(shè)備或者嵌入設(shè)備或者基于linux的ARM設(shè)備的啟動(dòng)過(guò)程與桌面版本相比稍微有些差別。這篇文章中,我將解釋Android設(shè)備的啟動(dòng)過(guò)程。深入linux啟動(dòng)過(guò)程是一篇講桌面linux啟動(dòng)過(guò)程的好文。
當(dāng)你按下電源開關(guān)后Android設(shè)備執(zhí)行了以下步驟。
此處圖片中step2中的一個(gè)單詞拼寫錯(cuò)了,Boot Loaeder應(yīng)該為Boot Loader(多謝@jameslast 提醒)
第一步:?jiǎn)?dòng)電源以及系統(tǒng)啟動(dòng)
當(dāng)電源按下,引導(dǎo)芯片代碼開始從預(yù)定義的地方(固化在ROM)開始執(zhí)行。加載引導(dǎo)程序到RAM,然后執(zhí)行。
第二步:引導(dǎo)程序
引導(dǎo)程序是在Android操作系統(tǒng)開始運(yùn)行前的一個(gè)小程序。引導(dǎo)程序是運(yùn)行的第一個(gè)程序,因此它是針對(duì)特定的主板與芯片的。設(shè)備制造商要么使用很受歡迎的引導(dǎo)程序比如redboot、uboot、qi bootloader或者開發(fā)自己的引導(dǎo)程序,它不是Android操作系統(tǒng)的一部分。引導(dǎo)程序是OEM廠商或者運(yùn)營(yíng)商加鎖和限制的地方。
引導(dǎo)程序分兩個(gè)階段執(zhí)行。第一個(gè)階段,檢測(cè)外部的RAM以及加載對(duì)第二階段有用的程序;第二階段,引導(dǎo)程序設(shè)置網(wǎng)絡(luò)、內(nèi)存等等。這些對(duì)于運(yùn)行內(nèi)核是必要的,為了達(dá)到特殊的目標(biāo),引導(dǎo)程序可以根據(jù)配置參數(shù)或者輸入數(shù)據(jù)設(shè)置內(nèi)核。
Android引導(dǎo)程序可以在bootablebootloaderlegacyusbloader找到。
傳統(tǒng)的加載器包含的個(gè)文件,需要在這里說(shuō)明:
init.s初始化堆棧,清零BBS段,調(diào)用main.c的_main()函數(shù);
main.c初始化硬件(鬧鐘、主板、鍵盤、控制臺(tái)),創(chuàng)建linux標(biāo)簽。
更多關(guān)于Android引導(dǎo)程序的可以在這里了解。
第三步:內(nèi)核
Android內(nèi)核與桌面linux內(nèi)核啟動(dòng)的方式差不多。內(nèi)核啟動(dòng)時(shí),設(shè)置緩存、被保護(hù)存儲(chǔ)器、計(jì)劃列表,加載驅(qū)動(dòng)。當(dāng)內(nèi)核完成系統(tǒng)設(shè)置,它首先在系統(tǒng)文件中尋找”init”文件,然后啟動(dòng)root進(jìn)程或者系統(tǒng)的第一個(gè)進(jìn)程。
第四步:init進(jìn)程
init是第一個(gè)進(jìn)程,我們可以說(shuō)它是root進(jìn)程或者說(shuō)有進(jìn)程的父進(jìn)程。init進(jìn)程有兩個(gè)責(zé)任,一是掛載目錄,比如/sys、/dev、/proc,二是運(yùn)行init.rc腳本。
init進(jìn)程可以在/system/core/init找到。
init.rc文件可以在/system/core/rootdir/init.rc找到。
readme.txt可以在/system/core/init/readme.txt找到。
對(duì)于init.rc文件,Android中有特定的格式以及規(guī)則。在Android中,我們叫做Android初始化語(yǔ)言。
Action(動(dòng)作):動(dòng)作是以命令流程命名的,有一個(gè)觸發(fā)器決定動(dòng)作是否發(fā)生。
語(yǔ)法
1
2
3
4
5
; html-script: false ]
on trigger
command
command
command
Service(服務(wù)):服務(wù)是init進(jìn)程啟動(dòng)的程序、當(dāng)服務(wù)退出時(shí)init進(jìn)程會(huì)視情況重啟服務(wù)。
語(yǔ)法
1
2
3
4
5
; html-script: false ]
service name pathname [argument]*
option
option
...
Options(選項(xiàng))
選項(xiàng)是對(duì)服務(wù)的描述。它們影響init進(jìn)程如何以及何時(shí)啟動(dòng)服務(wù)。
咱們來(lái)看看默認(rèn)的init.rc文件。這里我只列出了主要的事件以及服務(wù)。
Table
Action/Service
描述
on early-init
設(shè)置init進(jìn)程以及它創(chuàng)建的子進(jìn)程的優(yōu)先級(jí),設(shè)置init進(jìn)程的安全環(huán)境
on init
設(shè)置全局環(huán)境,為cpu accounting創(chuàng)建cgroup(資源控制)掛載點(diǎn)
on fs
掛載mtd分區(qū)
on post-fs
改變系統(tǒng)目錄的訪問(wèn)權(quán)限
on post-fs-data
改變/data目錄以及它的子目錄的訪問(wèn)權(quán)限
on boot
基本網(wǎng)絡(luò)的初始化,內(nèi)存管理等等
service servicemanager
啟動(dòng)系統(tǒng)管理器管理所有的本地服務(wù),比如位置、音頻、Shared preference等等…
service zygote
啟動(dòng)zygote作為應(yīng)用進(jìn)程
在這個(gè)階段你可以在設(shè)備的屏幕上看到“Android”logo了。
第五步
在Java中,我們知道不同的虛擬機(jī)實(shí)例會(huì)為不同的應(yīng)用分配不同的內(nèi)存。假如Android應(yīng)用應(yīng)該盡可能快地啟動(dòng),但如果Android系統(tǒng)為每一個(gè)應(yīng)用啟動(dòng)不同的Dalvik虛擬機(jī)實(shí)例,就會(huì)消耗大量的內(nèi)存以及時(shí)間。因此,為了克服這個(gè)問(wèn)題,Android系統(tǒng)創(chuàng)造了”Zygote”。Zygote讓Dalvik虛擬機(jī)共享代碼、低內(nèi)存占用以及最小的啟動(dòng)時(shí)間成為可能。Zygote是一個(gè)虛擬器進(jìn)程,正如我們?cè)谇耙粋€(gè)步驟所說(shuō)的在系統(tǒng)引導(dǎo)的時(shí)候啟動(dòng)。Zygote預(yù)加載以及初始化核心庫(kù)類。通常,這些核心類一般是只讀的,也是Android SDK或者核心框架的一部分。在Java虛擬機(jī)中,每一個(gè)實(shí)例都有它自己的核心庫(kù)類文件和堆對(duì)象的拷貝。
Zygote加載進(jìn)程
加載ZygoteInit類,源代碼:/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
registerZygoteSocket()為zygote命令連接注冊(cè)一個(gè)服務(wù)器套接字。
preloadClassed “preloaded-classes”是一個(gè)簡(jiǎn)單的包含一系列需要預(yù)加載類的文本文件,你可以在/frameworks/base找到“preloaded-classes”文件。
preloadResources() preloadResources也意味著本地主題、布局以及android.R文件中包含的所有東西都會(huì)用這個(gè)方法加載。
在這個(gè)階段,你可以看到啟動(dòng)動(dòng)畫。
第六步:系統(tǒng)服務(wù)或服務(wù)
完成了上面幾步之后,運(yùn)行環(huán)境請(qǐng)求Zygote運(yùn)行系統(tǒng)服務(wù)。系統(tǒng)服務(wù)同時(shí)使用native以及java編寫,系統(tǒng)服務(wù)可以認(rèn)為是一個(gè)進(jìn)程。同一個(gè)系統(tǒng)服務(wù)在Android SDK可以以System Services形式獲得。系統(tǒng)服務(wù)包含了所有的System Services。
Zygote創(chuàng)建新的進(jìn)程去啟動(dòng)系統(tǒng)服務(wù)。你可以在ZygoteInit類的”startSystemServer”方法中找到源代碼。
核心服務(wù):
啟動(dòng)電源管理器;
創(chuàng)建Activity管理器;
啟動(dòng)電話注冊(cè);
啟動(dòng)包管理器;
設(shè)置Activity管理服務(wù)為系統(tǒng)進(jìn)程;
啟動(dòng)上下文管理器;
啟動(dòng)系統(tǒng)Context Providers;
啟動(dòng)電池服務(wù);
啟動(dòng)定時(shí)管理器;
啟動(dòng)傳感服務(wù);
啟動(dòng)窗口管理器;
啟動(dòng)藍(lán)牙服務(wù);
啟動(dòng)掛載服務(wù)。
其他服務(wù):
啟動(dòng)狀態(tài)欄服務(wù);
啟動(dòng)硬件服務(wù);
啟動(dòng)網(wǎng)絡(luò)狀態(tài)服務(wù);
啟動(dòng)網(wǎng)絡(luò)連接服務(wù);
啟動(dòng)通知管理器;
啟動(dòng)設(shè)備存儲(chǔ)監(jiān)視服務(wù);
啟動(dòng)定位管理器;
啟動(dòng)搜索服務(wù);
啟動(dòng)剪切板服務(wù);
啟動(dòng)登記服務(wù);
啟動(dòng)壁紙服務(wù);
啟動(dòng)音頻服務(wù);
啟動(dòng)耳機(jī)監(jiān)聽;
啟動(dòng)AdbSettingsObserver(處理adb命令)。
第七步:引導(dǎo)完成
一旦系統(tǒng)服務(wù)在內(nèi)存中跑起來(lái)了,Android就完成了引導(dǎo)過(guò)程。在這個(gè)時(shí)候“ACTION_BOOT_COMPLETED”開機(jī)啟動(dòng)廣播就會(huì)發(fā)出去。
1、Java se基礎(chǔ)
1).Java基本數(shù)據(jù)類型與表達(dá)式,分支循環(huán)。
2).String和StringBuffer的使用、正則表達(dá)式。
3).面向?qū)ο蟮某橄?,封裝,繼承,多態(tài),類與對(duì)象,對(duì)象初始化和回收;構(gòu)造函數(shù)、this關(guān)鍵字、方法和方法的參數(shù)傳遞過(guò)程、static關(guān)鍵字、內(nèi)部類。
4).對(duì)象實(shí)例化過(guò)程、方法的覆蓋、final關(guān)鍵字、抽象類、接口、繼承的優(yōu)點(diǎn)和缺點(diǎn)剖析;對(duì)象的多態(tài)性:子類和父類之間的轉(zhuǎn)換、抽象類和接口在多態(tài)中的應(yīng)用、多態(tài)帶來(lái)的好處。
5).Java異常處理,異常的機(jī)制原理。
6).常用的設(shè)計(jì)模式:Singleton、Template、Strategy模式。
7).JavaAPI介紹:種基本數(shù)據(jù)類型包裝類,System和Runtime類,Date和DateFomat類等。
8).Java集合介紹:Collection、Set、List、ArrayList、LinkedList、Hashset、Map、HashMap、Iterator等常用集合類API。
9).JavaI/O輸入輸出流:File和FileRandomAccess類,字節(jié)流InputStream和OutputStream,字符流Reader和Writer,以及相應(yīng)實(shí)現(xiàn)類,IO性能分析,字節(jié)和字符的轉(zhuǎn)化流,包裝流的概念,以及常用包裝類,計(jì)算機(jī)編碼。
10).Java高級(jí)特性:反射和泛型。
11).多線程原理:如何在程序中創(chuàng)建多線程(Thread、Runnable),線程安全問(wèn)題,線程的同步,線程之間的通訊、死鎖。
2、android UI編程
1)、Android開發(fā)環(huán)境搭建:Android介紹,Android開發(fā)環(huán)境搭建,第一個(gè)Android應(yīng)用程序,Android應(yīng)用程序目錄結(jié)構(gòu)。
2)、Android初級(jí)控件的使用:
TextView控件的使用
Button控件的使用方法
EditText控件的使用方法
ImageView的使用方法
RadioButton的使用方法
Checkbox的使用方法
Menu的使用方法
3)、Android高級(jí)控件的使用:
ListView的使用方法
GridView的使用方法
Adapter的使用方法
Spinner的使用方法
Gallary的使用方法
ScrollView的使用方法
RecyclerView
4、對(duì)話框與菜單的使用:
Dialog的基本概念
BlockquoteAlertDialog的使用方法
DatePickerDialog的使用方法
Menu的使用方法
自定義Menu的實(shí)現(xiàn)方法
5.控件的布局方法:
線性布局的使用方法
相對(duì)布局的使用方法
6.多Acitivity管理:
AndroidManifest.xml文件的作用
Intent的使用方法
使用Intent傳遞數(shù)據(jù)的方法
啟動(dòng)Activity的方法
IntentFilter的使用方法
Activity Group的使用方法
7、自定義控件實(shí)現(xiàn)方法:
自定義ListView的實(shí)現(xiàn)方法
可折疊ListView的使用方法
自定義Adapter的實(shí)現(xiàn)方法
自定義View的實(shí)現(xiàn)方法
動(dòng)態(tài)控件布局的上實(shí)現(xiàn)方法
上拉刷新下拉加載更多
3、android網(wǎng)絡(luò)編程與數(shù)據(jù)存儲(chǔ)
1).基于Android平臺(tái)的HTTP通訊:
Http協(xié)議回顧
使用Get方法向服務(wù)器提交數(shù)據(jù)的方法
使用POST方法向服務(wù)器提交數(shù)據(jù)的實(shí)現(xiàn)方法
使用Http協(xié)議實(shí)現(xiàn)多線程下載
使用Http協(xié)議實(shí)現(xiàn)斷點(diǎn)續(xù)傳
2).Android數(shù)據(jù)存儲(chǔ)技術(shù):
SQLite3數(shù)據(jù)庫(kù)簡(jiǎn)介
SQL語(yǔ)句回顧
SQLite3編程接口介紹
SQLite3事務(wù)管理
SQLite3游標(biāo)使用方法
SQLite3性能分析
訪問(wèn)SDCard的方法
訪問(wèn)SharedPreferences的方法
初級(jí)工程師
技術(shù)要求:
基本知識(shí)點(diǎn)
比如四大組件如何使用、如何創(chuàng)建Service、如何進(jìn)行布局、簡(jiǎn)單的自定義View、動(dòng)畫等常見技術(shù)
書籍推薦
《第一行代碼 Android》、《瘋狂Android》
中級(jí)工程師
技術(shù)要求:
稍微深入的知識(shí)點(diǎn)
AIDL、Messenger、Binder、多進(jìn)程、動(dòng)畫、滑動(dòng)沖突、自定義View、消息隊(duì)列等
書籍推薦
《Android開發(fā)藝術(shù)探索》、《Android群英傳》
AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的區(qū)別;
Binder:從Java層大概理解Binder的工作原理,懂Parcel對(duì)象的使用;
多進(jìn)程:熟練掌握多進(jìn)程的運(yùn)行機(jī)制,懂Messenger、Socket等;
事件分發(fā):彈性滑動(dòng)、滑動(dòng)沖突等;
玩轉(zhuǎn)View:View的繪制原理、各種自定義View;
動(dòng)畫系列:熟悉View動(dòng)畫和屬性動(dòng)畫的不同點(diǎn),懂屬性動(dòng)畫的工作原理;
懂性能優(yōu)化、熟悉mat等工具
懂點(diǎn)常見的設(shè)計(jì)模式
搞懂view的滑動(dòng)原理
搞懂如何實(shí)現(xiàn)彈性滑動(dòng)
搞懂view的滑動(dòng)沖突
搞懂view的measure、layout和draw
然后再學(xué)習(xí)幾個(gè)已有的自定義view的例子
最后就可以搞定自定義view了,所謂萬(wàn)變不離其宗
高級(jí)工程師
技術(shù)要求:
稍微深入的知識(shí)點(diǎn)
系統(tǒng)核心機(jī)制
基本知識(shí)點(diǎn)的細(xì)節(jié)
設(shè)計(jì)模式和架構(gòu)
書籍推薦
《Android開發(fā)藝術(shù)探索》、《Android 源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)》、《Android內(nèi)核剖析》
繼續(xù)加深理解”稍微深入的知識(shí)點(diǎn)“中所定義的內(nèi)容
了解系統(tǒng)核心機(jī)制:
了解SystemServer的啟動(dòng)過(guò)程
了解主線程的消息循環(huán)模型
了解AMS和PMS的工作原理
能夠回答問(wèn)題”一個(gè)應(yīng)用存在多少個(gè)Window?“
了解四大組件的大概工作流程
…
基本知識(shí)點(diǎn)的細(xì)節(jié)
Activity的啟動(dòng)模式以及異常情況下不同Activity的表現(xiàn)
Service的onBind和onReBind的關(guān)聯(lián)
onServiceDisconnected(ComponentName className)和binderDied()的區(qū)別
AsyncTask在不同版本上的表現(xiàn)細(xì)節(jié)
線程池的細(xì)節(jié)和參數(shù)配置
…
熟悉設(shè)計(jì)模式,有架構(gòu)意識(shí)學(xué)習(xí)方法
-----------------------------------------------------------------
作者:小碼同學(xué)
鏈接:
來(lái)源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。