從我入職新公司以來我就開始接手了這個項目相傳之前就搞了半年了火脉,然而直到上周末10.13才終于把這個case結(jié)了柒啤。我來總結(jié)一下之前的框架結(jié)構(gòu)。
今天搞了半天的UML圖發(fā)現(xiàn)三種方式:
分別是androidstudio下的插件
1.simpleUMLCE 雖然可以快速根據(jù)類生成uml圖并能到處圖片 但字好像很小不知道有沒有地方設置方援。下面那張圖就是這么生成的
2.PlantUml 也是一個插件需要自己寫一些語法來生成 可以利用structure將里面的內(nèi)容復制進行快速生成犯戏。但是是要配置Graphviz2.38這個工具一起使用的 自行百度下載
3.uml一些客戶端專業(yè)繪畫工具 visio等都可以。
好的 廢話不多說 進入正題我們來看下我接手時的項目結(jié)構(gòu)
字很小种吸,一會細說坚俗,總的來說就是寫了一個base然后各個界面來繼承他的傳統(tǒng)模式猖败。但是降允!
傳統(tǒng)base里面我們通常是封裝一些公共的方法以及出事話某些控件。這個onnewintent中再setintent我是實在沒看懂判呕。由于是雙屏顯示侠草,所以他在base里面去生成第二屏幕的控制類边涕,但是醬紫每生成一個activity就對應get一次 總感覺這feel不對啊。
同時還注冊了evetntbus進行事件接收來更改第二屏幕 由于第二屏幕有兩種界面展示的情況他直接又新建了一個出來,好像確實能解決問題宠蚂。
再來看通信,采用的netty框架進行長連接進行數(shù)據(jù)傳輸著隆,所有的數(shù)據(jù)處理全在以下這個類呀癣,關(guān)于netty通信的今天發(fā)現(xiàn)了幾篇文章有空的時候可以好好研究下:
http://www.reibang.com/p/c15daca6e381
http://www.reibang.com/p/128ddc36e713
某些方法要用到context例如獲取版本后 直接傳入activity浦辨,我覺得是挺容易造成內(nèi)存泄露導致activity不能被回收的流酬。同時為了打開一個頁面他是怎么做的呢?
沒錯他在activity中加入一個靜態(tài)方法來進行打開自身頁面劈榨,雖然不知道這種做法對不對,但是總感覺怪怪的拷姿。而且簡單粗暴地通過這種方式直接傳遞參數(shù)也是棒棒的。
再來看邏輯處理:
一個MainActivity里面包含了幾乎所有的邏輯處理描滔,可能還覺得集中處理的挺不錯的含长,但我維護起來何其蛋疼拘泞,報道刷卡的邏輯為什么會在Main里枕扫,副屏更換名字剛才不是在base里面的么怎么這邊又出現(xiàn)了?what the fuck烟瞧。
再來看數(shù)據(jù)存儲参滴,constant里面存了一堆 share里面也存了一堆有的時候真的不是太清楚這里面復雜錯綜的關(guān)系。
當時老板跟我說只要簡單修改,一些字啊字體顏色 背景換換就行十绑,我想那簡單啊現(xiàn)在想想真是too young too simple酷勺。