標籤:android開發 架構 kjframeforandroid
KJFrameForAndroid 又叫KJLibrary,是一個Android的快速開發套件。同時封裝了android中的Bitmap、Http、外掛程式模組載入操作的架構,使開發人員更容易輕鬆實現這些功能,最終實現快速而又安全高效的開發APP。我們的目標是用最少的代碼,完成最多的操作,用最高的效率,完成最複雜的功能。
你可以從這裡擷取到項目源碼 http://git.oschina.net/kymjs/KJFrameForAndroid
KJFrameForAndroid 參考了許多國際上著名的Android架構如Volley、sync-http,上手使用門檻更低,更全面的http請求,考慮周全的bitmap網路載入,完善的功能且不受混淆影響...
很多朋友在問,KJFrameForAndroid與xUtils、afinal、thinkAndroid這類架構有什麼區別,在你看過了這類架構的原始碼後就會很直觀的發現:KJFrameForAndroid的項目結構與代碼更加直觀明了易懂,項目demo與API文檔更加齊全,更關鍵的是使用起來更加簡單易用,容易上手。而且不會像其他架構最終變成沒人維護的項目。
經過一個多月的重構,本次2.0版本更新內容包括
1、重構代碼邏輯,提高架構總體執行效率,提高代碼可讀性。
2、最佳化圖片緩衝邏輯,增益圖片載入的處理速度
3、解決http請求中斷異常 4、完美解決斷點下載造成死結問題
5、重寫多檔案上傳邏輯,檔案圖片上傳更方便
6、添加檔案上傳伺服器端接收demo,更容易配合後台實現檔案資料互動
7、解決外掛程式化開發庫檔案雜亂問題
8、增加Activity繼承鏈的正常化
===========================各模組介紹======================
Plugin模組
你想像過不安裝一個apk而直接被應用調用嗎?你考慮過將應用的某一個功能單獨出來像檔案一樣隨時讀取嗎?外掛程式化模組可以輕鬆幫你實現apk動態載入,讓你的應用調用未安裝的apk。
UILibrary模組包括兩部分:
Widget控制項部分 主要封裝了常用的UI控制項,為了不讓項目jar包過大,我們只引入了開發中一定會用到的控制項,例如:可上下拉的KJListView、可上下拉的KJScrollView、可以雙指縮放雙擊縮放雙指旋轉的ScaleImageView、等等......更多內容請自行查看專案檔中.widget包下的內容
Topology拓撲部分 包含一個使用IOC設計思想的控制項初始化方式:可通過註解的方式進行UI綁定,與設定監聽,在Activity和Fragment中均可以通過一行代碼繫結控制項並實現點擊監聽;還包含了在目前應用開發中常見的布局介面,如側滑效果,高效的底部TAB導航,3D效果的切換。同時UILibrary為開發人員定義了完善的BaseActivity和BaseFragment,開發人員只需手動繼承就可以獲得Topology部分的全部功能。
BitmapLibrary模組
一行代碼實現網狀圖片載入,任何View(ImageView設定src,普通View設定bg)載入圖片的時候都無需考慮圖片載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象,同時無需考慮圖片載入過程中出現的OOM。預設使用記憶體lru演算法+磁碟lru演算法緩衝圖片,同時節省記憶體消耗預設採用控制項的大小作為圖片的大小載入圖片。
HttpLibrary模組
可以一行代碼實現Http請求、一行代碼實現檔案或圖片的上傳與下載。 kjh.download( url, params, callback);
KJLibrary預設對所有Http通訊的資料做了緩衝處理,緩衝時間為5分鐘。這麼做的目的不僅是為了節省使用者手機流量,同時是為了減少伺服器壓力
同時不同於afinal的下載BUG(請看這裡:http://my.oschina.net/kymjs/blog/355944),KJFrameForAndroid原生支援檔案斷點下載。
DBLibrary模組
可以一行代碼對資料庫進行增刪改查等操作:kjdb.update(); kjdb.add(); .......
包含了android中的orm架構,使用了線程池對sqlite進行操作,一行代碼就可以進行增刪改查。支援一對多,多對一等查詢。
使用方法
1、複製jar包 KJFrameForAndroid_v2.x 到你工程的/libs目錄中.
2、查看各個模組的使用協助
MVC模組
Bitmap載入
Http請求
資料庫模組
3、更多在實際項目中使用的Demo: 音樂播放器 愛看部落格用戶端
4、架構API文檔:http://kjframe.github.io 注,KJFrameForAndroid需要在AndroidManifest.xml 中聲明如下許可權
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
github項目地址:
https://github.com/kymjs/KJFrameForAndroid
osc.git項目地址:
http://git.oschina.net/kymjs/KJFrameForAndroid
KJFrameForAndroid 2.0架構使用