天天看點

Android[第三方or官方]高品質實用【元件&開源項目&架構】集合貼

前言:這裡的隻起統計作用,友善以後開發使用,會給出源位址,友善大家查閱。

===================================================

①:photoview(圖檔浏覽架構)

photoview 是一款擴充自android imageview ,支援通過單點/多點觸摸來進行圖檔縮放的智能控件。特性:

1,支援單點/多點觸摸,即時縮放圖檔;

2,支援平滑滾動;

3,在滑動父控件下能夠運作良好;(例如:viewpager)

源位址:https://github.com/chrisbanes/photoview

②:volley(google網絡通信架構)

在這之前,我們在程式中需要和網絡通信的時候,大體使用的東西莫過于asynctaskloader,httpurlconnection,asynctask,httpclient(apache)等,今年的google

i/o 2013上,volley釋出了。volley是android平台上的網絡通信庫,能使網絡通信更快,更簡單,更健壯。

這是volley名稱的由來: a burst or emission of many things or a large amount at once

源位址:

官方:https://android.googlesource.com/platform/frameworks/volley

翻譯:http://blog.csdn.net/t12x3456/article/details/9221611

③:android-autoupdater(android用戶端自動更新庫)

android-autoupdater 是一個用于android用戶端自動更新的庫。主要特性如下:

1、擴充性強,可以自定義ui

2、使用簡單,不需要獨立的伺服器

3、支援json和xml

4、操作智能,所有邏輯已經實作,隻需要修改ui,即可。

源位址:https://github.com/snowdream/android-autoupdater/releases

④:android-downloader(下載下傳庫)

一個用于下載下傳的android庫。主要特性如下:

1、使用簡單,最少隻需要下載下傳位址即可;

2、可以猜測下載下傳任務名稱

3、自動設定下載下傳路徑

4、支援斷點續傳

5、所有監聽傳回的接口,例如onadd等,都支援ui操作

源位址:https://github.com/snowdream/android-downloader

⑤:afreechart(圖表庫)

afreechart是一個很強大的圖表庫,支援股票曲線圖,餅圖,曲線等。

源位址:https://code.google.com/p/afreechart

⑥:afinal(整體架構)

afinal是一個orm、ioc架構,遵循約定大于配置原則,無需任何配置即可完成所有工作,但也可以通過配置達到個人的個性化需求。

afinal提倡代碼快速簡潔,盡量一行代碼完成的事情不會用兩行。

afinal裡面目前包含了四大元件:

,1,finalhttp:用于請求http資料,直接ajax方式請求,檔案上傳, 斷點續傳下載下傳檔案等

,2,finalbitmap:用于顯示bitmap圖檔,而無需考慮線程并發和oom等問題。

,3,finalactivity:完全可以通過注解方式綁定控件和事件,無需編寫代碼。

,4,finaldb:android中sqlite的orm架構,一行代碼搞定增删改查。

源位址:https://github.com/yangfuhai/afinal

⑦:xutils(整體架構)

xutils 包含了很多實用的android工具。

xutils 最初源于afinal架構,進行了大量重構,使得xutils支援大檔案上傳,更全面的http請求協定支援(10種謂詞),擁有更加靈活的orm,更多的事件注解支援且不受混淆影響...

xuitls最低相容android 2.2 (api level 8)

目前xutils主要有四大子產品:

dbutils子產品:

android中的orm架構,一行代碼就可以進行增删改查;

支援事務,預設關閉;

可通過注解自定義表名,列名,外鍵,唯一性限制,not null限制,check限制等(需要混淆的時候請注解表名和列名);

支援綁定外鍵,儲存實體時外鍵關聯實體自動儲存或更新;

自動加載外鍵關聯實體,支援延時加載;

支援鍊式表達查詢,更直覺的查詢語義,參考下面的介紹或sample中的例子。

viewutils子產品:

android中的ioc架構,完全注解方式就可以進行ui,資源和事件綁定;

新的事件綁定方式,使用混淆工具混淆後仍可正常工作;

目前支援常用的20種事件綁定,參見viewcommoneventlistener類和包com.lidroid.xutils.view.annotation.event。

httputils子產品:

支援同步,異步方式的請求;

支援大檔案上傳,上傳大檔案不會oom;

支援get,post,put,move,copy,delete,head,options,trace,connect請求;

下載下傳支援301/302重定向,支援設定是否根據content-disposition重命名下載下傳的檔案;

傳回文本内容的請求(預設隻啟用了get請求)支援緩存,可設定預設過期時間和針對目前請求的過期時間。

bitmaputils子產品:

加載bitmap的時候無需考慮bitmap加載過程中出現的oom和android容器快速滑動時候出現的圖檔錯位等現象;

支援加載網絡圖檔和本地圖檔;

記憶體管理使用lru算法,更好的管理bitmap記憶體;

可配置線程加載線程數量,緩存大小,緩存路徑,加載顯示動畫等...

源位址:https://github.com/wyouflf/xutils

⑧:thinkandroid(整體架構)

thinkandroid是一個免費的開源的、簡易的、遵循apache2開源協定釋出的android開發架構,其開發宗旨是簡單、快速的進行 android應用程式的開發,包含android mvc、簡易sqlite

orm、ioc子產品、封裝android httpclitent的http子產品, 具有快速建構檔案緩存功能,無需考慮緩存檔案的格式,都可以非常輕松的實作緩存,它還基于檔案緩存子產品實作了圖檔緩存功能, 在android中加載的圖檔的時候,對oom的問題,和對加載圖檔錯位的問題都輕易解決。他還包括了一個手機開發中經常應用的實用工具類, 如日志管理,配置檔案管理,android下載下傳器子產品,網絡切換檢測等等工具。

目前thinkandroid主要有以下子產品:

mvc子產品:實作視圖與模型的分離。

ioc子產品:android中的ioc子產品,完全注解方式就可以進行ui綁定、res中的資源的讀取、以及對象的初始化。

資料庫子產品:android中的orm架構,使用了線程池對sqlite進行操作。

http子產品:通過httpclient進行封裝http資料請求,支援異步及同步方式加載。

緩存子產品:通過簡單的配置及設計可以很好的實作緩存,對緩存可以随意的配置

圖檔緩存子產品:imageview加載圖檔的時候無需考慮圖檔加載過程中出現的oom和android容器快速滑動時候出現的圖檔錯位等現象。

配置器子產品:可以對簡易的實作配對配置的操作,目前配置檔案可以支援preference、properties對配置進行存取。

日志列印子產品:可以較快的輕易的是實作日志列印,支援日志列印的擴充,目前支援對sdcard寫入本地列印、以及控制台列印

下載下傳器子產品:可以簡單的實作多線程下載下傳、背景下載下傳、斷點續傳、對下載下傳進行控制、如開始、暫停、删除等等。

網絡狀态檢測子產品:當網絡狀态改變時,對其進行檢測。

源位址:https://github.com/white-cat/thinkandroid

暫時這些元件,架構,如有未公布的歡迎留言或發郵件([email protected])我會及時加上。