《2015最新Android基礎入門教學》完結散花~


引言:

從六月底就開始寫這套教程,歷時將近五個多月,今天終於寫完了,全套教程正文部分148篇, 十大章,從基本UI控製到四大組件,Intent,Fragment,事件處理,數據存儲,網絡編程,繪圖與動畫, 多媒體,系統服務等都進行了詳細的解說!程式碼都是在Android Studio上進行寫的,全文 採用Markdown,行文結構清晰,也結合了實際開發中一些常見的問題進行了剖析...由於個人能力的局限, 雖然竭盡全力,但難免還有一些錯誤紕漏,望讀者海涵指出,萬分感激!在寫這套教材的過程中, 感觸良多,藉著完結散花這最後一節一吐而快1.gif,也算是暫時告別自己博客生涯的一筆吧... 一吐而快~


1.此套教程的由來

記得那是在五月份的某一天晚上,剛和舍友打完擼啊擼,玩起手機來。不經意的我加了w3c鳥巢的 公眾號,然後看了下推送過來的文章,感覺有點意思,於是乎就到度娘上搜了下"w3c鳥巢"。發現有 個php中文網的欄目,然後裡面的教程大部分都是Web類別的基礎教程,而我看到了行動端的教程,上面 有著"學習Android"!這樣一個教學2.jpg,作為一個搞Android的,依照故事情節,我一定會馬上 去點開這個鏈接,然後發生點什麼事吧...然而,我並沒有點...所以故事到這裡就結束了,哈哈... 當然,最後還是點了,不過在這個期間和舍友下去喝了碗糖水而已~因為年代久遠,但是教程裡的內 容我都已忘記,但我現在還記得,在我的櫃子底有一本《Android瘋狂講義》,大學買的第一本 程式設計書,哈哈,可惜看了100來頁我已經放棄了,一本中文版的API文檔哈...也就是因為這本書,才 會小豬Android入門之路的專欄,當時抱著試一試的心情,加了w3c大師姐的微信,然後問她需不需 要一個寫Android基礎教程的,接著把小豬入門之路的連結發給他了,然後大師姐貌似非常的高興, 然後又問賣不賣版權之類的,賣版權3.jpg?那不是有錢收咩? 身為一個苦逼學生狗,寫點東西有錢收,想想還有點小激動呢,結果興奮了一晚上,腦子裡想了 很多...後來也不知道自己是怎麼想的,就跟FK(w3c鳥巢的站長)聊了下, 然後就決定在w3c鳥巢的php中文網上寫一套Android的基礎教程,免費,嗯,沒錯,不收一分錢, 前提是教程不用於商業用途,原因可能是被FK的分享的精神所渲染吧,也可能是自己真的想去寫 一套Android教程吧,大部分大牛沒時間或不屑於去寫基礎入門教程,那就讓我這個渣渣來寫 吧!為後面的初學者鋪路也好嘛~

接下來就是用百度腦圖來構思入門系列要講解的內容,學了下Markdown語法,然後就開搞,一開始 是不想在coder-pig上寫的,畢竟上面有很多太監了的教學。然後開了個小號,打算在上面寫這套 新教程,但是訪問量卻慘不忍睹,假如你是一個寫博客的,看到自己花了很多時間寫出來的東西, 卻沒人看的時候,心裡一定不舒服是吧...後來還是默默地搬回coder-pig上,然後把第一章寫 完,也開始在w3c鳥巢上發布了!接著每天就開始下面這種一成不變的枯燥的生活: 每天上班,一有時間就構思今天寫什麼知識點,寫個什麼樣有趣的例子,然後晚上5點半下班後, 去吃個飯,然後就回來埋頭苦寫,每天晚上基本上都是我鎖門的,通常十點半左右走吧,記得 最晚一次寫得太嗨沒注意時間寫到12點半,寫完看了下時間,臥槽,十二點半! ! ! 4.gif

我嚇得我趕緊收拾東西,拔腿就跑,因為園區這邊好像是12點就關後門的,一到那裡發現門是關 著的,心理頓時涼了一大半,媽蛋,難道今晚真的要睡公司麼...後來走進一看才發現門是虛掩的, 並沒鎖,最後還是順利地回到了宿舍...週六日一般也沒什麼節目,都是回公司碼字,偶爾 天氣好就去跟別人打打羽毛球,大部分時間還是花在碼字上,就這樣堅持了五個多月,這套教程 也總算完結了~

5.gif此刻的心情,有點小高興,也有點小激動,但更多的卻是一種解脫,總算寫完了~~~ 為何解脫,不急,還請聽我娓娓道來...


#2.扒一扒我的一些情況


不用到群裡問豬神在那裡高就,月薪多少,做我徒弟之類的話了,現在就扒一扒自己的一些情況吧! 今年的應屆畢業生(15屆),學校是北京理工大學珠海學院(北理珠),目前在南方軟體園這邊工作,是 一枚Android實習生,月薪也只有3K,五險一金什麼鬼都沒有!嗯,你沒看錯,我是3K實習生,或許你會覺得我在開玩笑,但這就是事實,因為自己大學時候的任性,我現在還有 兩門科目沒有過:高數上和下,所以還沒拿到畢業證...很失望是吧,還以為寫這套教材的是哪位 大牛,結果是一個實習生麼,哈哈~

嗯,說下自己的當前的Android技術水平吧:

中下,或者說中下也達不到,可以單獨完成小型的專案!但是架構什麼的,屎一比,根本不考慮 復用之類的,可以說是任意拼湊起來的垃圾,很多新興起的技術,聽過但是沒有花時間去研究...

接著說說自己的工作經歷吧:

2015.2

學校春節招聘會,找的第一份實習,在拱北跨境工業區那邊,一家外包公司,說是公司 不如說是工作室,加起來就那麼7個人,後來還跑了個HR。在這個公司待了一個來月,收穫就是: 學會了去看官方的API文檔,而非啃李剛;學會了改Hosts;知道了Fragment的用法; 寫了華仔天地(劉德華粉絲俱樂部APP)的UI;各種打雜; 他們有一套自己的東西,其實就是將一些常用到的功能丟到一個Jar包裡,比如圖像異步加載, 圖片大小的動態計算等...要什麼功能問後面的,沒錯,沒文件...所有的APP都是那個套路, 可能外包公司都是這樣吧,只在乎結果而不在乎過程,另外最讓我接受不了的是測試, 叫我和美工在那裡劃屏,只要程序不crash就好了,這就叫測試6.jpg...於是乎,我離開了這家公司,此時我實習2.8k,轉正3.2k!

2015.4

接著我又找了另一份工作,在清華科技園那邊,這就不是一家外包公司了,他們主要是 做安防和智慧家居類的,氛圍還是不錯的,偶爾會有技術問題的撕比,週五下午還有技術交流, 而且幫我配了個新的電腦和顯示器,感覺在這裡待肯定會很嗨皮!第一個月看看文件什麼的, 看看要接手的專案什麼的,小日子還是過得挺滋潤的,可是好景不長,做了3年的那個老員工要走了! 他手上的兩個項目都丟給了我,而且我還要開始搞另一個新的項目,這沒什麼,勉強強還可以 扛下來,但是那兩個接手的專案有個要改,而且要出版本,我連程式碼都還來不及熟悉...怎麼玩 得過來啊,自己做不過來,又不想耗時間,到時期限到了我什麼都沒搞出來,這樣還拖累了別人! 記得想辭職前的那週過得非常的壓抑,機緣巧合,好像是周三的下午吧,收到了現在公司HR打來 的電話,然後和現在的經理電話面試了下,問了一些Android基礎的東西,聊得還蠻嗨的,然後約 個時間見見面,然後週五就來面試了,再接著聊了一下現在公司的一些狀況,第一感覺公司 環境還可以吧,位置都比較寬敞,然後跟他說了下我還沒拿到畢業證的事,能不能轉正, 可能是他當時口爽,說沒什麼跟人事那邊說下就好...然而我在這裡蹲半年了,還是實習... 然後週一回公司提交了辭職申請,然後離開了第二家公司,在這個公司的一個月,擴展了一下 自己的視野,知道了NDK和影片編解碼這些東西~此時我試用3.8k,轉正4.2k!

2015.5

嗯,辭去第二間公司的工作後,在學校嗨了一個星期,隨手把自己的畢設給弄 完了,被迫分割成兩個應用的畢設:海綿錶表和一起啪啪啪,現在看來那兩個自己寫出來的東西, 無法直視,後來把畢設​​賣了,200塊... 然後週一的時候就來到了現在的這家公司,又是接手項目,原來這裡的那個Android開發的大牛 要跳到魅族去,第一次感覺到大牛的氣息,假如他並沒有走而是繼續呆著多好呢? 或許我此時又會是另一個不同的結局了是吧~從SVN過渡到Git,從圖形化介面過渡到命令列; 知道了註解,RxJava,okhttp,github,多通道打包等等,愉快地相處了一周後,大牛走了, 接下來就是我自己看專案了,感覺就像來到一個新大陸一樣,很多東西我以前都沒見過, 就這樣嗨了將近一個月,公司招到了另一名Android開發的,一開始聽說是三年工作經驗, 感覺有人帶我飛了,然而事與願違,在他身上我並沒有感覺到一股大牛的氣息,感覺可能是在 這個行業待了三年吧,水準很一般,和自己比的話可能業務經驗多一點吧,跟他討論md他聽都 沒聽過,Android Studio也不知道,其他的更不用說,記得有一次問他一個簡單的控制怎麼 自定義,他的回答是:網路找下改改就能用,我想問的是實現的思路,得到回答是:知道怎麼用就好... 嗯,好吧!三年嘛,專案一定是他來接手的啦,而經理丟給了我另外一個項目, 一個無人機上綁手機測量基地台天線角度等訊息,然後透過wifi顯示到地面上的另一台手機上, 手機本身資料收集和資料傳輸到沒什麼,困難是串列通訊(FTDI)的東西,手機 透過OTG線連單晶片,完成指令收發,看著API文檔擼了一個星期,連個最簡單的Demo都寫不出來 有發沒收...同樣的情況又持續了一個星期,好吧,寫不出東西的感覺真的很不爽,後來沒辦法, 只能反編譯別人的apk了,花了兩天時間把別人apk裡的程式碼抽取出最關鍵的部分,從6000多行 的程式碼變成500多行的程式碼,看到單晶片上的收發訊號燈閃爍,還蠻有成就感的!可惜好景不長經理說要加個即時影片播放的,我真是....這玩意我都沒搞過,怎麼玩,於是到 Github上找了,幾個開源的視訊直播項目,後來還是找了WifiCarema作為研究項目,然後因為 h264庫編譯的問題糾結了差不多兩個月,結果還是沒有解決,結果專案外包給了北京那邊的人 做,嗯,我的第一個專案就這樣閹割了...接著做了一個很簡單的小東西,再接著就到現在 就是一直在追蹤解決websocket的問題了~我司推送並不是用的第三方,而是自己用socketio 搭建的一個推送平台,用socketio的原因是三個平台都可以用一套嘛,iOS,Android,還有 web端,然後出現了漏掉報文或收不到位置更新的問題,到現在還沒找到問題發生的原因, 連問題都重現不了,我們這邊一直測都沒問題,一到客戶手上就各種問題... 現在還在糾結這個問題中...來這裡半年了,還是實習生,實習薪水3k,畢業證起碼要明年六月才能 拿到,應該沒得轉正了,唉..

嗯,上面就是我今年到現在的一些情況,前段時間去追夢網絡面試,和麵試官談了談自己 目前的一些情況,他說感覺我走了野路子,很多東西都走偏了,然後跟我說畢業這一年 很關鍵,以後成型了就難改了,然後又談了一些架構的東西,嗯,第一次那麼想進一家公司, 即使實習兩個月也好,嗯,很遺憾,結果並沒有拿到offer,不過也很感謝全齊大神給自己 上了一堂課,總算知道自己接下來要去學點什麼~然後又面了兩家,沒什麼感覺,不是自己 嚮往的類型,最後投了一波魅族實習生,哈哈,連面試的機會都沒有,這是第一次,估計 HR連履歷都沒看到吧~7.gif以上就是我的一些個人狀況的描述了,我真的是只有3K的實習狗,所以群裡各位10k的 大老爺們,別逢年過節就叫我這個窮比發紅包了...8.jpg


3.一些自學心得以及資源分享

怎麼學Android,這可能是初學者問得最多的問題了,透過上面你也知道了小豬有多屎, 所以下面這些都是鄙對於自學的一些淺顯的看法而已,不喜請噴~

#1)看書

入門推薦的書

  • 第一行程式碼》:這本就不用說啦,郭霖大神寫的書,入門必備
  • Android群英傳》:這本是醫生(徐宜生)寫的,嘿嘿,雙11買的,今天剛收到, 翻了下,感覺內容還蠻簡單,適合看完第一本書,或是會點Android的~

可能有的朋友會說,還有李剛Android瘋狂講義嗔...嗯,買來當字典查也可以, 但感覺看上面兩本會讓你更快入門,另外,在看第一行程式碼的時候,你也可以配合 著小豬寫的基礎入門教學一同服用,效果更佳~

進階推薦的書

#也是接下來自己想入手的幾本書:

  • Android源碼設計模式解析與實戰》: 何紅輝(Simple哥),關懷民(愛哥)兩人的大作,既可以學 習得設計模式,也可以體會Android中蘊含的一些設計思想!

  • Android開發藝術探索》:任玉剛,著重於Android知識的體系化與系統工作機制的分析

  • 深入解析Android 5.0系統 》:剖析了最新Android 5.0 系統主要框架的原理和具體實現~

上述幾本書我都還沒摸過(還沒入手),都是廣受好評的幾本書~這裡也推薦下!

2)看影片

網路上關於Android的影片教學有很多,這裡分享下基神力薦的黑馬教學吧:

黑馬28期Android全套影片無加密完整版:密碼:h7jz

52期不加密版:密碼:zve8

當然下面這些影片學習網站也很不錯,也推薦下

慕課網

極客學院

麥子學院

#

3)看別人的技術部落格

4)高品質Android社群

開源中國

—— OsChina

    23code
  • —— android經典開源程式碼分享
  • App開發者
  • —— 分享Android/IOS/Swift開發和網路內容
  • JavaApk.com
  • —— 安卓demo聚集地,部分原始碼需購買VIP
  • DevStore
  • —— 各種Demo,以及第三方服務
  • 5)官方學習網站/Wiki
  • cAndroid Developer

## Android Developer(無梯子)

Android Training 中文版

#######Material Design 中文版############ Android Weekly 中文版############極客學院Wiki###############6)代碼/專案下載###############################################################嗯,我大部分時間都會選擇到Github上面找,有很多開源的第三方,下面這個務必Star:#########Android 開源專案分類總結#########然後筆者也分享下以前在某寶花了50多塊買的一些代碼吧:#########5000套Android源碼###  密碼:6we6###3175套iOS源碼### 密碼:53v9 ######上面的這套程式碼很多都是重複的,而且大部分都是基於Eclipse,涵括的還是比較廣的,可以一下! #########7)梯子工具#########嗯,假如你不想經常改hosts或不想買vpn,但想用Google的話,那麼你可以使用藍燈(Lantern) ~ 自己搜尋"Lantern"下載吧~###

8)一些其他的碎念:

嗯,上面的資源大部分來​​自於:Android學習資源網站大全,請務必Star! ! !後續如果 有什麼新的資源都會在上面更新,也歡迎大家share自己的一些收藏,上面的內容是小豬 群組裡的第一大手-基神所寫,當然還有B神和曹神,街神等,這裡非常感謝各位一直以來對我的 一些指導以及幫助~9.gif

不知道你看到上面的資源是不是,收藏收藏,買買買,下下下~

我想說的是,收藏了不去看,只是一個Url而已;下載了不去看,只是一堆數據而已; 買了書不去看,也只是一沓紙!不要讓自己只是看起來很忙、很努力的樣子, 裝比給誰看?學到手的東西才是自己的,很喜歡這樣一句話: "技術之路最公平也最殘酷的原因是:沒有捷徑,需要日積月累的積累,以及對技術持久的熱情。" 還記得很久之前看的錘子科技的射角設計總監羅子雄仔tedx上演講的: "如何成為優秀的設計師"說過的這麼一段話:格拉德威爾在《異類》一書中指出:"人們眼中的天才,並非卓越非凡,而是付出了持續不斷的努力, 一萬小時的錘鍊是任何人從平凡變成超凡的必要條件。 "一萬小時,也就是說你每天工作8小時的時間, 每週工作5天,你需要5年。你無需天才,無需智商過人,無需三頭六臂,無需頭上長角,你只需要持 續的、堅持的努力,有正確的方法,就能夠在設計領域,一個專業中獨當一面。 儘管他講的是設計,但是很多東西都是相通的,嘿嘿,無情地上了一大碗雞湯~ 總結下自學,無非:多看書,看博客,做項目,看源碼,不斷的總結反思,讓自己所學的東西所學的東西結構化!


4)一些答案

以下是一些讀者常問到的問題,下面統一答覆下:

1 .我是以前學XX的或不是搞程式設計的,我想來學Android,能學好不?之類的問題! 答:前陣子在醫生(徐宜生)的新浪微博看到,一位65歲的大爺,到他的公司向他請問 Android Studio,看到這裡,你覺得上面的問題是問題嗎?

2.XXX報錯了?怎麼辦之類的問題答:這種最頻繁,其實很多都可以在度娘或穀哥上找到答案,這麼多人搞Android就 你一個人有出現過這樣的問題嗎?或是到Stackoverflow提問等,先自己搜過思考過,再去 問別人! ! !而且別人也沒有回答你的義務,別搞得好像別人不回答你的問題就很什麼, 然後就惡言相向!注意問問題的技巧,整理語言,發log,出錯位置代碼等!

3.想加小豬當好友,為什麼我拒絕了? 答:我不知道你在哪裡看到了我的QQ,然後看了我寫的東西,就迫切的想加我為好友, 我想問,加了,然後呢?問問題更方便了?剛開始加我的我都會家,通常都是問問題, 我每次都會很有耐心的解答,然後就開始依賴我了,一出問題就找我...一個兩個沒什麼, 慢慢地人越來越多,我每天的時間都基本上用在回答問題上了,結果自己一天下來什麼都沒做成... 不是說小豬高冷或看不起初學者之類的,我也有自己的事要做,希望各位可以體諒下! 有問題,可以到群組問,管理們都是很熱心的,當然,前提是你的問題別一百度就可以 找到的...別做伸手黨! ! !

4.基礎入門教學寫完,那麼什麼時候開始寫進階教學? 答:大家對基礎入門教學的回饋都覺得寫的不錯,也受到了很多的好評,表揚,很感謝~ 至於進階教程,在寫基礎入門的過程中曾經簡單的構思過,用百度腦圖列了下大綱:

10.png

當時想著寫完入門休息一個月,然後就開始寫進階系列的,大概一個月一個專題。 不過,進階部分可能不會繼續寫,可能你會不解,為什麼不寫呢?坦白說下自己的一些困難吧:

首先是:花在寫教程上的時間,一篇簡單的教程至少需要花費我2個多小時的時間,儘管內容 比較簡單,而複雜一點的,我可能需要花2,3天!寫教程不同於寫筆記,要描述清晰, 寫例子,貼上運行效果等,筆記自己看懂就好,而教程你要讓別人也看懂...

接著是:自己的進步緩慢,寫完這套基本教程,和寫之前的我相比,並沒有什麼進步; 依舊還是以前的水平...每次去面試來來去去都是說那幾個破舊的項目,一點意思都沒有, 我想花點時間做點什麼~想學的東西有太多太多,比如,從5月份我就開始接觸rxjava,然後 現在爛大街了,我還只會最簡單的玩法~最後是:寫教程不會給我帶來任何的收入,上面也說了,我是一個3K實習狗,而寫這套 教程是沒有任何收入的,而且每個月偶爾還要給幾塊錢給七牛,因為圖都是用的七牛的 圖床,萬惡的爬蟲網站,把我的文章都爬過去了,然後還不註明出處,然後拼命下我的圖... 這是10月份到11月份的下載流量! 11.png

我不是富二代,記得之前也說過,我爸得了憂鬱症,沒工作能力的事,我媽在老家陪我爸, 也就是沒收入來源,所幸的是我爸沒事撐過來了,而且我已經不用每年再去支付2W的學費; 儘管每月3k的工資可以維持我的生活,但是身為家裡的長子,總得扛起家裡的大樑吧! 畢竟還有在讀大學的弟弟和妹妹,假如我能有畢業證,現在的情況可能好一點吧! 算了,過去的事就過去了,更重要的是以後!我也想每天閒著研究新東西,然後寫寫 教程啊,但是理想總是很美好的,但現實往往很殘酷,我也要活下去。 另外說到部落格專家這個銜頭,很多朋友喜歡拿我這個來黑我,其實沒有什麼大用, 每個月原創超過10篇就能收到一本書而已,大部分是C幣商城裡的一些舊書...

5.小豬接下來的想做點什麼? 答:來一次說走就走的旅行,嗨一個月,然後等過年! 好吧,我也想,可惜兜里沒錢,接下來的日子嘛,想把公司的專案琢磨透,修下bug,然後學一些 其他的東西,接著寫點小玩意玩玩,存錢買機械鍵盤(ikbc G104),複習下高數準備一月份 補考等等,然後過完年,可能跑深圳那邊找找機會吧~可能偶爾會更新那麼一兩篇文章吧, 不過不要期望太大,進階系列也不說不寫,只是暫時不會寫,等找到一份穩定的工作,有了 一定經濟能力,再開始寫吧~


致謝:

嗯,好吧,嘮叨地終於把自己肚子裡的東西都吐出來了~

12.gif

按照一般的套路,一定要說一堆,謝謝ccav之類的吧,嗯! 謝謝w3c鳥巢的站長FK對每篇文章的認真排版,以及小豬秘密基地裡的基神,B神,街神,曹神等的 技術支持,還有一直默默支持小豬的各位朋友,在這裡真摯的說一聲感謝~ 好了,就說這麼多吧,謹以此文紀念我將近兩年的csdn博客生涯吧~

13.gif完結散花~   是終點也是起點

to be continued... 待續