初學安卓應該學什么?在這里筆者羅列一些學習路線,讓學習者可以從中找到一些方法。很多朋友一上手就開始學習Android,似乎太著急了一些。Android應用程序開發是以Java語言為基礎的,所以沒有扎實的Java基礎知識,只是 機械的照抄別人的代碼,是沒有任何意義的。那么Java學到什么程度才算是過關呢?我個人認為至少要掌握以下兩個方面的內容:
1.Java基礎
a) Java基礎語法:
具體的知識點列表可以參考《Java知識點列表》。這部分內容沒有討價還價的余地,必須爛熟于胸。至于具體的學習方法,可以看書或者是看視頻,但是關鍵是要多加練習,無論是書上的練習還是視頻里面的練習,都需要仔仔細細的完成。
附:《Java知識點列表》
1.開發環境
1.1 Java SDK下載和安裝;
1.2 環境變量的配置(PATH 和Classpath)。
2.編程基礎
2.1 標識符命名規范;
2.2 Java數據類型;
2.3 運算符與表達式;
2.4 分支語句(if,switch);
2.5 循環語句(for,while);
2.6 函數的定義方法。
3.面向對象基礎
3.1 面向對象與面向過程語言之間的區別;
3.2 面向對象的基本思想(封裝);
3.3 類的定義方法;
3.4 對象和類的關系;
3.5 對象的創建方法;
3.6 通過對象使用成員變量和成員函數的方法;
3.7 構造函數的作用;
3.8 函數的重載;
3.9 static的作用;
3.10 this的作用。
4.面向對象高級
4.1 面向對象基本思想(繼承);
4.2 繼承的作用;
4.3 繼承的語法特點;
4.4 super的使用方法;
4.5 面向對象基本思想(多態);
4.6 對象的向上轉型和鄉下轉型;
4.7 final關鍵子的作用;
4.8 抽象類和接口的定義方法;
4.9 抽象類和接口在面向對象編程當中的地位和意義;
4.10 Java當中異常的定義;
4.11 異常的分類以及各自的特點;
4.12 try...catch...finally結構的使用方法;
4.13 throw和throws的使用方法;
4.14 自定義異常的使用方法;
4.15 內部類的定義方法;
4.16 匿名內部類的定義方法;
4.17 內部類的常見使用方法;
5.線程
5.1 線程的基本定義;
5.2 在Java當中實現線程的兩種方法;
5.3 線程運行狀態介紹(準備,運行,阻塞,死亡);
5.4 線程間通信的方法;
5.5 線程同步;
5.6 線程死鎖。
6.IO
6.1 IO基本概念;
6.2 輸入流和輸出流的作用;
6.3 Java當中IO流的分類方法;
6.4 常見IO類的使用方法。
7.常見類庫
7.1 類集框架;
7.2 日期相關類庫的使用方法。
b) 設計模式:由于在Android系統的框架層當中,使用了大量的設計模式,如果沒有這個方面的知識,對于Android的理解就會大打折扣。設計模式的種 類非常之多,一個一個的全部掌握,是不現實的,必須首先掌握面向對象的基礎設計原則,有了這些基礎原則的支持,就可以舉一反三。這部分內容可以在 《Effective Java》和《Agile.Software.Development:Principles,Patterns.and.Practices》這兩本書 中找到。
2.Linux基礎知識:
大 家都知道,Android系統的基礎是Linux操作系統。在開發過程當中,我們也需要使用到一些Linux命令。所以說一些Linux的基礎知識是必須 的(話說現在的程序員,不懂Linux都不好意思跟人家打招呼),推薦大家看看《鳥哥的私房菜》這本書,寫的相當不錯;
3.數據庫基礎知識
這個比較簡單,就是一個增刪改查的數據庫操作,可以看一下這本書:《SQL編程練習與解答》
4.網絡協議
至少需要學習兩種基礎的協議,HTTP協議與Socket協議;
5.Android基礎知識
有了以上的鋪墊,再來看Android,是不是覺得輕松了很多呢?至于基礎知識的學習順序,最好的方法就是按照Android SDK幫助文檔當中的Dev Guide里面的順序。
6.服務器端開發知識:
由于很多Android應用程序都需要服務器端的支持,所以掌握一些服務器端開發知識還是非常有必要的。至于選擇哪一種服務器端知識進行學習,就比較麻煩了,因為技術的種類實在是太多了:
a)Java EE:
就 是上面郵件當中所提到的SSH—Struts+Spring+Hibernate。這種技術的優點的功能完整、強大,已經使用了很多年,而且既然大家已經 非常熟悉Java了,那么學習SSH看起來也順理成章。但是使用這種技術開發服務器端程序,非常麻煩。即使是一些簡單的功能,也可能需要大量的代碼和配置 文件來實現;
b)PHP:
簡單易學,開發快速。但是我們需要多學一種語言,是否得不償失,就要大家自己判斷了;
c).NET:
這項技術的特點和Java EE差不多,但是要想掌握.NET,則需要掌握c#,也是個麻煩的事情;
d)ruby on rails:
這是我個人最喜歡的服務器端技術,簡潔,優雅,寥寥幾行代碼,就可以實現很復雜的功能,但是這需要Ruby語言知識作為基礎;
至于選擇哪一種技術,就看大家自己的判斷了。
要成為一個專業的Android開發者,以上的這些知識都必不可少。看起來好像很多,多的可怕。所以還是那句話--“耐心,耐心很重要”。