⑴ okhttp,retrofit,android-async-http,volley應該選擇哪一個
okhttp!!!!
⑵ android開發框架
直接上github去找吧,太多了
⑶ 安卓sd卡中volley文件夾里的有幾百個文件,可以刪嗎
這是系統自動生成的存儲文件夾 不能刪的 系統運行需要的 望採納~
⑷ android volley配合什麼使用
,首先需要將Volley的jar包準備好,
下載完成後將它導入到你的Eclipse工程里,然後再導出一個jar包就可以了。如果你的電腦上沒有Git,那麼也可以直接使用我導出好的jar包,
新建一個Android項目,將volley.jar文件復制到libs目錄下,這樣准備工作就算是做好了。
3. StringRequest的用法
前面已經說過,Volley的用法非常簡單,那麼我們就從最基本的HTTP通信開始學習吧,即發起一條HTTP請求,然後接收HTTP響應。首先需要獲取到一個RequestQueue對象,可以調用如下方法獲取到:
[java] view plain在CODE上查看代碼片派生到我的代碼片
RequestQueue mQueue = Volley.newRequestQueue(context);
注意這里拿到的RequestQueue是一個請求隊列對象,它可以緩存所有的HTTP請求,然後按照一定的演算法並發地發出這些請求。RequestQueue內部的設計就是非常合適高並發的,因此我們不必為每一次HTTP請求都創建一個RequestQueue對象,這是非常浪費資源的,基本上在每一個需要和網路交互的Activity中創建一個RequestQueue對象就足夠了。
接下來為了要發出一條HTTP請求,我們還需要創建一個StringRequest對象,如下所示:
[java] view plain在CODE上查看代碼片派生到我的代碼片
StringRequest stringRequest = new StringRequest("http://www..com",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("TAG", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", error.getMessage(), error);
}
});
可以看到,這里new出了一個StringRequest對象,StringRequest的構造函數需要傳入三個參數,第一個參數就是目標伺服器的URL地址,第二個參數是伺服器響應成功的回調,第三個參數是伺服器響應失敗的回調。其中,目標伺服器地址我們填寫的是網路的首頁,然後在響應成功的回調里列印出伺服器返回的內容,在響應失敗的回調里列印出失敗的詳細信息。
最後,將這個StringRequest對象添加到RequestQueue裡面就可以了,如下所示:
[java] view plain在CODE上查看代碼片派生到我的代碼片
mQueue.add(stringRequest);
另外,由於Volley是要訪問網路的,因此不要忘記在你的AndroidManifest.xml中添加如下許可權:
[java] view plain在CODE上查看代碼片派生到我的代碼片
<uses-permission android:name="android.permission.INTERNET" />
好了,就是這么簡單,如果你現在運行一下程序,並發出這樣一條HTTP請求,就會看到LogCat中會列印出網路返回給我們的一長串的HTML代碼,雖然我們看起來會有些吃力,但是瀏覽器卻可以輕松地對這段HTML代碼進行解析,然後將網路的首頁展現出來。
這樣的話,一個最基本的HTTP發送與響應的功能就完成了。你會發現根本還沒寫幾行代碼就輕易實現了這個功能,主要就是進行了以下三步操作:
1. 創建一個RequestQueue對象。
2. 創建一個StringRequest對象。
3. 將StringRequest對象添加到RequestQueue裡面。
⑸ android studio volley框架怎麼配置
1、封裝了的非同步的RESTful 請求API;
2、一個優雅和穩健的請求隊列;
3、一個可擴展的架構,它使開發人員能夠實現自定義的請求和響應處理機制;
4、能夠使用外部HTTP Client庫;
5、緩存策略;
6、自定義的網路圖像載入視圖(NetworkImageView,ImageLoader等);
⑹ 緩存模塊怎麼設計 android
內存緩存類(PanoMemCache)
這里使用Android提供的LruCache類,該類保存一個強引用來限制內容數量,每當Item被訪問的時候,此Item就會移動到隊列的頭部。當cache已滿的時候加入新的item時,在隊列尾部的item會被回收。
[java] view plain print ?
public class PanoMemoryCache {
// LinkedHashMap初始容量
private static final int INITIAL_CAPACITY = 16;
// LinkedHashMap載入因子
private static final int LOAD_FACTOR = 0.75f;
// LinkedHashMap排序模式
private static final boolean ACCESS_ORDER = true;
// 軟引用緩存
private static LinkedHashMap<String, SoftReference<Bitmap>> mSoftCache;
// 硬引用緩存
private static LruCache<String, Bitmap> mLruCache;
public PanoMemoryCache() {
// 獲取單個進程可用內存的最大值
// 方式一:使用ActivityManager服務(計量單位為M)
/*int memClass = ((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();*/
// 方式二:使用Runtime類(計量單位為Byte)
final int memClass = (int) Runtime.getRuntime().maxMemory();
// 設置為可用內存的1/4(按Byte計算)
final int cacheSize = memClass / 4;
mLruCache = new LruCache<String, Bitmap>(cacheSize) {
@Override
protected int sizeOf(String key, Bitmap value) {
if(value != null) {
// 計算存儲bitmap所佔用的位元組數
return value.getRowBytes() * value.getHeight();
} else {
return 0;
}
}
@Override
protected void entryRemoved(boolean evicted, String key, Bitmap oldValue, Bitmap newValue) {
if(oldValue != null) {
// 當硬引用緩存容量已滿時,會使用LRU演算法將最近沒有被使用的圖片轉入軟引用緩存
mSoftCache.put(key, new SoftReference<Bitmap>(oldValue));
}
}
};