Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> KJFrameForAndroid框架簡介

KJFrameForAndroid框架簡介

編輯:Android開發教程

android app一般性架構設計

一.UI層(Activity+Fragment基類設計+部分自定義控件)

KJActivity(Activity繼承鏈的規范)

I_KJActivity,KJFrameActivity接口協議,將Activity需要實現的方法提取成一個接口。

I_BroadcastReg,規范Activity中廣播接受者注冊的接口協議

I_SkipActivity,規范Activity跳轉的接口協議

I_KJActivity基類中集成了網絡請求及其回調的方法。其中持有ThreadDataCallBack、KJActivityHandle,這兩個都是與網絡請求相關的。

KJFragment

與KJActivity的設計思路基本一致

KJAdapter&AdapterHolder

一個比較出彩的設計在於監聽了listview的滾動,可以根據這個來優化圖片加載,在listview停下來之後,再去加載圖片。這個邏輯是可以放在基類adapter中的。

二.本地數據層

數據庫

DBLibrary come from afinal->finalDB,具體實現未細致看

文件

sharepreference

PreferenceHelper SharedPreferences操作工具包

三.網絡層

Http-KJHttp框架

基礎功能

更多精彩內容: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

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. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved