出于工作需要,或者是為了技能上的提升,很多android開發(fā)工程師都會選擇去研究學(xué)習(xí)android源代碼,畢竟理解了底層邏輯,我們才能更好的使用。那么我們應(yīng)該如何正確學(xué)習(xí)android源代碼呢?今天小編就為大家分享一些Android源代碼學(xué)習(xí)方法。
如何正確學(xué)習(xí)Android源代碼
Android源代碼是什么?
android源碼就是android系統(tǒng)的源代碼,由google公司開發(fā)發(fā)布的純凈的安卓系統(tǒng)代碼,然后再由各大手機開發(fā)公司自行優(yōu)化開發(fā)。簡單的說就是原料,未經(jīng)加工過的。外面可以自由免費獲取。現(xiàn)在,的很多手機廠商都會在android原系統(tǒng)的基礎(chǔ)上開發(fā)優(yōu)化屬于自己的android系統(tǒng)。
什么樣的人會去學(xué)習(xí)Android源代碼?
其實一般從事android開發(fā)的人,都會有學(xué)習(xí)android源代碼的沖動,學(xué)習(xí)android源碼,能幫助我們理解android系統(tǒng)的底層實現(xiàn),幫助我們更好的去使用android系統(tǒng)提供的功能來優(yōu)化我們的app開發(fā)。也有些人是因為工作需要去學(xué)習(xí)的,例如一些手機廠商想要開發(fā)自己的個性化系統(tǒng),就需要員工去學(xué)習(xí)android源代碼。
學(xué)習(xí)android源代碼需要一定的知識儲備
1)Java基礎(chǔ):Java是AOSP的主要語言之一. 沒得說, 這個是必需熟練掌握的.
2)熟練的Android App開發(fā):不要一接觸android開發(fā)就想去學(xué)習(xí)android源碼,等你有了一定的android開發(fā)基礎(chǔ)之后再去試著研究。
3)Linux:這個主要是因為Android基于Linux的, 并且AOSP的推薦編譯環(huán)境是Ubuntu 12.04. 所以熟練的使用并了解Linux這個系統(tǒng)是必不可少的. 如果你想了解偏底層的代碼, 那么必需了解基本的Linux環(huán)境下的程序開發(fā). 如果再深入到驅(qū)動層, 那么Kernel相關(guān)的知識也要具備.
4)Make:AOSP使用Make系統(tǒng)進行編譯. 了解基本的Makefile編寫會讓你更清晰了解AOSP這個龐大的項目是如何構(gòu)建起來的.
5)Git:AOSP使用git+repo進行源碼管理. 這應(yīng)該是程序員必備技能吧.
6)C++:Android系統(tǒng)的一些性能敏感模塊及第三方庫是用C++實現(xiàn)的, 比如: Input系統(tǒng), Chromium項目(WebView的底層實現(xiàn)).
研究學(xué)習(xí)android源代碼還要有一定的軟硬件支持
一臺Nexus系列手機,用來做測試機;
一臺配有Linux操作系統(tǒng)的電腦,方便隨時編譯Android源代碼;
一些android源代碼查看工具,如Android Studio、Eclipse
閱讀安卓源代碼的正確姿態(tài)
閱讀Android源碼絕不是從源碼工程按順序一個個的文件,從首行看到尾行。正確而高效地閱讀Android源碼的姿態(tài)應(yīng)該是以某一個主線為起點,從上層往底層,不斷地追溯,在各個模塊、文件、方法之間來回跳轉(zhuǎn),反復(fù)地閱讀,理清整個流程的邏輯。同時帶著思考去看源碼,嘗試去揣測作者的用意,去理解代碼的精妙之處,去思考代碼可能存在的缺陷,去總結(jié)優(yōu)秀的代碼設(shè)計思想。需要操作的地方及時操作做進行驗證。
參考一些android源碼教程和書籍來學(xué)習(xí)
以上說的都是一關(guān)于android源代碼的基本概念、學(xué)習(xí)android源碼前的一些準(zhǔn)備和一個簡單的思路。相信大家對如何正確學(xué)習(xí)Android源代碼也有了一些認(rèn)識,大體方向就是這樣,具體的學(xué)習(xí)過程可以去買一些相關(guān)的書籍或者百度一些博客,如老羅的博客。根據(jù)這些參考資料去系統(tǒng)學(xué)習(xí),才不至于學(xué)的稀里糊涂,甚至半途而廢。
熱點新聞
課程問答