這一年,寫了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
公司沒有測試機,一直用本身的,而我當時的手機是華爲4a(便宜貨) 發如今style裏面設置colorPrimary,colorPrimaryDark不起做用 想要出沉浸效果只能設置全屏模式 而後就碰到了第2個坑.設計模式
緣由是在全屏模式下,軟鍵盤彈出不會觸發onSizeChanged().
怎麼解決,個人建議仍是不要設置windowTranslucentStatus,會有不少問題
若是實在要這樣設置
AndroidBug5497Workaround,能夠搜一下這個類.
部分須要全屏的頁面,好比啓動頁,能夠用代碼設置window.
複製代碼
這個坑碰到的比較早,是app上線後,經過統計發現的. 緣由是,app在後臺時會被殺掉,內存不足會回收一些對象,回到前臺時會重啓,保存的一些靜態變量就被初始化了.也就不存在保存一說了. 共享的數據推薦shareprface保存,或者存到磁盤上. 當前頁面的數據徹底能夠用bundle保存.性能優化
因爲RecyclerView自帶沒有點擊事件,因此本身就寫接口實現,可是會有個問題,就是bindviewholder裏面的position是不許確的,應該使用ViewHolder的getLayoutPosition方法來獲取item的角標.這個在源碼裏面有解釋.bash
有點多.....說個比較煩的,InputMethodManager引發的內存泄漏,這個是系統級的bug.但leakcanary工具老是提示,然而這個泄漏其實沒什麼影響,看了內存監測,回收徹底正常.架構
我想說,若是你本身都沒測試好,就不要把東西傳上去<推薦>別人使用.即便傳上去了也應該提醒一下待完善嘛.- -app
最近開始迭代好久之前公司就丟在一邊的一個項目 感到絕望- -.還好,看得懂,不算很毒.就是封裝的太差了.有得忙了 想想,之後再看本身如今寫的項目,是否是仍是這個感受呢.哈哈工具
一我的開發有時候仍是有心無力. 簡單的非體力代碼會浪費時間.沒時間去學習新技術. 技術徹底自學,效率低. 對於app架構的設計,封裝,經驗不足.邊寫邊改. copy過多的後遺症,不少時候即便知道,也仍是得去搜一下copy代碼.組件化
c艹,ndk,源碼.把2本書啃完.組件化,插件化 計劃趕不上變化,學到的東西可能會更多吧.- -性能