年末咯,寫個總結

項目:

這一年,寫了3個項目,全是o2o的app,1個外包,2個本身公司項目. 技術上來講,沒有多少難點,但仍是碰到過一些疑難雜症. 原本有個小夥伴,年中的時候第一個項目作完被ko了,而後就成獨苗咯(\_/)java

學習到的東西:

1.mvp 2.rxjava 3.retrofit 4.接觸了幾個設計模式:策略,單例,組合,builder,工廠,抽象工廠,適配器,裝飾. 代碼開始考慮使用什麼樣的設計模式去抽取封裝. 5.一些控件開源庫(感受沒什麼意義). 6.經過ViewDragHelper對自定義控件有了基本的認識. 7.開始注重性能優化,代碼的規範,美觀. 8.fragment的大量使用,對fragment的一些操做和處理. 9.年中的時候開始翻看源碼,知道了不少問題的原由. 10.開始想要將碰到的問題,學習的東西記錄下來. 11.再也不隨便的去使用別人的開源庫,開始考慮性能,大小,穩定性,實用性. 12.本身折騰了幾個bug一堆,有待優化的控件- -. 13.開始使用5.0的新控件,Recyclerview從最開始的摸索使用,到如今的輕車熟路.web

看的書:

<Android源碼設計>
<Android開發藝術探索>

碰到的問題:

1.華爲手機設置透明狀態欄(emui3.1不起做用)

公司沒有測試機,一直用本身的,而我當時的手機是華爲4a(便宜貨) 發如今style裏面設置colorPrimary,colorPrimaryDark不起做用 想要出沉浸效果只能設置全屏模式 而後就碰到了第2個坑.設計模式

2.在全屏模式下,軟鍵盤彈出webview沒法上推形成遮擋,這個bug當初折騰了好久.

緣由是在全屏模式下,軟鍵盤彈出不會觸發onSizeChanged().
怎麼解決,個人建議仍是不要設置windowTranslucentStatus,會有不少問題
若是實在要這樣設置
AndroidBug5497Workaround,能夠搜一下這個類.
部分須要全屏的頁面,好比啓動頁,能夠用代碼設置window.
複製代碼

3.application類保存全局變量.

這個坑碰到的比較早,是app上線後,經過統計發現的. 緣由是,app在後臺時會被殺掉,內存不足會回收一些對象,回到前臺時會重啓,保存的一些靜態變量就被初始化了.也就不存在保存一說了. 共享的數據推薦shareprface保存,或者存到磁盤上. 當前頁面的數據徹底能夠用bundle保存.性能優化

4.RecyclerView的增刪改操做

因爲RecyclerView自帶沒有點擊事件,因此本身就寫接口實現,可是會有個問題,就是bindviewholder裏面的position是不許確的,應該使用ViewHolder的getLayoutPosition方法來獲取item的角標.這個在源碼裏面有解釋.bash

5 一些內存泄漏的坑

有點多.....說個比較煩的,InputMethodManager引發的內存泄漏,這個是系統級的bug.但leakcanary工具老是提示,然而這個泄漏其實沒什麼影響,看了內存監測,回收徹底正常.架構

還有不少坑,就是使用開源庫碰到的了...

我想說,若是你本身都沒測試好,就不要把東西傳上去<推薦>別人使用.即便傳上去了也應該提醒一下待完善嘛.- -app

6 本身曾經的項目

最近開始迭代好久之前公司就丟在一邊的一個項目 感到絕望- -.還好,看得懂,不算很毒.就是封裝的太差了.有得忙了 想想,之後再看本身如今寫的項目,是否是仍是這個感受呢.哈哈工具

糾結的地方

一我的開發有時候仍是有心無力. 簡單的非體力代碼會浪費時間.沒時間去學習新技術. 技術徹底自學,效率低. 對於app架構的設計,封裝,經驗不足.邊寫邊改. copy過多的後遺症,不少時候即便知道,也仍是得去搜一下copy代碼.組件化

新年的學習目標

c艹,ndk,源碼.把2本書啃完.組件化,插件化 計劃趕不上變化,學到的東西可能會更多吧.- -性能

相關文章
相關標籤/搜索