首页 > 代码库 > 14、?数据传输更省电
14、?数据传输更省电
? 下载优化(尽可能将数据放到一起传送)
例如: 10KB一下传输过去,要比一次传1KB,传了10次,更省电。
因为:每访问一次网络就需要建立一个连接(2秒钟)。然后恢复到空闲状态需要17秒,所以比较耗电。
? 更新策略(缓存数据,更新通知)
无限制读取缓存数据也会加重电量的消耗。一般来说,每2至5分钟 取一次数据,每次1至5M是最佳的选择。
也可以避免下载重复的数据。
使用Google Cloud Messaging for Android (GCM)推送App的更新通知。 这样不需要自己单独建立网络连接进行更新。
? HttpURLConnection Cache
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) {
Log.d(TAG, "HTTP response cache is unavailable.");
}
}
? 修改网络连接模式
大多数情况下,Wi-Fi对电量的消耗要比3G小。
使用更高的宽带:使数据尽快下载或上传完,可以缩短耗电高峰的时间。
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
int PrefetchCacheSize = DEFAULT_PREFETCH_CACHE;
switch (activeNetwork.getType()) {
case ConnectivityManager.TYPE_WIFI:
... ...
case ConnectivityManager.TYPE_MOBILE:
. .. ...
default: break;
}
14、?数据传输更省电