位置: 编程技术 - 正文

Android手机的休眠状态(安卓系统休眠设置在哪)

编辑:rootadmin

推荐整理分享Android手机的休眠状态(安卓系统休眠设置在哪),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:安卓休眠机制,安卓系统休眠设置在哪,安卓休眠设置在哪里,android休眠唤醒流程,安卓手机怎么调休眠时间,安卓手机休眠状态在哪设置,安卓手机休眠状态在哪设置,安卓休眠设置在哪里,内容如对您有帮助,希望把文章链接给更多的朋友!

任何一个应用申请了 wakelock 锁,待机(按:什么是待机?待机与屏幕黑、锁屏、休眠的关系是什么?)时没有释放掉,系统是不会进入待机的,直到所有应用的 wakelock 锁都释放掉了,才会进入待机。

如果不进行特别的设置,Android会在一定时间后屏幕变暗,在屏幕变暗后一定时间内,CPU也会休眠,大多数的程序都会停止运行,从而节省电量。

Android手机有两个处理器,一个叫Application Processor(AP),一个叫Baseband Processor(BP)。非通话时间,BP的能耗基本上在5mA左右,而AP只要处于非休眠状态,能耗至少在mA以上,执行图形运算时会更高。一般手机待机时,AP、LCD、WIFI均进入休眠状态,这时Android中应用程序的代码也会停止执行。Android为了确保应用程序中关键代码的正确执行,提供了Wake Lock的API,使得APP可以通过之阻止AP进入休眠。但不一定必要,首先,完全没必要担心AP休眠会导致收不到消息推送。通讯协议栈运行于BP,一旦收到数据包(按:收到 TCP 数据包才会唤醒 AP,UDP 包不会唤醒),BP会将AP唤醒,唤醒的时间足够AP执行代码完成对收到的数据包的处理过程。其它的如Connectivity事件触发时AP同样会被唤醒。那么唯一的问题就是程序如何执行向服务器发送心跳包的逻辑。你显然不能靠AP来做心跳计时。Android提供的Alarm Manager就是来解决这个问题的。Alarm应该是BP计时(或其它某个带石英钟的芯片,不太确定,但绝对不是AP),触发时唤醒AP执行程序代码。那么Wake Lock API有啥用呢?比如心跳包从请求到应答,比如断线重连重新登陆这些关键逻辑的执行过程,就需要Wake Lock来保护(按:只在这些关键逻辑时,需要Wake Lock API确保不休眠)。而一旦一个关键逻辑执行成功,就应该立即释放掉Wake Lock了。两次心跳请求间隔5到分钟,基本不会怎么耗电。除非网络不稳定,频繁断线重连,那种情况办法不多。

网上有说使用AlarmManager,因为AlarmManager 是Android 系统封装的用于管理 RTC 的模块,RTC (Real Time Clock) 是一个独立的硬件时钟,可以在 CPU 休眠时正常运行,在预设的时间到达时,通过中断唤醒 CPU。

Android手机的休眠状态(安卓系统休眠设置在哪)

Android 设置–> WLAN –>点击菜单键 选择 高级 –>休眠状态下保持WLAN连接的下拉列表{始终、仅限充电时、从不(会增加数据流量)},如果设置不为始终,那么我们锁屏休眠后,程序将会处于无网络状态,相应的app用户会一直处于离线模式。

开发中,可以在程序开启时,读取Settings.System.WIFI_SLEEP_POLICY值,保存起来,再将其值改为WIFI_SLEEP_POLICY_NEVER使本程序运行期间保持wifi连接,待程序退出时,将原先保存的值还原。

如下表,休眠有多种等级,最高等级的休眠是屏幕、键盘、cpu全部休眠:

Flag Value CPU Screen Keyboard PARTIAL_WAKE_LOCK On Off Off SCREEN_DIM_WAKE_LOCK On Dim Off SCREEN_BRIGHT_WAKE_LOCK On Bright Off FULL_WAKE_LOCK On Bright Bright

可以设置不同的模式,让其产生不同的休眠,比如让cpu保持运行。 设置代码如下:

休眠几个坑点及解决: 1.向服务器轮询的代码不执行:曾经做一个应用,利用Timer和TimerTask,来设置对服务器进行定时的轮询,但是发现机器在某段时间后,轮询就不再进行了。查了很久才发现是休眠造成的。后来解决的办法是,利用系统的AlarmManager来执行轮询。因为虽然系统让机器休眠,节省电量,但并不是完全的关机,系统有一部分优先级很高的程序还是在执行的,比如闹钟,利用AlarmManager可以定时启动自己的程序,让cpu启动,执行完毕再休眠(按:如上述,就是通过 BP 唤醒 AP)。 2.后台长连接断开:最近遇到的问题。利用Socket长连接实现QQ类似的聊天功能,发现在屏幕熄灭一段时间后,Socket就被断开。屏幕开启的时候需进行重连,但每次看Log的时候又发现网络是链接的,后来才发现是cpu休眠导致链接被断开,当你插上数据线看log的时候,网络cpu恢复,一看网络确实是链接的, 坑。最后使用了PARTIAL_WAKE_LOCK,保持CPU不休眠。 3.调试时是不会休眠的:在调试2的时候,就发现,有时Socket会断开,有时不会断开,后来才搞明白,因为我有时是插着数据线进行调试,有时拔掉数据线,这时Android的休眠状态是不一样的。而且不同的机器也有不同的表现,比如有的机器,插着数据线就会充电,有的不会,有的机器的设置的充电时屏幕不变暗等等。

版权声明:本文为博主原创文章,未经博主允许不得转载。

[小权~编码路&Android] BroadcastReceiver应用详解 本文转载地址如下:

Android动画分类及编写方式(view Animation/Tween Animation)视图动画(一个对象的变形) Android动画分类1.PropertyAnimation属性动画viewAnimationobjectAnimation2.ViewAnimation/TweenAnimation视图动画AlphaAnimation渐变动画RotateAnimation旋转动画ScaleAnimation缩放动画T

ListView属性设置 由于这两天在做listView的东西,所以整理出来一些我个人认为比较特别的属性,通过设置这样的属性可以做出更加美观的列表首先是stackFromBottom属性,这

标签: 安卓系统休眠设置在哪

本文链接地址:https://www.jiuchutong.com/biancheng/378066.html 转载请保留说明!

上一篇:Please ensure that adb is correctly located at 'D:Androidandroid-sdkplatform-toolsadb.exe' and

下一篇:[小权~编码路&Android] BroadcastReceiver应用详解

  • 印花税应交税费
  • 餐饮个体户如何开票
  • 建筑业预缴企业所得税
  • 原材料暂估入库怎么做账
  • 动产租赁和不动产哪个好
  • 收据可以盖发票专用章吗有效吗
  • 五金销售公司
  • 外包人员的工资是费用吗
  • 职工食堂支出明细表
  • 债权性投资损失账务处理
  • 劳务费做账是否需要发票
  • 本月做未开票收入,下月开票怎么做账
  • 可供出售金融资产改为什么科目
  • 总公司和分公司类型必须一样么
  • 差旅补助是否并入工资
  • 工会经费减除项填什么
  • 投资退税申请应怎么写
  • 处于成熟期的企业其预算模式的特点是以什么为起点
  • 工资扣除社保怎么算
  • 小规模纳税人可以享受小微企业吗
  • 补提以前年度无形资产摊销税务处理
  • 贴息收据税前扣除是什么
  • 个人开票给公司有什么风险
  • 采购费用应计入材料采购成本
  • 个人所得税投诉电话是多少
  • 代购机票骗局
  • PHP:class_parents()的用法_spl函数
  • 宾馆一次性用品有哪些
  • 房产税的计税依据的形式包括
  • 日本的萤火虫
  • linux0.11编译
  • 企业收到发票冲销怎么办
  • 卖出回购证券的钱怎么算
  • python输入函数帮助
  • 发工资时代扣房贷怎么办
  • dedecms进入数据库
  • 小规模纳税人免增值税的账务处理
  • 营业税减免会计分录
  • 管理人员工资结构图
  • 个人所得税退税退多少钱怎么算
  • 纳税申报的流程表
  • 企业固定资产内部控制审计研究论文
  • 长期股权投资会计准则2021修订
  • 生产设备改扩建会计分录
  • 企业清算所得税申报
  • 资源税计税依据是开采量还是销售量
  • 开劳务发票需要的资料有哪些?
  • 砖厂会计账务处理流程图
  • 工程项目劳务分包招投标要多久
  • 租赁公司异地经营
  • 酒店客人损坏物品不赔偿怎么报警
  • 小微企业取得的进项税能不能抵扣
  • 机票退票费计入什么科目
  • 公司给客户的礼品太差了还需要给客户吗
  • 帮对方代垫运费计入什么科目
  • 企业的一般账户可以转款到个人吗
  • 手写账目表格怎么做
  • 发票作废怎么写说明
  • 总账设置包括哪些内容
  • 深入分析换一种说法
  • mysql文件存储路径设置
  • win7还是win8好用
  • xp停在windows界面
  • ubuntu系统中文件夹不能改名
  • xp系统桌面图标不见了,点什么都没用?
  • windows全局搜索快捷键
  • Win10系统玩坦克世界不能打字怎么回事
  • 鼠标双击速度
  • cocos2dx4.0教程
  • javascript中的原型和原型链
  • node.js视频教程
  • 使用jquery计算li元素的个数
  • 计算两gps坐标之间距离
  • 百旺税控密码忘记了怎么找回
  • 西安经开税务局电话号码
  • 开具负数发票(专用发票)流程?
  • 新加坡关税壁垒
  • 汽车购车发票开完票能更改名字吗?
  • 地税公职律师招聘
  • 云南 过年
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设