編輯:關於Android編程
本文譯自:http://developer.android.com/training/efficient-downloads/connectivity_patterns.html
在談到網絡連接對電池電量的影響時,不是所有的連接類型都是一樣的。使用Wi-Fi信號不僅可以顯著的比其他同等的無線信號節省電量,而且不同的無線信號技術對電量的消耗也是不一樣的。
使用Wi-Fi
在大多數情況下,Wi-Fi信號會在明顯的較低功耗成本下提供更大的帶寬。因此,應該盡可能的在Wi-Fi連接的時候執行數據傳輸操作。
你可以使用一個廣播接收器來監聽連接的變化,在有Wi-Fi連接被建立時來執行下載、搶占式的計劃內更新、甚至是像“優化電池電量”系統文章中介紹的那樣臨時增加定期更新的頻率。
使用較大的帶寬來下載更多的數據從而減少下載頻率
在基於無線信號連接的時候,通常較高的帶寬會帶來較高的電量消耗,這就意味著LTE(4G)要比3G消耗更多的電量,而3G比2G要消耗更多的電量。
一般而言,基於無線技術的底層信號狀態機的變化,特別是狀態變化的尾部時間對電池的影響,要比較高的帶寬信號的影響要大。
同時,較高的帶寬意味你可以在相同的時間之上更加積極的下載更多的數據。當然這不太直觀,因為尾部時間的電量消耗較高,所以,用較長的周期的傳輸會話期間來保持信號的活躍狀態,並減少更新的頻率。
例如,如果LTE(4G)有3G信號的雙倍帶寬,並要消耗雙倍的電量,那麼就應該在每個會話期間下載相比3G信號的4G數據,或者是10Mb以上的數據。在下載這些數據時,重點要考慮的是對本地的可用存儲空間和定期刷新預處理緩存的影響。
你可以使用連接管理器來判斷活躍的無線信號類型,並依此來修改預處理方案:
ConnectivityManager
cm =
(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager tm =
(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
int PrefetchCacheSize =DEFAULT_PREFETCH_CACHE;
switch (activeNetwork.getType()) {
case (ConnectivityManager.TYPE_WIFI):
PrefetchCacheSize = MAX_PREFETCH_CACHE; break;
case (ConnectivityManager.TYPE_MOBILE): {
switch (tm.getNetworkType()) {
case (TelephonyManager.NETWORK_TYPE_LTE |
TelephonyManager.NETWORK_TYPE_HSPAP):
PrefetchCacheSize *= 4;
break;
case (TelephonyManager.NETWORK_TYPE_EDGE |
TelephonyManager.NETWORK_TYPE_GPRS):
PrefetchCacheSize /= 2;
break;
default: break;
}
break;
}
default: break;
}
Android中有兩個比較重要的矩陣,ColorMatrix和Matrix。ColorMatrix用來改變bitmap的顏色和透明度,Matrix用來對bitmap平移、
前言搞安卓的開發應該知道開發好的apk都是需要上傳到應用市場給用戶下載的,當然有些公司的產品是不用上傳到應用市場的(比如我們公司放七牛雲)但是也需要放在雲上面給用戶下載。
Servlet概述首先得知道,Servlet=Server+Applet,Servlet主要用於處理各種業務邏輯,它比JSP更具有業務邏輯層的意義。最初的JSP開發模式為
今早起來運行程序 一直報這個錯Error running app: Instant Run requires ‘Tools | Android | Enabl