編輯:Android開發教程
android app一般性架構設計
一.UI層(Activity+Fragment基類設計+部分自定義控件)
I_KJActivity,KJFrameActivity接口協議,將Activity需要實現的方法提取成一個接口。
I_BroadcastReg,規范Activity中廣播接受者注冊的接口協議
I_SkipActivity,規范Activity跳轉的接口協議
I_KJActivity基類中集成了網絡請求及其回調的方法。其中持有ThreadDataCallBack、KJActivityHandle,這兩個都是與網絡請求相關的。
與KJActivity的設計思路基本一致
一個比較出彩的設計在於監聽了listview的滾動,可以根據這個來優化圖片加載,在listview停下來之後,再去加載圖片。這個邏輯是可以放在基類adapter中的。
二.本地數據層
DBLibrary come from afinal->finalDB,具體實現未細致看
PreferenceHelper SharedPreferences操作工具包
三.網絡層
基礎功能
更多精彩內容:http://www.bianceng.cn/OS/extra/
KJHttp是專為解決Android中Http通信而產生的,它在請求和響應層面做到了全自動構建和解析,主要用於Android快速開發。
KJHttp自帶了數據緩存功能,你所訪問的Http數據都將在本地建立一個緩存,默認的緩存時間是5分鐘,也就是5分鐘以內相同的請求都不會經過網絡,而是從本地緩存中直接讀取。當然對於及時性要求較高的新聞類應用,你也可以關閉這個特性或者只需要將緩存時間設置成0就行了~
httpconfig = HttpConfig(); httpconfig.cacheTime = ; kjhttp = KJHttp(httpconfig);
KJHttp支持JSON格式參數提交、AJAX方式的Form表單參數提交,文件與圖片的上傳下載,同時支持根據你的需求所發起的自定義Request。
工作原理(看過我之前書寫過的網絡框架系列的人應該可以看出來這個網絡框架的設計完全與volley、simplenet原理完全一致)
整個KJHttp工作流程:采用責任鏈設計模式,由三部分組成,類似設計可以類比Handle…Looper…MessageQueue
1. KJHttp負責不停向NetworkQueue(或CacheQueue實際還是NetworkQueue, 具體邏輯請查看 {@link CacheDispatcher})添加Request
2. 另一邊由TaskThread不停從NetworkQueue中取Request並交給Network執行器(邏輯請查看 {@link NetworkDispatcher} ),
3. Network執行器將執行成功的NetworkResponse返回給TaskThead,並通過Request的定制方法 {@link Request#parseNetworkResponse()}封裝成Response,最終交給分發器 {@link Delivery} 分發到主線程並調用HttpCallback相應的方法
我大致浏覽了這個框架的源碼,它的入口是KJHttp,其他和simplenet、volley的實現幾乎一模一樣。之前分析過simplenet和volley,這裡不再細致分析,感興趣的可以去看我前面寫的一系列博客。
對這個http框架的更多解釋見:http://www.kymjs.com/code/2015/05/12/01/
KJBitmap是一個幫助Android開發者加載網絡圖片的類庫。使用KJBitmap可以很方便的加載網絡圖片,而不用考慮對圖片緩存以及OOM問題的處理(因為框架都幫你做好了)。
KJHttp可以看做是一個隊列類,而本方法不斷的向這個隊列添加request;另一方面,TaskThread不停的從這個隊列中取request並執行。類似的設計可以參考Handle…Looper…MessageQueue的關系。
我大致浏覽了一下代碼,認為整體的實現應該是參考volley內部imageloader。
對這個圖片網絡庫的更多介紹可見:
http://www.kymjs.com/code/2015/03/25/01/
http://www.kymjs.com/code/2015/09/24/01/
四.基礎層
CipherUtils加密與解密的工具類
DensityUtils系統屏幕的一些操作
FileUtils文件與流處理工具類
ImageUtils圖片工具類
KJLoger應用程序的Log管理
StringUtils字符串操作工具包
SystemTool系統信息工具包
ViewUtils系統界面工具類
更多資料介紹
1、Dom4j概述dom4j is an easy to use, open source library for working with XML, XPath and
谷歌發布了最新的Android 4.4 KitKat 奇巧巧克力操作系統,不過,該系統的組要打擊對象,並非微軟的Windows Phone 操作系統,而是微軟的 Offi
最近一直都在看自定義View這一塊。差不多一個星期了吧。這個星期堅持每天更新博客,感覺自己的技術也有點突破,對自定義View的計算也有了更深的認識。今天坐地鐵玩手機的時候
現在在電話上測試Ubuntu變得更加簡單,可以從Canonical上下載一個程序,它可以安裝新的操作系統而不必刪除原有的Andorid。能夠雙啟動的系統可以吸引更多的用戶