1. 程式人生 > >安卓 框架

安卓 框架

depend .net tom facebook run iss 開源 join 多線程

韓夢飛沙 韓亞飛 [email protected] yue31313 han_meng_fei_sha

安卓 框架

========

技術分享
android-framework

1. 緩存

名稱 描述

DiskLruCache Java實現基於LRU的磁盤緩存

2.圖片加載

名稱 描述

Android Universal Image Loader 一個強大的加載,緩存,展示圖片的庫

Picasso 一個強大的圖片下載與緩存的庫

Fresco 一個用於管理圖像和他們使用的內存的庫

Glide一個圖片加載和緩存的庫

3. 圖片處理

名稱 描述

Picasso-transformations 一個為Picasso提供多種圖片變換的庫

Glide-transformations 一個為Glide提供多種圖片變換的庫

Android-gpuimage 基於OpenGL的Android過濾器

4. 網絡請求

名稱 描述

Android Async HTTP Android異步HTTP庫

AndroidAsync 異步Socket,HTTP(客戶端+服務器),WebSocket,和socket.io庫。基於NIO而不是線程。

OkHttp 一個Http與Http/2的客戶端

Retrofit 類型安全的Http客戶端

Volley Google推出的Android異步網絡請求框架和圖片加載框架

5. 網絡解析

名稱 描述

Gson 一個Java序列化/反序列化庫,可以將JSON和java對象互相轉換

Jackson 可以輕松地將Java對象轉換成json對象和xml文檔,同樣也可以將json、xml轉 換成Java對象

Fastjson Java上一個快速的JSON解析器/生成器

HtmlPaser 一種用來解析單個獨立html或嵌套html的方式

Jsoup 一個以最好的DOM,CSS和jQuery解析html的庫

6. 數據庫

名稱 描述

OrmLite JDBC和Android的輕量級ORM java包

Sugar 用超級簡單的方法處理Android數據庫

GreenDAO 一種輕快地將對象映射到SQLite數據庫的ORM解決方案

ActiveAndroid 以活動記錄方式為Android SQLite提供持久化

SQLBrite SQLiteOpenHelper 和ContentResolver的輕量級包裝

Realm 移動數據庫:一個SQLite和ORM的替換品

7. 依賴註入

名稱 描述

ButterKnife 將Android視圖和回調方法綁定到字段和方法上

Dagger2 一個Android和java快速依賴註射器。

AndroidAnotations 快速安卓開發。易於維護

RoboGuice Android平臺的Google Guice

8. 圖表

名稱 描述

WilliamChart 創建圖表的Android庫

HelloCharts 兼容到API8的Android圖表庫

MPAndroidChart 一個強大的Android圖表視圖/圖形庫

9. 後臺處理

名稱 描述

Tape 一個輕快的,事務性的,基於文件的FIFO的庫

Android Priority Job Queue 一個專門為Android輕松調度任務的工作隊列

10. 事件總線

名稱 描述

EventBus 安卓優化的事件總線,簡化了活動、片段、線程、服務等的通信

Otto 一個基於Guava的增強的事件總線

11. 響應式編程

名稱 描述

RxJava JVM上的響應式擴展

RxJavaJoins 為RxJava提供Joins操作

RxAndroid Android上的響應式擴展,在RxJava基礎上添加了Android線程調度

RxBinding 提供用RxJava綁定Android UI的API

Agera Android上的響應式編程

12. Log框架

名稱 描述

Logger 簡單,漂亮,強大的Android日誌工具

Hugo 在調試版本上註解的觸發方法進行日誌記錄

Timber 一個小的,可擴展的日誌工具

13. 測試框架

名稱 描述

Mockito Java編寫的Mocking單元測試框架

Robotium Android UI 測試

Robolectric Android單元測試框架

Android自帶很多測試工具:JUnit,Monkeyrunner,UiAutomator,Espresso等

14. 調試框架

名稱 描述

Stetho 調試Android應用的橋梁,使得可以利用Chrome開發者工具進行調試

15. 性能優化

名稱 描述

LeakCanary 內存泄漏檢測工具

ACRA Android應用程序崩潰報告

========

1、volley

項目地址 https://github.com/smanikandan14/Volley-demo
(1) JSON,圖像等的異步下載;
(2) 網絡請求的排序(scheduling)
(3) 網絡請求的優先級處理
(4) 緩存
(5) 多級別取消請求
(6) 和Activity和生命周期的聯動(Activity結束時同時取消所有網絡請求)

2、android-async-http

項目地址:https://github.com/loopj/android-async-http
文檔介紹:http://loopj.com/android-async-http/
(1) 在匿名回調中處理請求結果
(2) 在UI線程外進行http請求
(3) 文件斷點上傳
(4) 智能重試
(5) 默認gzip壓縮
(6) 支持解析成Json格式
(7) 可將Cookies持久化到SharedPreferences

3、Afinal框架

項目地址:https://github.com/yangfuhai/afinal
主要有四大模塊:
(1) 數據庫模塊:android中的orm框架,使用了線程池對sqlite進行操作。
(2) 註解模塊:android中的ioc框架,完全註解方式就可以進行UI綁定和事件綁定。無需findViewById和setClickListener等。
(3) 網絡模塊:通過httpclient進行封裝http數據請求,支持ajax方式加載,支持下載、上傳文件功能。
(4) 圖片緩存模塊:通過FinalBitmap,imageview加載bitmap的時候無需考慮bitmap加載過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。
FinalBitmap可以配置線程加載線程數量,緩存大小,緩存路徑,加載顯示動畫等。FinalBitmap的內存管理使用lru算法,
沒有使用弱引用(android2.3以後google已經不建議使用弱引用,android2.3後強行回收軟引用和弱引用,詳情查看android官方文檔),
更好的管理bitmap內存。FinalBitmap可以自定義下載器,用來擴展其他協議顯示網絡圖片,比如ftp等。同時可以自定義bitmap顯示器,
在imageview顯示圖片的時候播放動畫等(默認是漸變動畫顯示)。

4、xUtils框架

項目地址:https://github.com/wyouflf/xUtils
主要有四大模塊:
(1) 數據庫模塊:android中的orm框架,一行代碼就可以進行增刪改查;
支持事務,默認關閉;
可通過註解自定義表名,列名,外鍵,唯一性約束,NOT NULL約束,CHECK約束等(需要混淆的時候請註解表名和列名);
支持綁定外鍵,保存實體時外鍵關聯實體自動保存或更新;
自動加載外鍵關聯實體,支持延時加載;
支持鏈式表達查詢,更直觀的查詢語義,參考下面的介紹或sample中的例子。
(2) 註解模塊:android中的ioc框架,完全註解方式就可以進行UI,資源和事件綁定;
新的事件綁定方式,使用混淆工具混淆後仍可正常工作;
目前支持常用的20種事件綁定,參見ViewCommonEventListener類和包com.lidroid.xutils.view.annotation.event。
(3) 網絡模塊:支持同步,異步方式的請求;
支持大文件上傳,上傳大文件不會oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT請求;
下載支持301/302重定向,支持設置是否根據Content-Disposition重命名下載的文件;
返回文本內容的請求(默認只啟用了GET請求)支持緩存,可設置默認過期時間和針對當前請求的過期時間。
(4) 圖片緩存模塊:加載bitmap的時候無需考慮bitmap加載過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象;
支持加載網絡圖片和本地圖片;
內存管理使用lru算法,更好的管理bitmap內存;
可配置線程加載線程數量,緩存大小,緩存路徑,加載顯示動畫等...

5、ThinkAndroid

項目地址:https://github.com/white-cat/ThinkAndroid
主要有以下模塊:
(1) MVC模塊:實現視圖與模型的分離。
(2) ioc模塊:android中的ioc模塊,完全註解方式就可以進行UI綁定、res中的資源的讀取、以及對象的初始化。
(3) 數據庫模塊:android中的orm框架,使用了線程池對sqlite進行操作。
(4) http模塊:通過httpclient進行封裝http數據請求,支持異步及同步方式加載。
(5) 緩存模塊:通過簡單的配置及設計可以很好的實現緩存,對緩存可以隨意的配置
(6) 圖片緩存模塊:imageview加載圖片的時候無需考慮圖片加載過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。
(7) 配置器模塊:可以對簡易的實現配對配置的操作,目前配置文件可以支持Preference、Properties對配置進行存取。
(8) 日誌打印模塊:可以較快的輕易的是實現日誌打印,支持日誌打印的擴展,目前支持對sdcard寫入本地打印、以及控制臺打印
(9) 下載器模塊:可以簡單的實現多線程下載、後臺下載、斷點續傳、對下載進行控制、如開始、暫停、刪除等等。
(10) 網絡狀態檢測模塊:當網絡狀態改變時,對其進行檢

6、LoonAndroid

項目地址:https://github.com/gdpancheng/LoonAndroid
主要有以下模塊:
(1) 自動註入框架(只需要繼承框架內的application既可)
(2) 圖片加載框架(多重緩存,自動回收,最大限度保證內存的安全性)
(3) 網絡請求模塊(繼承了基本上現在所有的http請求)
(4) eventbus(集成一個開源的框架)
(5) 驗證框架(集成開源框架)
(6) json解析(支持解析成集合或者對象)
(7) 數據庫(不知道是哪位寫的 忘記了)
(8) 多線程斷點下載(自動判斷是否支持多線程,判斷是否是重定向)
(9) 自動更新模塊
(10) 一系列工具類

=======

圖片加載:fresco
事件總線:eventbus
網絡請求:retrofit rxjava
數據存儲:
數據解析:Gson,我知道它速度不快,但是太好用了
圖片處理:PhotoViewsubsampling-scale-image-viewPhotoCropper
簡單緩存:ASimpleCache
二維碼:ZXing
新的百分比支持:
profile工具:leakcanary
===== 圖片加載,UIL或者Picasso;
數據庫,ormLite或者greenDao;
網絡層,apcahe的http-common或者square的okhttp;
聊天,XMPP;
JSON解析,fastJson;
動畫,NineOldAndroids。 ====

圖片加載Picasso

依賴註入Dagger

json解析Gson

網絡請求Volley

組件通信otto === 網絡請求 Retrofit+RxJava
框架搭建的簡單教程 RxJava 與 Retrofit 結合的最佳實踐
GitHub - tough1985/RxjavaRetrofitDemo: A demo show how to use Retrofit with Rxjava
依賴註入 dagger butterknife
dagger GitHub - square/dagger: A fast dependency injector for Android and Java.
butterknife GitHub - JakeWharton/butterknife: Bind Android views and callbacks to fields and methods.
UI MaterialDesign
MaterialDesign 中文介紹及官方文檔 Material Design中文版_Material Design中文教程_Material Design開發中文手冊[PDF]下載
控件使用 Android文集 | 陽春面的博客
Json解析 gson
GitHub - google/gson: A Java serialization/deserialization library that can convert Java Objects into JSON and back.
圖片加載 picasso fresco
picasso簡單教程 picasso-強大的Android圖片下載緩存庫
GitHub - square/picasso: A powerful image downloading and caching library for Android
fresco 簡單教程 引入Fresco | Fresco
GitHub - facebook/fresco: An Android library for managing images and the memory they use.
視頻 ijkplayer
bilibili的開源項目 基於ffplay的播放器 ==========

數據庫:OrmLite

網絡層:LiteHttp

圖片:BitMap集成,適用於圖片加載,不會發生OOM

解析:FastJson,Gson

雙向驗證:license

====== butterknife,autolayout ======

安卓 框架