android 关于网络连接之传输数据节省电量2

IEEE Transaction期刊模板使用注意事项 本文将总结使用IEEE Transactions系列期刊的投稿模板时的一些注意事项,包括模板本身的使用规范、参考文献的正确格式等其他内容。 阅读详情

声明:翻译自google官方SDK文档!适用于android2.0(API level 5)以及更高版本。


最大限度地减少定期更新的影响


定期更新的最佳频率将根据设备状态,网络连接,用户行为,以及明确的用户的喜好而有所不同。


Optimizing Battery Life  讨论了如何构建一个根据主机设备的状态来修改更新频率的节电程序。包括当失去连接时禁用后台服务更新和电池电量低时降低更新频率。


本课程将讲述如何根据底层无线射频的状态来更改你的后台更新来达到最好的效果 。


1.使用Google云端推送来替代轮询

  在3G网络环境下,应用程序每次轮询服务器检查是否需要更新都会激活无线射频20秒,造成不必要功率消耗。


Google云端推送(GCM)是一从服务器传输数据到特定应用程序的轻量级的机制。利用GCM,你的服务器能够通知你的运行在指定设备上的程序有新数据可用。


相较于轮询机制,在轮询机制下,你的程序必须定期的ping服务器来查询是否有新的数据,这种机制下你的程序必须创建一个新的连接来ping服务器,才能够知道是否有新数据。


(使用GCM)其结果是不必要的连接减少,并为您的应用程序中更新数据的减少延迟。 


GCM使用持续的TCP/IP连接实现,虽然TCP/IP可以自己实现推送,但是最好的做法是使用GCM。使用GCM能够最大限度地减少持久连接的数量,并允许以优化带宽并减少对电池寿命的影响相关联的平台。


2.使用 Inexact Repeating Alarms 和指数回退来优化轮询

如果轮询是必需的,那么应该在尽可能不降低用户体验的前提下尽量降低默认更新的频率。


一个简单的方法是,允许用户在界面上设置更新的频率,使用户可以自己定义数据的更新和电量的消耗之间的平衡。


当调度更新时,应该使用 AlarmManager实现,每当AlarmManager发出警报,系统就能够接收到来触发事件。

int alarmType = AlarmManager.ELAPSED_REALTIME;
long interval = AlarmManager.INTERVAL_HOUR;
long start = System.currentTimeMillis() + interval;

alarmManager.setInexactRepeating(alarmType, start, interval, pi);
具体关于 AlarmManager介绍见:http://www.360doc.com/content/13/0110/23/11991_259460170.shtml#

如果有多个 alarms 预计同时触发,那么它们几乎会同时触发。每个更新都会带来一个单独的无线射频的状态改变。


尽可能的设置 alarm的类型 type为 ELAPSED_REALTIME(在系统休眠状态下不可用,使用相对系统时间)或者RTC(在系统休眠状态下不可用,使用绝对系统时间)而不要使用_WAKEUP(会在系统休眠状态下也可用),这样就不会在系统休眠状态下触发 alarm,来降低电量的消耗。


也应该根据app是否使用最近更新的数据来降低alarms的触发。如果最近更新的数据没有被app使用,那么要进行类似的指数回退模式来降低更新频率,如下:

SharedPreferences sp = 
  context.getSharedPreferences(PREFS, Context.MODE_WORLD_READABLE);

boolean appUsed = sp.getBoolean(PREFS_APPUSED, false);
long updateInterval = sp.getLong(PREFS_INTERVAL, DEFAULT_REFRESH_INTERVAL);

if (!appUsed)
  if ((updateInterval *= 2) > MAX_REFRESH_INTERVAL)  
    updateInterval = MAX_REFRESH_INTERVAL;

Editor spEdit = sp.edit();
spEdit.putBoolean(PREFS_APPUSED, false);
spEdit.putLong(PREFS_INTERVAL, updateInterval);
spEdit.apply();

rescheduleUpdates(updateInterval);
executeUpdateOrPrefetch();
发起网络连接的成本是一样的,不管你是能够联系您的服务器和下载数据或没有。对于对时间敏感的传输,其中在成功完成是很重要的,一个指数回退算法,可用于降低重试的次数,以减少相关联的电池的影响,例如:

private void retryIn(long interval) {
  boolean success = attemptTransfer();
    
  if (!success) {
    retryIn(interval*2 < MAX_RETRY_INTERVAL ? 
            interval*2 : MAX_RETRY_INTERVAL);      
  }
}
另外如果对于失败连接不是敏感的话(例如定期更新)可以简单的忽略失败连接的尝试。






YOLO11改进策略【独家融合改进】| RCSOSA + SPD + WFU SPD-Conv是一种新的 CNN 构建模块,用于替代传统 CNN 架构中使用的步长卷积(strided convolution)和池化(pooling)层,它由空间到深度(Space-to-depth,SPD)层和非步长卷积(non - strided convolution)层组成。WFU模块通过小波变换的频率分解与跨尺度融合机制,解决了传统上采样过程中的混叠和细节丢失问题,实现了高效、高保真的面部细节重建。 阅读详情

相关推荐

239号资源-simulink仿真:MATLAB/Simulink教程(PDF文档)-----已提供下载资源

电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.《《《《《《《《更多资源还请持续关注本专栏》》》》》》》《《《《《《《《更多资源还请持续关注本专栏》》》》》》》论文与完整源程序_电网论文源程序的博客-优快云博客。电网论文源程序-优快云博客。

LIANG674027206的博客 1076

如何高效优化Android网络连接以降低电耗

在开发android应用时应最大限度地减少下载和网络连接的电池寿命影响。一、高效的连接优化下载 应用的影响: 无线电的状态机由三种能量状态组成: 1、全功率:当连接激活时使用,允许设备以最高的速率传输数据。 2、低功耗:在完全状态下使用大约50%的电池电量的中间状态。 3、待机:没有网络连接活动或需要的最小能量状态虽然低电平和空闲状态会大大减少电池电量,但它们也会对网络请求造成很大

呆屁的博客 855

MySQL等保三级合规实践:如何安全配置root账户的本地与受信主机登录策略

本文详细介绍了MySQL在等保三级合规框架下如何安全配置root账户的本地与受信主机登录策略。通过分析root账户的特殊保护需求,提供三种安全加固方案,包括限制访问范围、限定登录IP和完全禁止远程登录,并指导创建安全的远程管理账户。文章还涵盖了密码策略强化、日志审计配置和网络层防护等关键合规要求,帮助用户实现MySQL的等保三级全面合规。

weixin_42522964的博客 260

android 关于网络连接之传输数据节省电量1

声明:翻译自google官方SDK文档!适用于android2.0(API level 5)以及更高版本。 在本课程中,将讲述如何最大限度的减少下载和网络连接对电池电量的消耗,尤其涉及到wireless radio(无线射频) 。 在本课程中还讲述了诸如缓存、轮询和预取技术、调度和执行下载的最佳做法。你将学习当无线射频的功率配置改变时,如何影响你的选择,以及应该怎么在无线射频功率配置改变时传输

hello_tree的专栏 1742

Unity3D实战:5分钟搞定RTSP监控视频播放(附完整代码)

本文提供了一套在Unity3D中快速集成RTSP监控视频播放的实战方案。通过采用LibVLCSharp for Unity这一成熟稳定的跨平台中间件,开发者可以轻松实现RTSP流的解码与渲染,并附有完整的C#代码示例,帮助用户在5分钟内完成集成,适用于智慧园区、安防监控等3D可视化场景。

weixin_29001655的博客 192

MediaPipe实战:从零构建人脸关键点检测应用

本文详细介绍了如何使用Google的MediaPipe框架从零构建一个实时人脸关键点检测应用。文章深入剖析了MediaPipe的三段式检测流水线,提供了Android平台的完整实战教程,包括环境配置、模型加载、摄像头集成、关键点绘制以及性能调优指南,帮助开发者快速实现高效、跨平台的人脸AR特效与交互功能。

weixin_29100927的博客 343

Android NDK开发详解连接性之在传输数据的同时节省电量

原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C++ 代码,并提供众多平台库,您可使用这些平台库管理原生 activity 和访问实体设备组件,例如传感器和触控输入。NDK 可能不适合大多数 Android 编程初学者,这些初学者只需使用 Java 代码和框架 API 开发应用

hnjzfwy的博客 134

LVGL在RTOS下的线程安全实践:从卡死到流畅的界面切换

本文探讨LVGL在RTOS环境下的线程安全实践,重点分析FreeRTOS多任务同步机制,包括互斥锁、任务通知和消息队列方案。通过实际案例展示如何避免界面卡顿和系统死锁,实现从卡死到流畅的界面切换,为嵌入式GUI开发提供可靠的适配解决方案。

uran的专栏 1112

Android-电量优化

android电量消耗分析,优化,android6.0-doze模式app standby

chenyannan0617的博客 4334

【论文阅读】High-Resolution Image Synthesis with Latent Diffusion Models

为了降低训练扩散模型的算力,LDMs使用一个Autoencoder去学习能尽量表达原始image space的低维空间表达(latent embedding),大大减少需要的算力。在RGB空间:编码器encoder:,将x压缩成低维表示解码器decoder: D,将低维表示z还原成原始图像空间。1. 加入Autoencoder(上图中左侧红色部分),使得扩散过程在latent space下,提高图像生成的效率;

weixin_57974242的博客 1万+

【首发独家】华为OD机试 - 服务中心选址、服务中心的最佳位置(C 语言解题)

最近更新的博客 华为 od 2023 | 什么是华为 od,od 薪资待遇,od 机试题清单 华为 OD 机试真题大全,用 Python 解华为机试题 | 机试宝典 【华为 OD 机试】全流程解析+经验分享,题型分享,防作弊指南 华为 od 机试,独家整理 已参加机试人员的实战技巧 本篇华为 OD 机试题解:服务中心选址、服务中心的最佳位置

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

android应用开发控制耗电量

智能手机耗电主要有两点,屏幕和网络通信。 正常程序是无法控制屏幕的,只能控制网络传输和连接策略。一般坚守下面几点 1.懒加载 不要预先加载大量的后续数据 2.建立缓存 减少下载重复的数据 3.选择好的交互格式 就是交互同等信息数据小,解析简单的。 4.压缩数据 对数据进行压缩处理。gzip,等方式先压缩要交互的数据 关于这个问题,你可以参考一下Android官方的一

学习记录 3332

RK3568平台开发系列讲解(UBOOT篇)u-boot启动流程

U-Boot(Universal Bootloader)是一种开源的引导加载程序,广泛用于嵌入式系统中。它的主要功能是初始化硬件设备,加载操作系统内核,并将控制权交给操作系统。U-Boot的启动流程可以分为多个阶段,以下是典型的U-Boot启动流程:

内核笔记 1234

battery-historian工具使用(安卓耗电分析)

一、安装方式 使用docker下载 docker search battery 如果不能使用7以下系统的手机 https://blog.youkuaiyun.com/mwq30123/article/details/53888449

笔芯君 1879

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android电量优化措施

在开始电量优化以前,我们先总结下设备耗电的一些因素,然后各个击破。 如下图: 大概包含以下一些因素: - 屏幕亮度 - 网络相关 - 唤醒,格式模式的切换以及wakelock - 定位 - 其他传感器一,功耗分析工具功耗分析的工具多种多样,比如google官方提供的battery-history,腾讯的GT (Great Tit)。二,针对具体场景进行优化1,保持屏幕在一段时间后,

huweigoodboy的专栏 1853

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【Android Basic Training - 02】基本网络操作 [ Lesson 2 - 管理网络连接的常用方法 ]

Managing Network Usage [管理网络的惯用法] 这一课会介绍如何细化管理使用的网络资源。如果你的程序需要执行很多网络操作,你应该提供用户设置选项来允许用户控制程序的数据偏好。例如,同步数据的频率,是否只在连接到WiFi才进行下载与上传操作,是否在漫游时使用套餐数据流量等等。这样用户才能在快到达流量上限时关闭你的程序获取数据功能。[ 显然,这非...

编程开发资料库 102

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

5_Android Training 学习笔记_ Android 网络连接与云服务

5.1.1 使用网络服务发现NSD : Network Service Discovery 使用网络服务发现5.1.2 - 5.1.3 WIFI P2PWIFI P2P5.2 执行网络操作5.2.1 连接到网络推荐使用 HttpURLConnection检查网络连接 在我们的 app 尝试连接网络之前,应通过函数 getActiveNetworkInfo() 和 isConnected() 检

thinkcode 354

【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 4 - 根据网络类型更改下载模式]

【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 4 - 根据网络类型更改下载模式] 分类: Android2012-03-26 21:36 707人阅读 评论(0) 收藏 举报 Modifying your Download Patterns Based on the Connectivity Type [根

asu - 速度与激情 1037

Android 系统性能优化(77)---电量优化

Android 优化——电量优化Android 5.0 后用 Battery Historian 工具分析电量。耗电因素移动网络请求手机通过内置的射频模块和基站联系,从而链接上网的,而这个射频模块(radio)是非常耗电的,为了控制这个射频模块的耗电,硬件驱动及 Android RIL 层做了很多处理。例如可以单独关闭 radio(飞行模式),间歇性假休眠 radio(有数据发生时才上电,保持一个...

zhangbijun1230的专栏 974

[Android Traffic] 让android应用在传输网络数据的时候更省电

  到今年6月,我国的手机网民已经达到了3.88亿,超过了电脑终端。相信有智能机的同学都用过手机上网冲浪。但是手机的电量很快被用光了恐怕是每个人都不能忍受的一件事情。而打开数据连接进行网络数据的传输是很耗费电量的,如果用户发现你的应用榨干了他电池里的电,恐怕他会第一时间将你的应用给卸载掉。所以进行网络应用的开发理解怎样才能更省电就很有必要了。                   如果数据连接一...

weixin_34092455的博客 250

Android 省电编程

Android 省电编程 1、Android耗电操作是哪些? Android应用的如下操作是比较耗电的,网络更新操作,重连;网络数据传输等等。     1.1网络更新,重连等情况分析: 如何有效减少耗电? 编程的角度讲,有一个网络连接的更新频率,如果我们设置更新频率太高,就是导致CPU负荷比较大,比较耗电,和浪费宽带。 减少这种情况出现,我们可以用一个算法来实现,退避算法(补偿算法

Ifree团队 532

Android官方文档---优化下载让网络访问更高效(三)

 批处理传输和连接 每次启动一个连接---跟传输的数据大小无关---在使用典型的3G无线信号时,就会潜在的导致无线信号消耗近20秒的电量。 如果一个应用程序每隔20秒ping一次服务器,只是告知该应用程序正在运行,且对用户是可见的,那么无线信号的保持将无法限制,这会导致在几乎没有实际数据传输的情况下,明显的消耗电池电量。 基于以上考虑,重要的是要把传输的数据打包,并创建一个传输队列。这

Se7ven_Den的专栏 767

[Android Traffic] 让android应用在传输网络数据的时候更省电

到今年6月,我国的手机网民已经达到了3.88亿,超过了电脑终端。相信有智能机的同学都用过手机上网冲浪。但是手机的电量很快被用光了恐怕是每个人都不能忍受的一件事情。而打开数据连接进行网络数据的传输是很耗费电量的,如果用户发现你的应用榨干了他电池里的电,恐怕他会第一时间将你的应用给卸载掉。所以进行网络应用的开发理解怎样才能更省电就很有必要了。 ...

weixin_34087307的博客 205

[Android Traffic] 调整定时更新的频率(C2DM与退避算法)

转载自:http://blog.youkuaiyun.com/kesenhoo/article/details/7395253 Minimizing the Effect of Regular Updates[最小化定时更新操作的副作用] 最佳的定时更新频率是不确定的,通常由设备状态,网络连接状态,用户行为与用户定义明确的偏好而决定。 Optimizing Battery Life(【Andr...

weixin_34319640的博客 162

Android官方文档---优化下载让网络访问更高效(一)

 本文译自:http://developer.android.com/training/efficient-downloads/efficient-network-access.html 使用无线传输数据是你的应用程序潜在的最大的电池电量消耗源。要减少网络活动的电池电量的消耗,关键是要理解连接模式是如何影响底层的无线硬件的。 本文介绍无线状态机,并解释应用程序的连接模式如何跟它交互。为了

Se7ven_Den的专栏 487

Android---优化下载让网络访问更高效(三)

批处理传输和连接 每次启动一个连接---跟传输的数据大小无关---在使用典型的3G无线信号时,就会潜在的导致无线信号消耗近20秒的电量。 如果一个应用程序每隔20秒ping一次服务器,只是告知该应用程序正在运行,且对用户是可见的,那么无线信号的保持将无法限制,这会导致在几乎没有实际数据传输的情况下,明显的消耗电池电量。 基于以上考虑,重要的是要把传输的数据打包,并创建一个传输队列。...

anjueci1221的博客 78
上一篇: android 关于网络连接之传输数据节省电量1
下一篇: android 后台任务的最佳实现1——Service
恶魔果实
博客等级 码龄15年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值