Android 學習之路

来源:http://www.cnblogs.com/guoxh/archive/2016/03/13/5272981.html
-Advertisement-
Play Games

轉載:http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/ 一路走來很不容易,剛好知乎上被人邀請回答如何自學android編程, 就借這個機會在知乎上記錄一路走來的歷程,很勵志,希望能給那些正在或準備走編程行業的人一些


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進行講解的。

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

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

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

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

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

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

開發環境

目前強烈推薦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多渠道打包

FQ

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

雲梯VPN

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

AndroidDevTools

Google Android官方教程

Android Training Course in Chinese

視頻推薦

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

Android視頻學習推薦

Android基礎

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

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

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

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

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

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

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

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

Android中級

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

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

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

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

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

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

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

Android非同步操作的另一種方法

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

Android進階

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

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

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

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

Android設計

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

Android相容庫

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

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

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

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

如果需要相容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官方推出的一個開源的網路通信庫,它能使網路通信更簡單,更快速。

ActiveAndroid

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

Retrofit

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

Android-Universal-Image-Loader

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

Android開源項目分類彙總

非常全面的GitHub開源項目彙總,不需要重覆發明輪子,盡情遨游在開源世界里吧

作者:賢~樺


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Some Structure About CSS Layout Position,Layer[層次] Box Model Visual Formatting Model BFC[block formatting content],IFC[inline formatting content] Styl...
  • 仍記得剛來到公司的時候,老大跟我們說起原型鏈、閉包、MV*之類的東西,當時真的是一臉懵逼的樣子啊哈哈 在公司做前端開發也差不多四個月了,每一天感覺都是很忙碌,都是忙著寫業務代碼或者自己在學習新東西,總感覺很多知識點在這樣的狀態下,匆匆忙忙就略過了,自己並沒有真正理解掌握下來,還是要趁有時間還是把那些
  • jquery通過ajax方法獲取json數據不執行success回調方法
  • 原文地址:http://onevcat.com/2013/05/talk-about-warning/   一個有節操的程式員會在乎自己的代碼的警告,就像在乎飯碗邊上有隻死蟑螂那樣。 ——@onevcat 現在編譯器有時候會很吵,而編譯器給出的警告對開發者來說是很有用的信息。警告不會阻止繼續編譯和鏈
  • 先看效果: 京東商城底部菜單欄      新浪微博底部菜單欄   本次學習效果圖: 第一,主佈局文件(啟動頁main.xml,位於res/layout目錄下)代碼 第二,創建顯示此TabWidget的佈局tabmini.xml(位於res/layout目錄下) 第三,在drawable裡面創建一個s
  • 要實現分組列表這樣的效果:點擊ListView中的分組名稱,即展開此分組顯示其包含的項目。使用ExpandableList可以實現展開這樣的效果,如果對於列表中的每個可點擊的標題View需要更多的定製,而不是簡單的展開——例如點擊全選等,那麼可使用ListView嵌套GridView組合實現,Lis
  • # 代碼 項目剛創建的時候,只有一個js文件,index.android.js,我們將其簡化一下,代碼如下: import React, { AppRegistry, Component, Text} from 'react-native'; class Note extends Component
  • # 安裝要點: 1. 嚴格按照官方文檔:https://facebook.github.io/react-native/docs/android-setup.html2. 遇到問題首先在項目git issue里尋找答案。3. 模擬器:僅安裝genymotion模擬器,不需要嘗試谷歌自帶的,或微軟的模
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...