volley緩存
⑴ android開發框架有哪些
1、Rajawali
介紹:
安卓的OpenGL ES 2.0/3.0 引擎。可以用於製作普通應用或者動態壁紙,當然也可以用於製作游戲。
項目地址: https://github.com/Rajawali/Rajawali
2、RxAndroid
介紹:
RxAndroid是Rxjava的一個針對Android平台的擴展。它包含了一些能夠簡化Android開發的工具。
項目地址: https://github.com/ReactiveX/RxAndroid
3、Paginize
介紹:
Paginize 是一個輕量級的UI框架,使用註解來注入布局和view,除了使用註解之外,該框架還有兩個特色:1.用Page的概念來取代Fragment,2.切換page時自帶ios風格的動畫效果。
項目地址: https://github.com/neevek/Paginize
4、otto
介紹:
Otto 是square公司出的一個事件庫(pub/sub模式),用來簡化應用程序組件之間的通訊。 Otto 修改自Google的Guava庫,專門為Android平台進行了優化。
項目地址: https://github.com/square/otto
5 、rebound
介紹:
rebound是facebook的開源動畫庫。可以認為這個動畫庫是獨立於android Framework之外的一種動畫實現。
項目地址: https://github.com/facebook/rebound
6、KJFrameForAndroid
介紹:
KJFrameForAndroid 又叫KJLibrary,是一個幫助快速開發的框架。使用KJFrameForAndroid,你可以只用一行代碼就完成http請求、網路圖片載入、資料庫數據保存或讀取。
項目地址: https://github.com/kymjs/KJFrameForAndroid
7、xUtils
介紹:
xUtils
包含了很多實用的android工具。 xUtils
支持大文件上傳,更全面的http請求協議支持(10種謂詞),擁有更加靈活的ORM,更多的事件註解支持且不受混淆影響... xUitls
最低兼容android 2.2 (api level 8)
項目地址: https://github.com/wyouflf/xUtils
目前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內存;
可配置線程載入線程數量,緩存大小,緩存路徑,載入顯示動畫等...
8、butterknife-view
注入工具
介紹:
為了減少頻繁的調用findViewById(R.id...),可以採用一些注入框架,可以簡化自己的代碼,讓你更專注於實際的功能開發,butterknife就是這樣的一個框架,他是jakewharton大神的作品,值得一試。
class ExampleActivity extends Activity {
@InjectView(R.id.title) TextView title;
@InjectView(R.id.subtitle) TextView subtitle;
@InjectView(R.id.footer) TextView footer;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.inject(this);
// TODO Use "injected" views...
}
}
這是博客地址:
http://jakewharton.github.io/butterknife/
項目地址: https://github.com/JakeWharton/butterknife
9、cube-sdk
一淘推出的開發框架
介紹:
cube一個Android開發包, 可極大提高你的開發效率。主要提供了圖片載入以及網路請求方面的api功能。
項目地址: https://github.com/etao-open-source/cube-sdk
他們的網站:http://cube-sdk.liaohuqiu.net/cn/
10、ASimpleCache
一個簡單的緩存框架
介紹:
ASimpleCache
是一個為android制定的 輕量級的 開源緩存框架。輕量到只有一個java文件(由十幾個類精簡而來)。
它可以緩存什麼東西?普通的字元串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java對象,和
byte數據。
項目地址: https://github.com/yangfuhai/ASimpleCache
11、androidannotations
介紹:
AndroidAnnotations是一個能夠讓你快速進行Android開發的開源框架,它能讓你專注於真正重要的地方。
使代碼更加精簡,使項目更加容易維護,它的目標就是「Fast Android Development.Easy maintainance」。
通過一段時間的使用發現,相比原生的Android開發,確實能夠讓你少些很多代碼
項目地址: https://github.com/excilys/androidannotations
12、Event Bus
解耦android模塊
介紹:
當一個Android應用功能越來越多的時候,保證應用的各個部分之間高效的通信將變得越來越困難。如何優雅地解決這個問題?這時候,就需要使用到EventBus。
EventBus是GreenRobot出品的Android系統的一個Event
Bus類庫,使用起來和之前我們所介紹的Square的Otto差不多,都是用來簡化應用組件之間的通信。
項目地址: https://github.com/greenrobot/EventBus
13、BeeFramework_Android
介紹:
BeeFramework
Android版主要為Android初級開發人員提供一個基於MVC開發模式的APP DEMO,並提供一套APP內調試工具,包括
查看網路數據請求歷史 Crash Log列表 真機WIFI環境下模擬2G\3G網路 查看APP性能(內存佔用,CPU佔用等)
項目地址: https://github.com/BeeFramework/BeeFramework_Android
14、afinal
介紹:
Afinal是一個android的ioc,orm框架,內置了四大模塊功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過註解的方式進行綁定ui和事件。通過finalBitmap,我們可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,我們一行代碼就可以對android的sqlite資料庫進行增刪改查。通過FinalHttp模塊,我們可以以ajax形式請求http數據。
Afinal裡面目前包含了四大組件:
FinalHttp:用於請求http數據,直接ajax方式請求,文件上傳, 斷點續傳下載文件等
FinalBitmap:用於顯示bitmap圖片,而無需考慮線程並發和oom等問題。
FinalActivity:完全可以通過註解方式綁定控制項和事件,無需編寫代碼。
FinalDb:android中sqlite的orm框架,一行代碼搞定增刪改查。
Afinal是一個android的ioc,orm框架,內置了四大模塊功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過註解的方式進行綁定ui和事件。通過finalBitmap,我們可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,我們一行代碼就可以對android的sqlite資料庫進行增刪改查。通過FinalHttp模塊,我們可以以ajax形式請求http數據。詳情請通過以下網址查看。
項目地址: https://github.com/yangfuhai/afinal
15、Volley
介紹:
在這之前,我們在程序中需要和網路通信的時候,大體使用的東西莫過於AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google
I/O 2013上,Volley發布了。Volley是Android平台上的網路通信庫,能使網路通信更快,更簡單,更健壯。
項目地址: https://github.com/mcxiaoke/android-volley
⑵ 安卓sd卡中volley文件夾里的有幾百個文件,可以刪嗎
Volley是一個Android系統中應用進行網路訪問的網路庫,就是說你的手機中有某個或者某些應用使用了Volley來訪問網路,所以會有這個文件夾,裡面的文件是一些緩存文件。你可以刪除,不會有影響,但這些緩存文件在你進行網路訪問的時候,可能會提升速度(比如你訪問的某個資源跟緩存文件是一樣的,那麼就直接讀取本地緩存了),所以並不建議你刪除。
⑶ 安卓框架有哪些
問題一:Android常用的框架有哪些 Android開發中常用的框架:
1、Afinal
Afinal是一個android的ioc,orm框架,內置了四大模塊功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,可以通過註解的方式進行綁定ui和事孝戚歷件。通過finalBitmap,可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模塊,一行代碼就可以對android的sqlite資料庫進行增刪改查。通過FinalHttp模塊,以ajax形式請求數據。
2、 xUtils
xUtils:可以說是Afinal的升級版。
xUtils 包含了很多實用的android工具。
xUtils 支持大文件上傳,更全面的請求協議支持(10種謂詞),擁有更加靈活的ORM,更多的事件註解支持且不受混淆影響。
xUitls 最低兼容android 2.2 (api level8)。
3、LoonAndroid
這是一個純實現功能的框架,它的目標是節省代碼量,降低耦合,讓代碼層次看起來更清晰。
4、 KJFrameForAndroid
是一個android的orm 和 ioc 框架。同時封裝了android中的Bitmap與Http操作的框架,使其更加簡單易用;
KJFrameForAndroid的設計思想是通過封裝Android原生SDK中復雜的復雜操作而達到簡化Android應用級開發,最終實現快速而又安全的開發APP。我們提倡用最少的代碼,完成最多的操作,用最高的效率,完成最復雜的功能。
項目地址:github/kymjs/KJFrameForAndroid
5、 dhroid
dhroid 是基於android 平台, 極速開發框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能仔或強大、輕量級、易擴展.使你更快,更好的開發商業級別應用。
6、 SmartAndroid
SmartAndroid是一套給 Android開發者使用的應用程序開發框架和工具包。提供了一套豐富的標准庫以及簡單的介面和邏輯結構,其目的是使開發人員更快速地進行項目開發。使用 SmartAndroid可以減少代碼的編寫量,並將你的精力投入到項目的創造性開發上。
7、 andBase
ndbase是為Android開發者量身打造的一款開源類庫產品
8、 AndroidAnnotations
完全的註解,使開發起來更加便利,程序員寫的代碼也更少。
9、 volley
Volley是Android平台上的網路通信庫,能使網路通信更快,更簡單,更健壯非同步載入網路圖片、網路數據,Google官方推薦。
問題二:安卓軟體開發框架有哪些 安卓軟體開發需要一定的Java基礎,當然少不了Java環境的搭建,還有安卓SDK的環境搭建,接著你下個eclipse裝個ADT插件,或者直接用Android studio就可以開發安卓應用了,具體的建議你找個開發教程
問題三:android有哪些實用框架?分別用來做什麼? Android 目前還沒有那樣成熟的框架可以使用……
只能說有一些開源項目較好地解決了部分方面的問題,例如:
(1)EventBus:解決了模塊之間消息傳遞解耦合的問題
(2)picasso:解決非同步載入圖片和緩存圖片的問題
(3)dagger:一個依賴注入工具庫
……
其他開巧搜源項目大多數解決了部分通用 UI 控制項的問題,不過我看你的意思是架構級別的框架,而不是什麼 UI 控制項這類的小東西。
問題四:什麼是android的框架開發 上圖中的第二層Framework
問題五:常用的android開發框架有哪些 android bootstrap有試用過,但其實不用框架都能完成你想要的功能的話,真心沒必要用。
問題六:Android的系統架構包括哪些部分 Android的系統架構和其操作系統一樣,採用了分層的架構。Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和linux內核層。
一、應用程序
Android會同一系列核心應用程序包一起發布,該應用程序包包括客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯系人管理程序等。所有的應用程序都是使用JAVA語言編寫的。
二、應用程序框架
開發人員也可以完全訪問核心應用程序所使用的API框架。該應用程序的架構設計簡化了組件的重用;任何一個應用程序都可以發布它的功能塊並且任何其它的應用程序都可以使用其所發布的功能塊(不過得遵循框架的安全性)。同樣,該應用程序重用機制也使用戶可以方便的替換程序組件。
三、系統運行庫
Android 包含一些C/C++庫,這些庫能被Android系統中不同的組件使用。它們通過 Android 應用程序框架為開發者提供服務。
四、Linux內核層
Android內核是基於Linux 內核的修改的內核版本,它提供了用於支持Android平台的設備驅動。
問題七:android快速開發框架有哪些 ThinkAndroid免費源、簡易、遵循Apache二源協議發布Android發框架其發宗旨簡單、快速進行Android應用程序發包含Android mvc、簡易sqlite orm、ioc模塊、封裝Android clitent模塊,具快速構建文件緩存功能需考慮緩存文件格式都非輕松實現緩存基於文件緩存模塊實現圖片緩存功能android載入圖片候oom問題載入圖片錯位問題都輕易解決包括手機發經應用實用工具類志管理配置文件管理android載器模塊中國絡切換檢測等等工具 目前ThinkAndroid主要模塊: MVC模塊:實現視圖與模型離 ioc模塊:androidioc模塊完全註解式進行UI綁定、res資源讀取、及象初始化 資料庫模塊:androidorm框架使用線程池sqlite進行操作 模塊:通client進行封裝數據請求支持非同步及同步式載入 緩存模塊:通簡單配置及設計實現緩存緩存隨意配置 圖片緩存模塊:imageview載入圖片候需考慮圖片載入程現oomandroid容器快速滑候現圖片錯位等現象 配置器模塊:簡易實現配配置操作目前配置文件支持Preference、Properties配置進行存取 志列印模塊:較快輕易實現志列印支持志列印擴展目前支持sdcard寫入本列印、及控制台列印 載器模塊:簡單實現線程載、台載、斷點續傳、載進行控制、始、暫停、刪除等等 中國絡狀態檢測模塊:中國絡狀態改變中國絡狀態進行檢
問題八:主流android開發框架有哪些 android開發框架github上有非常非常多,各種都是開源的,例如側滑菜單,ImageLoading等等。
問題九:Android 有哪些著名的開源框架呢? 什麼應用才對應什麼所謂框架。你寫個游戲用J2EE的框架試試。或者你寫個搜索引擎用游戲引擎試試。沒有哪個框架解決所有問題,如果那樣,搞計算機也太簡單了,框架拿來,隨便改改就是一個軟體。還是學點設計模式這些基本的有用。
問題十:Android軟體框架結構自可分為哪些層? 開發一個程序,android的系統框架是層層相扣,不能分開的。
應用程序層:
這個層主要指的就是用java語言編寫的運行在虛擬機上的程序,Google在最開始時就 在android系統中捆綁了一些核心的應用(核心應用的編寫必須使用應用層序框架層的API框架),例如你android手機中SMS發送短消息的程序,通訊錄等等。
應用程序框架層:
指的就是開發時所需要的API框架,開發人員是在遵守該框架的原則上,調用他們的,開發自己所需要的程序。
系統運行庫層:
用於支持應用框架層的各個組件的。就是說當開發人員使用android應用框架層時,android系統會通過一些C/C++庫來支持對我們使用的各個組件,使其能更好地為開發者服務。
linux核心層:
android的核心系統服務如安全性、內存管理、進程管理、網路協議棧和驅動模型等都依賴於Linux2.6內核,Linux內核同時也作為硬體和軟體棧之間的抽象層。
因此,你開發的程序是運行在應用程序層,開發中寫代碼調用的包,是基於應用框架層,而在應用框架中的各個組件是需要系統運行庫的支持的,例如,你要登陸查看的信息就必須訪問到SQLite資料庫,SQLite就位於系統運行庫,再有,你登入要輸入信息,肯定需要鍵盤驅動的支持,而各種驅動是依賴Linux內核的。
⑷ HttpClient鍜孒ttpURLConnection鐨勫尯鍒
鍒嗘瀽涓錛
鍦ㄧ爺絀禫olley妗嗘灦鐨勬簮鐮佷腑錛屽彂鐜板畠鍦℉TTP璇鋒眰鐨勪嬌鐢ㄤ笂姣旇緝鏈夋剰鎬濓紝鍦ˋndroid
2.3鍙婁互涓婄増鏈錛屼嬌鐢ㄧ殑鏄疕ttpURLConnection錛岃屽湪Android
2.2鍙婁互涓嬬増鏈錛屼嬌鐢ㄧ殑鏄疕ttpClient銆傛垜涔熸瘮杈冨ソ濂囪繖涔堜嬌鐢ㄧ殑鍘熷洜錛屼簬鏄涓撻棬鎵懼埌浜嗕竴浣岹oogle鐨勫伐紼嬪笀鍐欑殑涓綃囧崥瀹錛屾枃涓瀵
HttpURLConnection鍜孒ttpClient榪涜屼簡瀵規瘮錛屼笅闈㈡垜灝辯粰澶у剁畝瑕佸湴緲昏瘧涓涓嬨
鍘熸枃鍦板潃錛http://android-developers.blogspot.com/2011/09/androids-http-clients.html
澶у氭暟鐨凙ndroid搴旂敤紼嬪簭閮戒細浣跨敤HTTP鍗忚鏉ュ彂閫佸拰鎺ユ敹緗戠粶鏁版嵁錛岃孉ndroid涓涓昏佹彁渚涗簡涓ょ嶆柟寮忔潵榪涜孒TTP鎿
浣滐紝HttpURLConnection鍜孒ttpClient銆傝繖涓ょ嶆柟寮忛兘鏀鎸丠TTPS鍗忚銆佷互嫻佺殑褰㈠紡榪涜屼笂浼犲拰涓嬭澆銆侀厤緗瓚呮椂鏃墮棿銆両Pv6銆
浠ュ強榪炴帴奼犵瓑鍔熻兘銆
HttpClient:
DefaultHttpClient鍜屽畠鐨勫厔寮烝ndroidHttpClient閮芥槸HttpClient鍏蜂綋鐨勫疄鐜扮被錛屽畠浠閮芥嫢鏈変紬澶氱殑API錛岃屼笖瀹炵幇姣旇緝紼沖畾錛宐ug鏁伴噺涔熷緢灝戙
浣嗗悓鏃朵篃鐢變簬HttpClient鐨凙PI鏁伴噺榪囧氾紝浣垮緱鎴戜滑寰堥毦鍦ㄤ笉鐮村潖鍏煎規х殑鎯呭喌涓嬪瑰畠榪涜屽崌綰у拰鎵╁睍錛屾墍浠ョ洰鍓岮ndroid鍥㈤槦鍦ㄦ彁鍗囧拰浼樺寲HttpClient鏂歸潰鐨勫伐浣滄佸害騫朵笉縐鏋併
HttpURLConnection:
HttpURLConnection鏄涓縐嶅氱敤閫斻佽交閲忔瀬鐨凥TTP瀹㈡埛絝錛屼嬌鐢ㄥ畠鏉ヨ繘琛孒TTP鎿嶄綔鍙浠ラ傜敤浜庡ぇ澶氭暟鐨勫簲鐢ㄧ▼搴忋傝櫧鐒禜ttpURLConnection鐨凙PI鎻愪緵鐨勬瘮杈冪畝鍗曪紝浣嗘槸鍚屾椂榪欎篃浣垮緱鎴戜滑鍙浠ユ洿鍔犲規槗鍦板幓浣跨敤鍜屾墿灞曞畠銆
涓嶈繃鍦ˋndroid 2.2鐗堟湰涔嬪墠錛孒ttpURLConnection涓鐩村瓨鍦ㄧ潃涓浜涗護浜哄帉鐑︾殑bug銆傛瘮濡傝村逛竴涓鍙璇葷殑InputStream璋冪敤close()鏂規硶鏃訛紝灝辨湁鍙鑳戒細瀵艱嚧榪炴帴奼犲け鏁堜簡銆傞偅涔堟垜浠閫氬父鐨勮В鍐沖姙娉曞氨鏄鐩存帴紱佺敤鎺夎繛鎺ユ睜鐨勫姛鑳斤細
[java] view plain
private void () {
// 榪欐槸涓涓2.2鐗堟湰涔嬪墠鐨刡ug
if (Integer.parseInt(Build.VERSION.SDK) < Build.VERSION_CODES.FROYO) {
System.setProperty("http.keepAlive", "false");
}
}
閰嶇疆浣犵殑Web鏈嶅姟鍣ㄦ潵鏀鎸佸瑰㈡埛絝鐨勫搷搴旇繘琛屽帇緙╃殑鍔熻兘錛屼粠鑰屽彲浠ュ湪榪欎竴鏀硅繘涓婅幏鍙栧埌鏈澶х殑濂藉勩傚傛灉鍦ㄥ帇緙╁搷搴旂殑鏃跺欏嚭鐜頒簡闂棰橈紝榪欑瘒鏂囨。浼氬憡璇変綘濡備綍紱佺敤鎺夎繖涓鍔熻兘銆
浣
鏄濡傛灉鍚鍔ㄤ簡鍝嶅簲鍘嬬緝鐨勫姛鑳斤紝HTTP鍝嶅簲澶撮噷鐨凜ontent-Length灝變細浠h〃鐫鍘嬬緝鍚庣殑闀垮害錛岃繖鏃跺啀浣跨敤getContentLength()
鏂規硶鏉ュ彇鍑鴻В鍘嬪悗鐨勬暟鎹灝辨槸閿欒鐨勪簡銆傛g『鐨勫仛娉曞簲璇ユ槸涓鐩磋皟鐢↖nputStream.read()鏂規硶鏉ヨ誨彇鍝嶅簲鏁版嵁錛屼竴鐩村埌鍑虹幇-1涓烘銆
鎴
浠鍦ˋndroid 2.3鐗堟湰涓榪樺炲姞浜嗕竴浜汬TTPS鏂歸潰鐨勬敼榪涳紝鐜板湪HttpsURLConnection浼氫嬌鐢⊿NI(Server Name
Indication)鐨勬柟寮忚繘琛岃繛鎺ワ紝浣垮緱澶氫釜HTTPS涓繪満鍙浠ュ叡浜鍚屼竴涓狪P鍦板潃銆傞櫎姝や箣澶栵紝榪樺炲姞浜嗕竴浜涘帇緙╁拰浼氳瘽鐨勬満鍒躲傚傛灉榪炴帴澶辮觸錛屽畠浼氳嚜
鍔ㄥ幓灝濊瘯閲嶆柊榪涜岃繛鎺ャ傝繖浣垮緱HttpsURLConnection鍙浠ュ湪涓嶇牬鍧忚佺増鏈鍏煎規х殑鍓嶆彁涓嬶紝鏇村姞楂樻晥鍦拌繛鎺ユ渶鏂扮殑鏈嶅姟鍣ㄣ
鍦ˋndroid 4.0鐗堟湰涓錛屾垜浠鍙堟坊鍔犱簡涓浜涘搷搴旂殑緙撳瓨鏈哄埗銆傚綋緙撳瓨琚瀹夎呭悗(璋冪敤HttpResponseCache鐨剗nstall()鏂規硶)錛屾墍鏈夌殑HTTP璇鋒眰閮戒細婊¤凍浠ヤ笅涓夌嶆儏鍐碉細
鎵鏈夌殑緙撳瓨鍝嶅簲閮界敱鏈鍦板瓨鍌ㄦ潵鎻愪緵銆傚洜涓烘病鏈夊繀瑕佸幓鍙戣搗浠誨姟鐨勭綉緇滆繛鎺ヨ鋒眰錛屾墍鏈夌殑鍝嶅簲閮藉彲浠ョ珛鍒昏幏鍙栧埌銆
瑙
鎯呭喌鑰屽畾鐨勭紦瀛樺搷搴斿繀欏昏佹湁鏈嶅姟鍣ㄦ潵榪涜屾洿鏂版鏌ャ傛瘮濡傝村㈡埛絝鍙戣搗浜嗕竴鏉$被浼間簬 鈥滃傛灉/foo.png榪欏紶鍥劇墖鍙戠敓浜嗘敼鍙橈紝灝卞皢瀹冨彂閫佺粰鎴戔
榪欐牱鐨勮鋒眰錛屾湇鍔″櫒闇瑕佸皢鏇存柊鍚庣殑鏁版嵁榪涜岃繑鍥烇紝鎴栬呰繑鍥炰竴涓304 Not
Modified鐘舵併傚傛灉璇鋒眰鐨勫唴瀹規病鏈夊彂鐢燂紝瀹㈡埛絝灝變笉浼氫笅杞戒換浣曟暟鎹銆
娌℃湁緙撳瓨鐨勫搷搴旈兘鏄鐢辨湇鍔″櫒鐩存帴鎻愪緵鐨勩傝繖閮ㄥ垎鍝嶅簲浼氬湪紼嶅悗瀛樺偍鍒板搷搴旂紦瀛樹腑銆
鐢變簬榪欎釜鍔熻兘鏄鍦4.0涔嬪悗鐨勭増鏈鎵嶆湁鐨勶紝閫氬父鎴戜滑灝卞彲浠ヤ嬌鐢ㄥ弽灝勭殑鏂瑰紡鏉ュ惎鍔ㄥ搷搴旂紦瀛樺姛鑳姐備笅闈㈢殑紺轟緥浠g爜灞曠ず浜嗗備綍鍦ˋndroid 4.0鍙婁互鍚庣殑鐗堟湰涓鍘誨惎鐢ㄥ搷搴旂紦瀛樼殑鍔熻兘錛屽悓鏃惰繕涓嶄細褰卞搷鍒頒箣鍓嶇殑鐗堟湰錛
[java] view plain
private void enableHttpResponseCache() {
try {
long httpCacheSize = 10 * 1024 * 1024; // 10 MiB
File httpCacheDir = new File(getCacheDir(), "http");
Class.forName("android.net.http.HttpResponseCache")
.getMethod("install", File.class, long.class)
.invoke(null, httpCacheDir, httpCacheSize);
} catch (Exception httpResponseCacheNotAvailable) {
}
}
浣犱篃搴旇ュ悓鏃墮厤緗涓涓嬩綘鐨刉eb鏈嶅姟鍣錛屽湪HTTP鍝嶅簲涓婂姞鍏ョ紦瀛樼殑娑堟伅澶淬傚摢涓縐嶆墠鏄鏈濂界殑錛熷湪Android
2.2鐗堟湰涔嬪墠錛孒ttpClient鎷ユ湁杈冨皯鐨刡ug錛屽洜姝や嬌鐢ㄥ畠鏄鏈濂界殑閫夋嫨銆
鑰屽湪Android
2.3鐗堟湰鍙婁互鍚庯紝HttpURLConnection鍒欐槸鏈浣崇殑閫夋嫨銆傚畠鐨凙PI綆鍗曪紝浣撶Н杈冨皬錛屽洜鑰岄潪甯擱傜敤浜嶢ndroid欏圭洰銆傚帇緙╁拰緙撳瓨鏈哄埗鍙
浠ユ湁鏁堝湴鍑忓皯緗戠粶璁塊棶鐨勬祦閲忥紝鍦ㄦ彁鍗囬熷害鍜岀渷鐢墊柟闈涔熻搗鍒頒簡杈冨ぇ鐨勪綔鐢ㄣ傚逛簬鏂扮殑搴旂敤紼嬪簭搴旇ユ洿鍔犲嚲鍚戜簬浣跨敤HttpURLConnection錛屽洜涓哄湪
浠ュ悗鐨勫伐浣滃綋涓鎴戜滑涔熶細灝嗘洿澶氱殑鏃墮棿鏀懼湪浼樺寲HttpURLConnection涓婇潰銆
鍒嗘瀽浜岋細
HTTP 鍗忚鍙鑳芥槸鐜板湪 Internet 涓婁嬌鐢ㄥ緱鏈澶氥佹渶閲嶈佺殑鍗忚浜嗭紝瓚婃潵瓚婂氱殑 Java 搴旂敤紼嬪簭闇瑕佺洿鎺ラ氳繃 HTTP
鍗忚鏉ヨ塊棶緗戠粶璧勬簮銆傚湪 JDK 鐨 java.net 鍖呬腑宸茬粡鎻愪緵浜嗚塊棶 HTTP 鍗忚鐨勫熀鏈鍔熻兘錛欻ttpURLConnection銆
HttpURLConnection鏄痡ava鐨勬爣鍑嗙被錛孒ttpURLConnection緇ф壙鑷猆RLConnection錛屽彲鐢ㄤ簬鍚戞寚瀹氱綉絝欏彂閫丟ET璇鋒眰銆丳OST璇鋒眰銆傚畠鍦║RLConnection鐨勫熀紜涓婃彁渚涗簡濡備笅渚挎嵎鐨勬柟娉曪細
int getResponseCode()錛氳幏鍙栨湇鍔″櫒鐨勫搷搴斾唬鐮併
String getResponseMessage()錛氳幏鍙栨湇鍔″櫒鐨勫搷搴旀秷鎮銆
String getResponseMethod()錛氳幏鍙栧彂閫佽鋒眰鐨勬柟娉曘
void setRequestMethod(String method)錛氳劇疆鍙戦佽鋒眰鐨勬柟娉曘
鍦ㄤ竴鑸鎯呭喌涓嬶紝濡傛灉鍙鏄闇瑕乄eb絝欑偣鐨勬煇涓綆鍗曢〉闈㈡彁浜よ鋒眰騫惰幏鍙栨湇鍔″櫒鍝嶅簲錛孒ttpURLConnection瀹屽叏鍙浠ヨ儨浠匯備絾鍦ㄧ粷澶ч儴鍒嗘儏
鍐典笅錛學eb絝欑偣鐨勭綉欏靛彲鑳芥病榪欎箞綆鍗曪紝榪欎簺欏甸潰騫朵笉鏄閫氳繃涓涓綆鍗曠殑URL灝卞彲璁塊棶鐨勶紝鍙鑳介渶瑕佺敤鎴風櫥褰曡屼笖鍏鋒湁鐩稿簲鐨勬潈闄愭墠鍙璁塊棶璇ラ〉闈銆傚湪榪欑嶆儏鍐
涓嬶紝灝遍渶瑕佹秹鍙奡ession銆丆ookie鐨勫勭悊浜嗭紝濡傛灉鎵撶畻浣跨敤HttpURLConnection鏉ュ勭悊榪欎簺緇嗚妭錛屽綋鐒朵篃鏄鍙鑳藉疄鐜扮殑錛屽彧鏄澶勭悊璧
鏉ラ毦搴﹀氨澶т簡銆
涓轟簡鏇村ソ鍦板勭悊鍚慦eb絝欑偣璇鋒眰錛屽寘鎷澶勭悊Session銆丆ookie絳夌粏鑺傞棶棰橈紝Apache寮婧愮粍緇囨彁渚涗簡涓涓狧ttpClient欏圭洰錛岀湅瀹冪殑
鍚嶇О灝辯煡閬擄紝瀹冩槸涓涓綆鍗曠殑HTTP瀹㈡埛絝錛堝苟涓嶆槸嫻忚堝櫒錛夛紝鍙浠ョ敤浜庡彂閫丠TTP璇鋒眰錛屾帴鏀禜TTP鍝嶅簲銆備絾涓嶄細緙撳瓨鏈嶅姟鍣ㄧ殑鍝嶅簲錛屼笉鑳芥墽琛孒TML欏
闈涓宓屽叆鐨凧avascript浠g爜錛涗篃涓嶄細瀵歸〉闈㈠唴瀹硅繘琛屼換浣曡В鏋愩佸勭悊銆
綆鍗曟潵璇達紝HttpClient灝辨槸涓涓澧炲己鐗堢殑HttpURLConnection錛孒ttpURLConnection鍙浠ュ仛鐨勪簨鎯
HttpClient鍏ㄩ儴鍙浠ュ仛錛汬ttpURLConnection娌℃湁鎻愪緵鐨勬湁浜涘姛鑳斤紝HttpClient涔熸彁渚涗簡錛屼絾瀹冨彧鏄鍏蟲敞浜庡備綍鍙戦佽鋒眰銆
鎺ユ敹
鍝嶅簲錛屼互鍙婄$悊HTTP榪炴帴銆
浣跨敤HttpClient鍙戦佽鋒眰銆佹帴鏀跺搷搴斿緢綆鍗曪紝鍙瑕佸備笅鍑犳ュ嵆鍙銆
鍒涘緩HttpClient瀵硅薄銆
濡傛灉闇瑕佸彂閫丟ET璇鋒眰錛屽壋寤篐ttpGet瀵硅薄錛涘傛灉闇瑕佸彂閫丳OST璇鋒眰錛屽壋寤篐ttpPost瀵硅薄銆
濡傛灉闇瑕佸彂閫佽鋒眰鍙傛暟錛屽彲璋冪敤HttpGet銆丠ttpPost鍏卞悓鐨剆etParams(HetpParams params)鏂規硶鏉ユ坊鍔犺鋒眰鍙傛暟錛涘逛簬HttpPost瀵硅薄鑰岃█錛屼篃鍙璋冪敤setEntity(HttpEntity entity)鏂規硶鏉ヨ劇疆璇鋒眰鍙傛暟銆
璋冪敤HttpClient瀵硅薄鐨別xecute(HttpUriRequest request)鍙戦佽鋒眰錛屾墽琛岃ユ柟娉曡繑鍥炰竴涓狧ttpResponse銆
璋
鐢℉ttpResponse鐨刧etAllHeaders()銆乬etHeaders(String
name)絳夋柟娉曞彲鑾峰彇鏈嶅姟鍣ㄧ殑鍝嶅簲澶達紱璋冪敤HttpResponse鐨刧etEntity()鏂規硶鍙鑾峰彇HttpEntity瀵硅薄錛岃ュ硅薄鍖呰呬簡鏈嶅姟鍣
鐨勫搷搴斿唴瀹廣傜▼搴忓彲閫氳繃璇ュ硅薄鑾峰彇鏈嶅姟鍣ㄧ殑鍝嶅簲鍐呭廣
鍙﹀栵紝Android宸茬粡鎴愬姛鍦伴泦鎴愪簡HttpClient錛岃繖鎰忓懗鐫寮鍙戜漢鍛樺彲浠ョ洿鎺ュ湪Android搴旂敤涓浣跨敤Httpclient鏉ヨ塊棶鎻愪氦璇鋒眰銆佹帴鏀跺搷搴斻
姣斿備竴涓獮ndroid搴旂敤闇瑕佸悜鎸囧畾欏甸潰鍙戦佽鋒眰錛屼絾璇ラ〉闈㈠苟涓嶆槸涓涓綆鍗曠殑欏甸潰錛屽彧鏈夊綋鐢ㄦ埛宸茬粡鐧誨綍錛岃屼笖鐧誨綍鐢ㄦ埛鐨勭敤鎴峰悕鏈夋晥鏃舵墠鍙璁塊棶璇ラ〉闈銆傚傛灉浣跨敤HttpURLConnection鏉ヨ塊棶榪欎釜琚淇濇姢鐨勯〉闈錛岄偅涔堥渶瑕佸勭悊鐨勭粏鑺傚氨澶澶嶆潅浜嗐
鍏跺疄璁塊棶Web搴旂敤涓琚淇濇姢鐨勯〉闈錛屼嬌鐢ㄦ祻瑙堝櫒鍒欏嶮鍒嗙畝鍗曪紝鐢ㄦ埛閫氳繃緋葷粺鎻愪緵鐨勭櫥褰曢〉闈㈢櫥褰曠郴緇燂紝嫻忚堝櫒浼氳礋璐g淮鎶や笌鏈嶅姟鍣ㄤ箣闂寸殑Sesion錛屽傛灉鐢ㄦ埛鐧誨綍鐨勭敤鎴峰悕銆佸瘑鐮佺﹀悎瑕佹眰錛屽氨鍙浠ヨ塊棶琚淇濇姢璧勬簮浜嗐
鍦ˋndroid搴旂敤紼嬪簭涓錛屽垯鍙浣跨敤HttpClient鏉ョ櫥褰曠郴緇燂紝鍙瑕佸簲鐢ㄧ▼搴忎嬌鐢ㄥ悓涓涓狧ttpClient鍙戦佽鋒眰錛孒ttpClient浼
鑷鍔ㄧ淮鎶や笌鏈嶅姟鍣ㄤ箣闂寸殑Session鐘舵侊紝涔熷氨鏄璇寸▼搴忕涓嬈′嬌鐢℉ttpClient鐧誨綍緋葷粺鍚庯紝鎺ヤ笅鏉ヤ嬌鐢℉ttpClient鍗沖彲璁塊棶琚淇濇姢欏佃
浜嗐
⑸ 用過哪些好用的Android開源項目呢
1. 網路庫:
目前最順手的是OkHttp,其中的Okio模塊現在也抽象成單獨的開源庫了,對Java io/nio做了很好的封裝,性能非常高。
另外我個人不推薦Volley這個網路庫,它的請求隊列和request/response封裝確實還不錯,但是NetworkImageView等圖片載入部分是有不少bug的,包括最頭痛的卡頓(是出在二三級緩存策略或者imageLoader里具體記不得了)。而且Volley的介面設計也讓我用得很頭痛。
2.圖片載入庫
個人推薦Picasso,不太推薦Google官方推薦的Glide。
二者介面非常相似,都用得很舒服,但是Glide對圖片的緩存策略跟Picasso不同,從使用場景來看Picasso應該更合邏輯一些。
另外Fresco這個庫本身對包size增加太多了。如果不是有各種gif動畫播放或者海量高清圖片展示的話,感覺用不到。
3.資料庫
目前看過效率最高的是GreenDao,不比直接使用sql語句執行慢,而且介面設計也很乾凈。研究過GreenDao的源碼,深感我自己寫也寫不出更快的實現了。
作者:Van Bruce
⑹ 有哪些 Android 的開源界面庫
比較火爆的Android開源庫有以下:
1、volley
主要有以下模塊:
(1) JSON,圖像等的非同步下載;
(2) 網路請求的排序(scheling)
(3) 網路請求的優先順序處理
(4) 緩存
(5) 多級別取消請求
(6) 和Activity和生命周期的聯動(Activity結束時同時取消所有網路請求)2、android-async-http
主要有以下模塊:
(1) 在匿名回調中處理請求結果
(2) 在UI線程外進行
(3) 文件斷點上傳
(4) 智能重試
(5) 默認gzip壓縮
(6) 支持解析成Json格式
(7) 可將Cookies持久化到SharedPreferences 3、Afinal框架
主要有四大模塊:
(1) 資料庫模塊:android中的
,使用了線程池對sqlite進行操作。
(2) 註解模塊:android中的ioc框架,完全註解方式就可以進行UI綁定和事件綁定。無需findViewById和setClickListener等。
(3) 網路模塊:通過httpclient進行封裝http數據請求,支持ajax方式載入,支持下載、上傳文件功能。
(4) 圖片緩存模塊:通過FinalBitmap,imageview載入bitmap的時候無需考慮bitmap載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。4、xUtils框架
主要有四大模塊:
(1) 資料庫模塊:android中的
,一行代碼就可以進行增刪改查;
(2) 註解模塊:android中的ioc框架,完全註解方式就可以進行UI,資源和事件綁定;
(3) 網路模塊:支持同步,非同步方式的請求;
(4) 圖片緩存模塊:載入bitmap的時候無需考慮bitmap載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象;5、ThinkAndroid主要有以下模塊:(1) MVC模塊:實現視圖與模型的分離。
(2) ioc模塊:android中的ioc模塊,完全註解方式就可以進行UI綁定、res中的資源的讀取、以及對象的初始化。
(3) 資料庫模塊:android中的
,使用了線程池對sqlite進行操作。
(4) http模塊:通過httpclient進行封裝http數據請求,支持非同步及同步方式載入。
(5) 緩存模塊:通過簡單的配置及設計可以很好的實現緩存,對緩存可以隨意的配置
(6) 圖片緩存模塊:imageview載入圖片的時候無需考慮圖片載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。
(7) 配置器模塊:可以對簡易的實現配對配置的操作,目前配置文件可以支持Preference、Properties對配置進行存取。
(8) 日誌列印模塊:可以較快的輕易的是實現日誌列印,支持日誌列印的擴展,目前支持對sdcard寫入本地列印、以及控制台列印
(9) 下載器模塊:可以簡單的實現
、後台下載、
、對下載進行控制、如開始、暫停、刪除等等。
(10) 網路狀態檢測模塊:當網路狀態改變時,對其進行檢6、LoonAndroid 主要有以下模塊:
(1) 自動注入框架(只需要繼承框架內的application既可)
(2) 圖片載入框架(多重緩存,自動回收,最大限度保證內存的安全性)
(3) 網路請求模塊(繼承了基本上現在所有的
)
(4) eventbus(集成一個開源的框架)
(5) 驗證框架(集成開源框架)
(6) json解析(支持解析成集合或者對象)
(7) 資料庫(不知道是哪位寫的 忘記了)
(8) 多線程斷點下載(自動判斷是否支持多線程,判斷是否是重定向)
(9) 自動更新模塊
(10) 一系列工具類
⑺ android開發一般都使用什麼框架
目前框架使用的主要都是開源框架,都可以在github上找到:
1、volley
2、android-async-http
3、Afinal框架
4、xUtils框架
5、ThinkAndroid
6、LoonAndroid
主要有以下模塊:
(1) 自動注入框架(只需要繼承框架內的application既可)
(2)
圖片載入框架(多重緩存,自動回收,最大限度保證內存的安全性)
(3) 網路請求模塊(繼承了基本上現在所有的http請求)
(4)
eventbus(集成一個開源的框架)
(5) 驗證框架(集成開源框架)
(6) json解析(支持解析成集合或者對象)
(7) 資料庫(不知道是哪位寫的 忘記了)
(8) 多線程斷點下載(自動判斷是否支持多線程,判斷是否是重定向)
(9)
自動更新模塊
(10) 一系列工具類