編輯:關於Android編程
減少下載的最基本的方法是只下載必要的數據,在數據方面,意味著要實現REST API,這些API允許使用參數來指定查詢條件,從而限定返回的數據,如指定最後一次更新的時間。
同樣,當下載圖片時,好的做法是在服務端減少圖片的尺寸,而不是下載全尺寸的圖片。
本地緩存文件
另一項重要的技術是避免下載重復的數據。可以通過緩存來做這件事情。只要合理,就始終要包一些靜態資源,包括那些按需下載的諸如全尺寸的圖片等放到緩存中。按需下載的資源應該被分開存儲,這樣可以定期的刷新這塊緩存,以便管理緩存的大小。
為了確保緩存不會導致應用程序顯示過期的數據,一定要提取最後更新的請求內容的時間,這個時間位於HTTP響應頭中。這就允許你判斷相關的內容被刷新的時機。
long currentTime = System.currentTimeMillis());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
long expires = conn.getHeaderFieldDate(Expires, currentTime);
long lastModified = conn.getHeaderFieldDate(Last-Modified, currentTime);
setDataExpirationDate(expires);
if (lastModified
} else {
// Parse update
}
使用這種方法,還可以有效的緩存動態內容,同時確保不會導致應用程序顯示過期的信息。
你可以在非托管的緩存目錄中緩存非敏感數據:
Context.getExternalCacheDir();
還可以使用托管或安全的應用程序緩存。需要注意的是,這種內部緩存可能在系統運行時內存低於可用存儲時被清空。
Context.getCache();
存儲在緩存位置的文件會在應用程序卸載時被刪除。
使用HttpURLConnection響應緩存
Android4.0把一個響應緩存添加到HttpURLConnection類中。你可以使用下列反射方法,在被支持的設備上啟用HTTP響應緩存:
private voidenableHttpResponseCache() {
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) {
Log.d(TAG, HTTP responsecache is unavailable.);
}
}
上述示例代碼會在Android4.0以上的設備上打開響應緩存而不影響早期的版本。
使用被安裝的緩存,HTTP請求可以直接從本地緩存中獲取服務,而無需打開網絡連接。有條件的緩存響應結果,可以有效的驗證來自服務端的數據的新鮮度,從而消除相關下載的帶寬成本。
從響應緩存中獲取未被緩存的響應會引發新的請求。
一、問題描述 在開發中,當我們需要的有一張大圖片同時還需要一些小圖片時,我們只需要通過代碼對此圖片進行不同比例的縮放即可,這樣大大節約資源,減小了安裝包的尺寸 。除縮
由於剛踏入Android逆向分析領域,因此有許多的不懂,所以得不斷地去學習。因為是入門,我又有一定的Android應用開發基礎,所以先從一些簡單工程的反編譯開始入手,先了
中國移動推出的一卡多號業務可以在已有移動手機號上增加1-3個副號,不用換機、換卡。特別適合想擁有多個手機號碼的用戶或需要保護隱私的用戶服務。在不增加手機、不
MPAndroidChart 是 Android 系統上一款開源的圖表庫。目前提供線圖和餅圖,支持選擇、縮放和拖放。android開源圖表庫MPAndroidChar的g