天天看點

Anddroid 學習之路

歡迎轉載,但請務必在明确位置注明出處!http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/

QQ交流群:入群理由請正确填寫我的GitHub賬号
* 383323653 (Android學習之路1群,已滿)
* 187252236 (Android學習之路2群)

不想加群的可以考慮加我的微信公衆賬号:googdev(AndroidDeveloper), 技術分享,絕對幹貨
           

這篇部落格背後的故事

一路走來很不容易,剛好知乎上被人邀請回答如何自學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有了更深的認識。

開發環境

  • Eclipse ADT

Google幫你內建了一個完整的Android開發環境,包含一個定制的Eclipse + ADT plugin,以及最新的SDK及源碼

  • IntelliJ IDEA

相比與Eclipse更推薦使用IDEA,以後可以無縫過渡到Android Studio

  • Android Studio

首先說明這個不适合新手們使用,但是你必須知道這是Google最新推出的Android開發工具,基于IDEA,編譯依賴Gradle,目前還沒有推出1.0的正式版,但是你依然可以業餘項目熟悉了解下,因為這也許是Android開發工具的未來

翻牆

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

雲梯VPN

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

AndroidDevTools

Google Android官方教程

Android Training Course in Chinese

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平台的設計規範,這裡有一系列關于Android Design的講解以及Google最新推出的Material Design中文翻譯版

  • Android 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
  • 更多我的消息: 關于我

Android微信公衆賬号

推薦大家關注我的微信公衆賬号AndroidDeveloper, 專注Android技術分享,保證絕對幹貨