天天看點

Android快速開發架構 - 如果蝸牛有愛情

Android快速開發架構

項目位址:https://github.com/zuiwuyuan/QuickAndroid

# QuickAndroid
Android快速開發架構

項目介紹:

    QuickAndroid是一個免費的開源的、簡易的Android開發架構,其開發宗旨是簡單、快速的進行Android應用程式的開發。
    
    它對AsyncHttpClientt架構進行了二次封裝,可以快速的進行網絡請求回調處理。而且,項目還內建了Fastjson,當網絡資料時通過json格式傳輸時,可以更加快速高效的進行資料的解析操作。
    項目還二次封裝了了universal-image-loader架構,用于處理圖檔的下載下傳緩存,有效的防治oom的發生。
    
    在資料的緩存處理上,同時提供了資料庫相關和本地檔案緩存相關的方法,可以根據需求,選擇到底使用哪一種方式存取資料。
    
    當然,項目還內建了ButterKnife,它是一個專注于Android系統的View注入架構,讓你從此從這些煩人臃腫的代碼中解脫出來。再也不用些寫findViewById,或者是是setOnClickListener這樣的代碼啦。
    
    除此之外,ViewPagerHelper工具類可以幫助更簡單的實作View元件的滑動,android-log可以幫助進行日志列印檢視等。。。


1. HTTP架構: AsyncHttpClient

    對AsyncHttpClient進行了二次封裝,即HttpUtil.java類,在網絡請求時,可直接通過該類發送get/post請求。

    https://github.com/loopj/android-async-http


2. JSON解析: FastJson解析

    FastJson是效率最快的Json解析庫,項目封裝了FastJson工具類FastJsonUtil.java,可通過其直接進行json的解析。

    http://git.oschina.net/wenshao/fastjson


3. 圖檔加載緩存架構:universal-image-loader

    衆所周知的圖檔加載緩存架構,效率高,效果好,使用簡單,項目封裝了imageLoader工具類ImageLoaderUtil.java,可以直接使用其進行圖檔緩存。

    https://github.com/nostra13/Android-Universal-Image-Loader


4. 資料庫架構: ORMLite(儲存資料量大,不常更新的資料,比如題庫、車站名,地名等等)

    對ORMLite資料庫架構進行了二次封裝,可以更加友善的進行資料庫相關的操作,其中db.DatabaseHelper.java是資料庫幫助類,db.dao.XxxDao.java是資料庫操作實作類(Model)。

    http://ormlite.com/

    http://blog.csdn.net/lmj623565791/article/details/39121377
    http://blog.csdn.net/lmj623565791/article/details/39122981


5. 資料本地緩存: Reservoir(儲存資料量小,可能會及時更新、删除的資料,比如使用者資訊、true/false等)

    Reservoir是一個簡單的Android函數庫,可以在磁盤上使用“鍵/值”對輕松地序列化并持久化對象。說白了,使用Reservoir,你可以把java對象進行序列化,并把它存儲到磁盤上。當然,當你想從磁盤上查找到你儲存的資料時,同樣需要時用Reservoir。

    https://github.com/anupcowkur/Reservoir

    http://blog.csdn.net/zuiwuyuan/article/details/47865085


6. ButterKnife:

    ButterKnife是一個專注于Android系統的View注入架構,讓你從此從這些煩人臃腫的代碼中解脫出來。

    https://github.com/JakeWharton/butterknife

    http://blog.csdn.net/i374711088/article/details/49102003

    AS插件:http://www.cnblogs.com/soaringEveryday/p/4607438.html?utm_source=tuicool&utm_medium=referral


7. EventBus

    EventBus是一款針對Android優化的釋出/訂閱事件總線。
    主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,線程之間傳遞消息.優點是開銷小,代碼更優雅。以及将發送者和接收者解耦。

    https://github.com/greenrobot/EventBus
    http://blog.csdn.net/harvic880925/article/details/40660137
    http://blog.csdn.net/harvic880925/article/details/40787203

    http://blog.csdn.net/lmj623565791/article/details/40794879
    http://blog.csdn.net/lmj623565791/article/details/40920453


8. 時間日期處理架構Joda-time

    Joda-Time提供了一組Java類包用于處理包括ISO8601标準在内的date和time。可以利用它把JDK Date和Calendar類完全替換掉,而且仍然能夠提供很好的內建。

    Joda-Time主要的特點包括:

    1. 易于使用:Calendar讓擷取"正常的"的日期變得很困難,使它沒辦法提供簡單的方法,而Joda-Time能夠 直接進行通路域并且索引值1就是代表January。
    2. 易于擴充:JDK支援多月曆系統是通過Calendar的子類來實作,這樣就顯示的非常笨重而且事實 上要實作其它月曆系統是很困難的。Joda-Time支援多月曆系統是通過基于Chronology類的插件體系來實作。
    3. 提供一組完整的功能:它打算提供 所有關系到date-time計算的功能.Joda-Time目前支援8種月曆系統,而且在将來還會繼續添加,有着比JDK Calendar更好的整體性能等等。

    https://github.com/JodaOrg/joda-time

    http://persevere.iteye.com/blog/1755237
    http://dl2.iteye.com/upload/attachment/0078/5111/b020fc38-577a-3ce1-8645-3cf9bd6a7a00.pdf


9. SystemBarTint設定狀态欄顔色

    Android4.4以後開始支援沉浸式狀态欄(設定狀态欄的顔色), 而開源項目SystemBarTint,可以很完美的支援沉浸式狀态欄。

    SystemBarTint位址: https://github.com/hexiaochun/SystemBarTint

    http://blog.csdn.net/zuiwuyuan/article/details/50100093

10. ViewPager工具類

   對ViewPager進行了封裝,通過它,可以更加友善的進行ViewPager的使用:
    構造方法: public ViewPagerHelper(boolean isAuto, ViewPager viewPager, List<View> views, LinearLayout indicatorParents, int selectDrawableRes, int unselectDrawableRes)
    參數:
        boolean isAuto :    是否自動環播放ViewPager的内容
        ViewPager viewPager:    頁面中的ViewPager元件
        List<View> views:   要循環滾動的元件集合
        LinearLayout indicatorParents:  一般顯示ViewPager底部的圓點的容器元件
        int selectDrawableRes: 圓點被選中時圖示的id
        int unselectDrawableRes: 圓點未選中時圖示的id
    示例:
        new ViewPagerHelper(false, mViewPager, views, viewPoints, R.mipmap.page_indicator_unfocused,R.mipmap.page_indicator_focused);


11. Log日志管理:

    LogUtils是一個基于android.util.Log 類的擴充日志庫,主要是添加一些功能友善調試。
    github位址: https://github.com/pengwei1024/LogUtils

    主要支援特性如下:

    1. 支援直接列印資料集合,如List、Set、Map、數組等
    2. 全局配置log輸出
    3. 不需要設定tag
    4. 準确顯示調用方法、行,快速定位所在檔案位置.