Android學習進階路線導航線路(Android原始碼分享)
【原文:http://www.apkbus.com/android-56728-1-1.html】
前言:公司最近來了很多應屆實習生,看著他們充滿信心但略帶稚氣的臉龐上,想到了去年的自己,那是的我是不是也和
現在的他們一樣呢?現在的我又改變了什麼?公司的給這些實習生指定的相關培訓制度還是比較完善的(我可是個菜鳥)。但我反
過來想,假如是我,我會制定一個怎樣的短期或者長遠的計劃?總結了自己學到的知識,形成了一個學習線路,希望能給予同
道中人一點兒小小幫助。
畢業8月有餘,同時伴隨著從事Android開發的經驗的提升。仔細思量過去的工作內容,掐指算來也是少得可憐---主要維護FM收
音機模組,間或看看Lancher模組的程式碼。儘管這樣,總的來說,在這八個月事件的學習裡,我自我感覺收穫還是很大的---自學了很多
Android相關方面的知識。雖然裡真正的大牛還有很遠的一段路程要走,自己也會堅持學習、堅持走下去。
再次,把自己學習過程中總結的一些經驗總結出來,幫助那些剛剛步入Android的網友以及有了取得了一些經驗但不知如何
繼續前行的朋友,希望你們能夠早日在Android世界裡看到希望的曙光。同時歡迎各位朋友拍磚。
另外,本文總結的一些學習線路都是針對於Java上層應用開發的。對中間層相關開發並沒有涉及到。
一、 基礎篇 需要掌握的技能如下:
1、熟練掌握基本控制元件以及容器控制元件的使用 ;
常用的基本控制元件有:Button 、TextView、EditText、ListView等
常用的容器控制元件有:FrameLayout、LinearLayout、RelativeLayout等
2、熟練掌握相關監聽器的註冊和使用:
常用監聽器有: OnClickListener、OnLongClickListener、OnItemClickListener等
3、掌握Log的使用以及分析方法 ;
4、掌握Activity、Service的生命週期和使用方法 ;
5、掌握BroadcastReceiver(廣播)的接受和使用 ;
6、掌握Intent以及IntentFilter的使用 ;
7、基本掌握資料庫方面知識,包括SQLiteDatabase以及ContentProvider的使用方法
除此之外,我們必須得掌握adb shell 的使用方法,常用功能有:
adb pull 、 adb push 、 adb remount 指令等
由於shell類同於Linux shell ,我們還得掌握基本的Linux指令等,例如cat、cd 等 。
知識獲取渠道主要為:
Android SDK以及網上大牛的部落格。
附: 關於基礎知識的介紹,國內的一些書籍質量真是相當差勁,味同嚼蠟。強烈不建議在此階段買書籍。
這時,您已經小有所成了,能夠基本掌握Android開發了。這兒,我推薦一個手把手講解Android專案的視訊:
zhengping老師講解的,強烈推薦。
視訊下載地址:http://www.verycd.com/topics/2847310/
祝您一臂之力的當然還有Mars老師的視訊了。
實踐出真知。這個階段,你可以自己編寫一些小Demo了,幫助自己在更深層次發展了。
PS:我通過看了Mars老師視訊後,編寫了一個簡易的音樂播放器Demo, 感覺挺有成就感的。
通過前面的學習,我們可以成功進入第二個階段了。
二、 提高篇 需要掌握的技能如下:
1、掌握Canvas類的使用-- 如何繪圖
2、掌握訊息通訊機制---Handler相關類的使用以及原理
3、掌握Context類以及實現原理
4、掌握View樹的繪製流程 。 View繪製流程很重要,掌握它就基本上掌握了Android核心之一了。
4.1、掌握觸控事件的分發流程--- onInterceptTouchEvent以及onTouchEvent方法流程
4.2、掌握相關監聽器的呼叫機制。例如OnClickListener監聽時怎麼呼叫的?
4.3、能夠編寫自定義View以及ViewGroup
5、理解Binder機制----Binder機制很重要,Android的程式間通訊都是靠它完成的。掌握它,才能夠好的完成接下
來的學習。
6、基本掌握ActivityManagerService類的使用,主要掌握的知識點包括如下:
6.1、startActivity()流程,即啟動一個Activity的流程 ;
6.2、startService()流程,即啟動一個Service的流程 ;
7、基本掌握PackageManagerService類的使用,主要掌握的知識點包括如下:
7.1、開機時如何解析所有已安裝應用程式的Apk包的資訊
7.2、Intent以及IntentFilter的匹配規則以及解析過程
8、基本掌握View新增至視窗的過程---即WindowManagerIml 、WindowManagerService類的用法
知識渠道:
網上相關大牛的部落格。 (我這一畝三分地也有點貨咯。(*^__^*) )
必備書籍: <Android核心剖析>
Android原始碼一份
PS: 您的個人電腦上一定得有份 Android原始碼,否則何以笑傲江湖 。
三、 進階篇
1、基本理解SystemServer類載入流程以及WatchDog的功能
2、more......
我也還是個小菜鳥,更多的就不知道咯。希望以後能夠完善起來。和大家共同成長。
最後,我總結的一些學習知識點只是一個提綱挈領,幫助大家學習成長的點或者線。例如:我負責通訊錄模組,當然得把資料
庫方面知識弄得一清二楚啊。不然,公司要我何用。因此大家在學習的時候,找出更適合自己的點。
有些人可能會想,工作中我用不到,學它幹嘛?再次也規勸大家在工作之餘,給自己充充電,多學點知識只有好的沒有壞的。
希望大家每天能進步一點,成長一點,接近心目中的那個天空更近一點。
前面說的部落格,在此推薦兩個我常去的吧:
1、 應用方面,主要是魏祝林的csdn部落格 :http://blog.csdn.net/Android_Tutor 。 但他的部落格主要是以程式碼為主,
需要自己結合原始碼揣摩 。
2、 框架方面,主要是老羅的csdn部落格 : http://blog.csdn.net/Luoshengyang/ 。 但他的部落格主要是以流程分析
為主, 而對 流程 需要的前期準備知識介紹不足,初步看起來比較難以理解,因此,買本《Android核心剖析》是必須
的,可以參考原始碼仔細領悟, 強烈推薦該書籍。
由於網路上Android原始碼不太好找,特此共享下Android部分原始碼,主要包括框架層、中間層、以及一些App等,對上層開發
和中間層開發還是很有益處的:
原始碼對應目錄: 下載地址:
frameworks http://115.com/file/dpna22jr#frameworks.rar
packages [url]http://115.com/file/dpnay9ug#packages.rar[/url]
kernel [url]http://115.com/file/anqptq4l#kernel.rar[/url]
ndk [url]http://115.com/file/c2libfmk#ndk.rar[/url]
system [url]http://115.com/file/beh14i2o#system.rar[/url]
相關文章
- Android 進階路線(思維導圖)Android
- Java學習路線·進階Java
- Android 學習路線圖Android
- Python學習路線·進階Python
- 會計進階學習路線圖
- 從入門到精通,Java學習路線導航Java
- Go 語言進階學習路線圖Go
- 寫給Android開發者的最佳學習路線!Android
- Mars老師的Android學習基本路線Android
- Java進階學習之Java架構師的學習路線Java架構
- Android 開發者學習路線(2020 版)Android
- JAVA進階路線圖Java
- GO學習路線及資源分享Go
- 技術大牛分享:JAVA學習路線Java
- Android進階必學retrofit原始碼解析Android原始碼
- 【React學習路線】從零進階前端核心工程師React前端工程師
- 分散式架構 -- 學習路線圖(入門到進階)分散式架構
- Java 學習路線之四個階段Java
- Oracle官網文件學習路線導圖Oracle
- Java後端學習路線乾貨分享Java後端
- 學習Java架構師的路線分享Java架構
- 雲端計算學習路線原始碼框架筆記:Mysql原始碼一原始碼框架筆記MySql
- 雲端計算學習路線原始碼框架筆記:Mysql原始碼二原始碼框架筆記MySql
- 雲端計算學習路線原始碼框架筆記:Mysql原始碼三原始碼框架筆記MySql
- Java學習福利,入門到精通學習路線分享Java
- 前端學習路線前端
- Oracle學習路線Oracle
- Vue學習路線Vue
- JAVA學習路線Java
- java 學習路線Java
- javaweb學習路線JavaWeb
- ML學習路線
- 零基礎Python學習路線,小白的進階之路!Python
- Java 從入門到高階學習路線Java
- Linux學習路線圖,入門教程分享Linux
- Linux學習路線圖,入門教程分享。Linux
- 最新web前端路線圖及學習攻略分享Web前端
- 好程式設計師大資料學習路線分享高階函式程式設計師大資料函式