GoodBye 2016,Welcome 2017|從入門到懵逼

學習

1、踏上Android學習之路

在大三的上學期我是有自學過c#的,現在想來估計是連門都沒入。我是一個辣雞二本學校的學生,周圍有在我看來還算牛x的人,當然大部分光從技術的角度來說,都不咋滴。剛開始學c#,寫了一個簡單的俄羅斯方塊之后就不知道該干啥了,又在假期里跟著網上找的培訓視頻寫了個什么家庭理財,就是本地連個sqlserver數據庫做一些增刪查改,然后拖拖控件。然后之后就不知道該干啥了……是的,我不知道之后我該去干啥了……在大三下學期學校有一門和Android開發有關的課,其實我身邊也有幾個學習Android的同學,于是便想借這個機會了解下Android,也是由此,我踏上了Android開發的學習之路。不過學校的這門課還是比較水的……我買了第一行代碼看,老師看到了還說這本書講的稍微深了一點……

剛開始的時候是從Java開始看的,同學推薦我看畢向東的Java教學視頻,我跟著看了大概半個多月,耐不住寂寞開始弄起了Android。當然了,在淘寶上花了30多塊買了黑馬培訓視頻看的。想起當時跟著視頻一行一行敲代碼……雖然進度非常慢,但是對于沒接觸過的人來說,視頻還是用來入門的不二之選。還記得當時看視頻有一個覺得非常難,就是簡單的新聞那個。當時對于我來說陌生的東西非常多,Json,ListView,HttpUrlConnection,Adapter……其實有的時候** 現階段感覺很難的東西,可能只是以后繼續學習的基礎 **。

之后有一天看到同學桌上有本《Android開發藝術探索》,翻了下目錄,覺得這書好厲害,講了很多原理一類的東西,于是入了一本,從此踏入Android不歸路。在看了一段時間的視頻之后,嫌看視頻太慢,之后自己開始嘗試自己寫一個能展示新聞的簡單demo。在完善了基本功能之后,嘗試將自己平時所看到的緩存之類的加入到其中,于是有了News。當然了News中的一部分參考了SimpleNews,News倉庫時間并不對,因為包名大小寫的問題我曾經刪過一次原倉庫。

2、一份實習

學校7月份實訓,也就是把我們丟到了一個地方在一個月內接觸js、mysql、spring、html之類的東西。最后感覺沒學到什么東西,因為時間的確有點短。在這一個月之內我嘗試投過幾家的實習,不過除了培訓其他的公司都沒有反饋,最后一家剛起步只有兩個IOS的初創公司看了我的簡歷并給我打了電話,當時感覺真是抓到了救命稻草。我去了之后,就是兩個IOS加上我一個Android,是的沒有搞后臺的,第一個項目是老板之前外包做的一個項目。兩年之前的代碼,一個兩年沒有維護過的代碼,沒有任何文檔說明,因為不是一個人寫的,代碼還有不同的字符編碼,總有一些注釋是亂碼。當然了,我覺得最最最最最關鍵的還是:

  • 我菜
  • 沒搞服務器代碼的大兄弟

那個項目用的是httpclient,以前的項目感覺很多用的都是這個,而且我也看到過用async-http的項目。該咋說呢,在我看書學Android的時候,httpclient就已經從源碼里刪除了,所以我一直沒怎么關注過。而且當時是很菜的,光看api都能把我看的慌的不行了。

當然了,列舉了這么多困難,還有一些沒列舉的,主要還是因為:

  • 我菜

其實當時老板也沒給我分配很多的任務,就讓我找接口然后寫個文檔給IOS的同事用,是的沒看服務器代碼的大兄弟,只能讓我去搞了。我在客戶端里找各種接口,我發現他所有的請求代碼都寫在Application里,通過Handler將各種請求結果傳回到原來的Activity、Fragment中,感覺還是挺神奇的。雖然了解過一點Android消息機制,但是并沒有像這樣實踐過。不過將請求寫在Application里這種做法我并不認同,各位也不要效仿,

在這期間,我認識到我自己有很多的不足,一點問題都能讓我折騰很久,可能一個新司機和一個不那么厲害的老司機之間的區別就是效率吧。所以我每天有空都會刷《Android開發藝術探索》,到后面有些東西看不懂了,我買了《Android群英傳》不過感覺群英傳相比于開發藝術探索,可能你看群英傳剛覺得有點意思的時候,就戛然而止了。《開發藝術探索》則不是,你會看到懷疑人生(夸張的說法)。

3、自己從零搭建的第一個項目

是的,沒錯,我的第一份實習工作,公司的項目是我從零開始搭建起來的。為什么公司的項目能讓我搭建呢?很簡單,剛開始做這個項目的時候,Android這邊只有我這一個人。那么我選用了哪些第三方來構建這個項目呢?

  • okhttp-utils

這個是鴻洋大神寫的okhttputils,原生OkhttpClient用起來還是比較麻煩的,而鴻洋大神寫的這個從調用方式上來看還是非常簡潔易用的。當然在用的過程中也碰到過一些坑:
表單請求在okhttputils內部是采用Map封裝的,有的需要你傳數組的時候,鍵就是重復的,只能添加一個參數進去,這點算是比較坑的,不過有辦法解決,答案我寫在了OkhttpUtils的一個issue里了:參數重名怎么辦

還有一些小坑我印象不是很深了,略過~

  • RxJava && RxAndroid && Lambda

我這個。。強行用了一波,不過現在還是感覺鏈式調用很爽。。。而且配合lambda寫的代碼看著也比較簡潔。可能RxJava結合Retrofit更加簡潔,但是我當時要看的東西的確挺多的,真的沒空再去了解Retrofit了,而且對于當時我的來說再去學習Retrofit,成本比較高,權衡之下就選擇了okhttp-utils。

  • MVP

在使用MVP的過程中思考了一下內存泄漏的問題,最后也得出了一個簡單的解決方案,思考過程寫在了這篇文中:Android內存泄漏淺析,其實說是思考過程,就是各種查資料,然后結合以前大學里學到的一些東西結合理解一下。不過我現在感覺我用的MVP可能只是最基本的使用方式,寫的類接口很多,雖然最終考慮抽取了BaseModel、BaseView和BaseActivity稍微簡化了一些,但是整個實現的過程中還是感覺有點累,寫的東西真多。不過說架構清晰,這點倒是可以承認,畢竟Model和View分離,互不感知。看google的mvp項目之后我一直有點懷疑我寫的是不是mvp。。這個留待我以后在思考。

  • 百分比布局

沒啥好說的,不過后來才知道鴻洋大神有個AutoLayout更好使。。

  • 黃油刀

并不是用反射實現,不用擔心性能問題,關鍵是有插件可以一鍵生成。。。不過關于是不是要用這個好像還是有些爭議的,各位可以自己權衡。

還有一些東西印象并不是很深,如果我覺得有補充的必要我會加上來的。

上面那些東西我也并不是一下子就都會用的,都是慢慢學習,自己在網上一點一點的找資料啃下來的。中間的困難現在都已不記得了,在從零搭建好了那個項目的框架之后,閑暇之余我開始復習Java,畢竟之前看視頻看的Java有些基礎不是很牢靠。于是我開始閱讀《Java編程思想》,并開了個Java回爐系列來記錄自己回爐Java的過程,不過現在我覺得我的一些理解可能是片面的,不正確的,但是這并不影響我繼續學習不是么。暫時的片面和不正確并不可怕,不斷的深入學習就可以了,我是這么想的。期間,我嘗試過自定義View不過說實話,這個東西只能作為一個學習的資料,也和小伙伴們討論過http協議,感覺到成長之路也是自己一步一步踏出來的。過去的一年都回顧的差不多了,再用幾個詞簡單的概括下:

  • 有進步
  • 入了門
  • 很懵逼

展望2017

2017,大學的最后一個學期,也是將要正式踏入社會的一年了,希望自己在最后的一個學期里好好磨練自己,也能找到一份滿意的工作。雖然環境不如以前了,但是還是得努力加油~

不努力一下,都不知道什么是絕望。
條條大路通羅馬,有的人就生在羅馬。

最后的毒雞湯是不是猝不及防,哈哈哈哈~

最后呢,自己還有非常多的不足,仍需努力提升自己~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,593評論 25 708
  • 窗前的花開了,時光在花瓣上凌波微步。天色黯淡下來,月光輕輕籠上窗紗。走到窗前,撩開夜的帷幕,靜靜擁抱月光下的一顆心...
    孔孟之鄉閱讀 209評論 0 2
  • 《沃頓商學院自我管理課》p205+207 練習:激發自我 很多人覺得自己沒有時間打理自己,或者他們覺得這樣做很可恥...
    婷婷0329閱讀 241評論 1 0
  • 世界很大,它不過是一個牢籠, 幸福很好,不是每個人都能夠把握。 人兒啊,為何你的心里滿是悲傷? 回聲片片,無垠的山...
    咻的一道光閱讀 334評論 0 0
  • @夏雨半支煙:買川投能源好過買國投電力,川投能源沒那么瘋狂擴張,資金充足,管理費用低。國投每年都會買火電站,賣火電...
    新興市場的小邏輯閱讀 115評論 0 0