android菜鳥學習之路

原文地址:http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/

一路走來很不容易,剛好知乎上被人邀請回答如何自學android編程, 就借這個機會在知乎上記錄一路走來的歷程,很勵志,希望能給那些正在或準備走編程行業的人一些正能量,內容有點長,感興趣的可以當做勵志小說閱讀吧。

收到一些朋友的微博私信,說能不能給Android新手們一些指導,我只能說指導談不上,畢竟我也很多東西正在學習中,與此同時一大學同學準備轉行Android,可以說是從頭開始,那麼我就姑且以一個過來人的身份給一些建議吧,只希望在學習的過程中能夠少走寫彎路吧。
硬件

電腦–推薦Mac

首先聲明我不是果粉,個人Windows,Linux,Mac OX系統均用過, 只能說Windows上面的開發工具簡直難以恭維,尤其命令行超級難用,而Linux自己必須得花不少時間在折騰中,更是不適合新手了,Max OS是我認爲迄今爲止最好用的系統,沒有之一, 所以如果你不差錢的話,強烈建議入手一臺Mac,推薦Pro系列, 當然它的價格確實比較昂貴,如果暫時入手有困難,推薦以後手頭寬裕的時候再入手吧,會帶給你質的體驗。(Google的工程師們都在用Mac,應該比較有說服力吧)

手機–推薦Nexus 5

做Android開發最難以忍受的就是那龜速的模擬器,強烈推薦入手我Google的Nexus系列,原生rom,性價比超高,有條件的推薦再入手一臺小米或三星之類的,不是因爲他們有多好用,而是因爲目前市場上這兩個品牌的手機份額最大,實際開發中可能需要進行適配與測試,總之你需要有臺Android手機。你可能還需要知道魅族手機有個SmartBar的東東,雖然我認爲確實很SB。最後你實在還是要用模擬器的話,那麼姑且就給你推薦一款比較快速的模擬器吧—-Genymotion, 具體的見我這篇博客一個強大的Android模擬器Genymotion
書籍

書不在多,適合你就好,其實市面上的書籍大部分都差不多,沒有本質的區別,所以書必要要有,但不推薦一次性買太多。這裏推薦幾本我認爲比較好的書籍,點擊可以直接購買。

第一行代碼

郭神的最新力作,郭神的博客很棒,書我也買了看了一部分,非常棒,適合新手,而且是針對Android 4.0進行講解的。

瘋狂Android講義第二版

當年我學習的時候就看的這本書,現在出了第二版了,這本書的優點是講的很細,代碼較多,你可以跟着代碼一步步敲,缺點就是篇幅太多,導致書太厚了,攜帶不方便,書中最後的幾個實例教程不是那麼好,不知道第二版更改沒。

Thinking In Java中文版

Thinking In Java是Java的經典書籍,這是一本值得反覆看的書籍,針對有一定Java基礎的人,可以說是學習Java語言必備的書籍。

Effective Java中文第二版

Effective Java是Java進階必備書籍,看後絕對會讓你對Java有了更深的認識。

補充:鑑於很多小夥伴讓推薦Java學習的初級睡覺,Thinking In Java確實是本好書,但好書一般都不是針對初學者的,所以如果你沒有任何編程經驗,那麼我來給你推薦幾本Java基礎書籍,就不提供購買鏈接了,大家自行搜索去購買。

《瘋狂Java講義》(李剛),《JAVA面向對象編程》(孫衛琴),《Java開發實戰經典》(李興華),《Core Java》

這幾本書都是針對初學者的,我都沒有看過,但是我自己稍微做了瞭解,最後,這些書買一本就夠了,然後配合視頻學習,小白入門不是夢。
開發環境

Android Studio

目前強烈推薦Android開發者使用,拋棄Eclipse擁抱未來吧!這是Google最新推出的Android開發工具,基於IDEA,編譯依賴Gradle,目前已經推出1.0正式版,這是Android開發工具的未來,所以身爲Android開發者有必要花點時間去學習使用它,親身經歷,自從使用它之後再也不想去碰Eclipse。

爲此我也推出了Android Studio的一些列學習教程,堪稱史上最詳細:

Android Studio系列教程一 —- 下載與安裝

Android Studio系列教程二 —- 基本設置與運行

Android Studio系列教程三 —- 快捷鍵

Android Studio系列教程四 —- Gradle基礎

Android Studio系列教程五–Gradle命令詳解與導入第三方包

Android Studio系列教程六–Gradle多渠道打包
翻牆

俗話說,不會翻牆的程序員不是好程序員,尤其最近Google各項服務被屏蔽,以上IDE的下載也就都需要翻牆,這裏推薦一個靠譜的VPN吧,支持多設備MAC, Windows, Android, iPhone等, 如果和小夥伴們一起合買的話每月只要幾塊錢,圈內的朋友們都在用,如果你通過下面鏈接購買的話,你和我的賬戶都會增加10元錢。

雲梯VPN

如果無論如何你都不想翻牆的話,這裏github上可以直接下載以上Android開發工具

AndroidDevTools
Google Android官方教程

Android Training Course in Chinese
視頻推薦

在這裏我必須強烈推薦新手們結合視頻學習,身爲過來人我的很清楚一開始入門很難,只是看書或者資料難以理解,而這時候結合視頻講解,加上自己的書籍與實戰,會起到事半功倍的效果。所以不要小看了視頻的作用,當然現階段的我完全不需要去看視頻,因爲視頻講解的有些慢,但是對於新手們的作用非常巨大。視頻學習有很多,但大都差不多,我也沒法推薦最好的給你,只是以我自己的角度覺得質量還不錯,推薦如下Android視頻學習。

Android視頻學習推薦
Android基礎

上面可能是一個比較全面系統的培訓教程,對於新手們可能對某些需要着重掌握的東西比較迷茫,於是整理下個人認爲新手們必須要掌握的知識點,順便也會附帶相應覺得不錯的講解博客地址。

兩分鐘徹底讓你明白Android Activity生命週期(圖文)!

Activity實際開發中使用頻率最高,這個必須要理解

Android四大基本組件介紹與生命週期

Android中的四大組件必須得知道,也是面試常問到的

ListView的基本使用與優化

ListView是所有控件中最常使用且對新手來說比較複雜的用法,各種Adapter的使用以及ListView的優化都是必須掌握的

Android系統用於Activity的標準Intent

Intent解決了Android中四大組件的通訊,非常有用,這篇博客收集整理了系統的標準Intent

Android 屏幕適配

介紹一些Android屏幕適配的基礎

Android中SQLite應用詳解

Android中的SQLite需要掌握,這篇博客很適合新手

Android Fragment完全解析

3.0之後新加的Fragment,必須要掌握,目前使用的場景也是越來越普遍了
Android中級

Android應用程序的生命週期

Android的應用程序的生命週期需要理解,面試也是經常會被問的

帶你一步步深入瞭解View

View做爲UI開發中最常用到的,必須要深入理解

Android Service完全解析

Service作爲Android四大組件之一,在每一個應用程序中都扮演着非常重要的角色

Android Gson

目前比較常用比較流行的數據格式就是json了,這篇博客教你如何使用Google Gson庫來進行json解析

Android 佈局優化

Android開發中經常會用到xml佈局,那麼佈局優化方面的知識更是需要掌握的了

Android中Intent傳遞對象的兩種方法(Serializable,Parcelable)

詳細講解了Android中Intent中如何傳遞對象

Android異步消息處理機制完全解析

Android開發中異步操作是經常使用的,必須理解掌握

Android AsyncTask完全解析

Android異步操作的另一種方法

Android Custom Loading

很早的一個小demo,教你如何做一個App的Loading動畫
Android進階

Android Gradle

Google官方Android新的構建系統,可以很方便的管理依賴、編譯打包等

Android 性能優化

一系列的性能調優教程,讓你的代碼以及App更暢通!

一個完整的開源項目–9GAG

一個開源客戶端,教你使用Studio、Gradle以及一些流行的開源庫快速開發一個不錯的Android客戶端

整理的Android開發資源

自己整理的一些Android開發資源,包括開發、工具、設計等,相信會對你有用的
Android設計

在開發一款Android App之前,你需要了解下Android平臺的設計規範,這裏有Google最新推出的Material Design中文翻譯版

Material Design

Android兼容庫

在瞭解了設計規範準備着手開發你的App時,你還需要考慮你的App支持的版本,如果是全新的App,從目前的市場份額來看,建議直接支持4.0+,雖然2.3的份額仍然有一部分,但是這部分真正用來使用App的人又能有多少呢。當然如果你的公司必須要求支持2.x的版本,那麼也不用擔心,下面整理了幾個滿足你適配的一些兼容庫:

ActionBarSherlock

大神JakeWharton的一個ActionBar的兼容庫,支持在2.x版本使用ActionBar

ActionBar Compact

在這之前使用ActionBar基本都會使用上述JakeWharton的兼容庫,但是目前Google有了自己的一套ActionBar兼容庫,推薦使用ActionBar Compact,具體介紹及使用方法詳見我的這篇博客

NineOldAndroids

Android 3.0之前開放的一些新的動畫api–Property Animation,大神JakeWharton的又一大作,可以讓你在2.x版本的sdk可以使用屬性動畫.

Android Support V4

如果需要兼容2.x的版本,在使用如下類的時候你需要使用v4包下的,如Fragment, FragmentManager, FragmentActivity, FragmentPagerAdapter, CursorLoader, LoaderManager, AsyncTaskLoader

當然v4包下面除了以上還有一些新的控件你必須知道

Navigation Drawer(導航抽屜)

在這之前在Android上實現一個抽屜導航你可能會用到SlidingMenu開源庫,如今你可以使用官方的DrawerLayout控件很容易實現

SlidingPaneLayout

SlidingPaneLayout是V4包中新添加的組件,可以實現兩列面板的切換, 具體使用與效果見博客鏈接

SwipeRefreshLayout

SwipeRefreshLayout是Google在support v4 19.1版本的library更新的一個下拉刷新組件,使用起來很方便,可以很方便的實現Google Now的效果
Android開發必知的一些開源庫

說到開源庫就不得不提GitHub,只能說是目前最活躍的開源社區,不知道的趕緊去註冊個賬號使用起來,絕對是你快速提升技術的利器。
Volley

App開發中免不了要和服務端進行交互,而volley是Google官方推出的一個開源的網絡通信庫,它能使網絡通信更簡單,更快速。

Volley完全解析

Android volley sample

ActiveAndroid

ActiveAndroid算是一個輕量級的ORM(對象關係映射(Object Relation Mapping))框架,簡單地通過如save()和delete()等方法來做到增刪改查等操作。

ActiveAndroid–Android輕量級ORM框架

Retrofit

Retrofit和Java領域的ORM概念類似, ORM把結構化數據轉換爲Java對象,而Retrofit 把REST API返回的數據轉化爲Java對象方便操作。同時還封裝了網絡代碼的調用。

Retrofit – Java(Android) 的REST 接口封裝類庫

Android-Universal-Image-Loader

Android-Universal-Image-Loader是一個強大的開源圖片異步加載庫,該項目的目的是提供一個可重複使用的儀器爲異步圖像加載,緩存和顯示。

Android-Universal-Image-Loader

Android開源項目分類彙總

非常全面的GitHub開源項目彙總,不需要重複發明輪子,盡情遨遊在開源世界裏吧
關於我

非科班轉投編程,Android開發者,Google腦殘粉,熱愛開源,分享Android方面的知識、技術、見聞

GitHub: stormzhang

Weibo: googdev

知乎: stormzhang

更多我的消息: 關於我
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章