Android性能调优 - 省电优化
省电:
通过工具Battery Historian查看到:
耗电大头: 屏幕、网络、cpu
led/oled屏幕显示:
降低亮度,开深色模式;锁屏间隔缩短到 ;亮屏需要一直持有唤醒锁,还有gps定位也需要用到唤醒锁;
网络: 常用的网络优化措施(各部门宣讲)
1.使用缓存。
2.合并网络请求,减少请求次数
3.实时的信息上报改为非实时上报
4.请求一个图片时进行压缩
5. 使用webp图片
cpu:
一、避免wakelock不正确使用(部门宣讲)。
WakeLock 用来阻止 CPU、屏幕甚至是键盘的休眠。像Alarm 也会申请 WakeLock 来完成后台操作。WakeLock 的核心控制代码都在PowerManagerService中
耗电监控方案:
主要针对 PowerManagerService# acquire(PowerManager.WakeLock)这个耗电服务类做hook或插桩
1. 通过hook 即动态代理的方式,在调用获取锁acqireLock之前,做一些记录操作,比如记录调用堆栈、耗电信息,以符号表形式输出到本地,分线上或者线下进行回捞
2. 由于Android P之后很多hook点失效,进一步改通过插桩的方式,在扫描到系统包中的PowerManagerService方法,在method等到acquire方法,进行字节码插入,不过这个难度更高一点,不过AS已经有一个自带的byteInflater的插件半自动实现java转字节码;目前市面上只有Facebook实际上做到这套,但还是并未开源出来
二、JobScheduler(部门宣讲)
谷歌在5.0系统下提供了JobScheduler组件,使用场景:必要不紧急可延迟执行的任务,比如数据块更新,日志上报。
三、doze模式
Doze模式通过限制应用访问网络及其他一些操作频率,从而减少cpu开销达到省电目的。原生Android未连接电源、屏幕关闭就会进入Doze模式,还有系统还会周期性退出Doze;如果能主动定时调用进出doze模式比如用户亮屏未操作时,不过风险太大且调研不成熟;
传感器
激活的传感器会一直进行监听状态,如指纹解锁、实体按键,造成cpu负载和电量消耗,需要适配机型
杀进程(比较极端)
除了可见进程外,后台运行进程也比较耗电,比如常驻后台的微信qq;然后再退出省点模式时主动唤醒即可;
相关文章:
Android性能调优 - 省电优化
省电:通过工具Battery Historian查看到:耗电大头: 屏幕、网络、cpuled/oled屏幕显示:降低亮度,开深色模式;锁屏间隔缩短到 ;亮屏需要一直持有唤醒锁,还有gps定位也需要用到唤醒锁;网络: 常用的网络优化措施…...
ElasticSearch - SpringBoot整合ES之全文搜索匹配查询 match
文章目录1. 数据准备2. match 匹配查询1. 全文检索2. 简化查询DSL语句3. match 匹配查询原理官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/index.html权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/…...
句子的改写和扩写
目录 1.句子改写 2.句子扩写 (不低于15个句子算是长句子,不能太多长句子) 1.句子改写 我绝不会嫁给你的。 如果你是世界上最后一个男人,我就去寺庙。 If you married me,I would jump into the well. 如果你嫁给我,我…...
DockerFile创建及案例
DockerFile dockerfile是用来构建docker镜像的文件,命令脚本参数脚本! 构建步骤 编写一个dockerfile文件docker build 构建成为一个对象docker run 运行镜像docker push 发布镜像(DockerHub、阿里云镜像仓库) 去官网Docker-Hub…...
第十四届蓝桥杯三月真题刷题训练——第 1 天
目录 题目1:数列求值 代码: 题目2:质数 代码: 题目3:饮料换购 代码: 题目1:数列求值 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出…...
基于容器云提交spark job任务
容器云提交spark job任务 容器云提交KindJob类型的spark任务,首先需要申请具有Job任务提交权限的rbac,然后编写对应的yaml文件,通过spark内置的spark-submit命令,提交用户程序(jar包)到集群执行。 1、创建任务job提交权限rbac …...
Linux系统调用之目录操作函数
前言 如果,想要深入的学习Linux系统调用中mkdir,rmdir,rename,chdir,getcwd等这些有关于目录操作函数,还是需要去自己阅读Linux系统中的帮助文档。 具体输入命令: man 2 mkdir/rmdir/rename/ch…...
设计模式-策略模式
前言 作为一名合格的前端开发工程师,全面的掌握面向对象的设计思想非常重要,而“设计模式”是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的,代表了面向对象设计思想的最佳实践。正如《HeadFirst设计模式》中说的一句话&…...
面试+算法:罗马数字及Excel列名与数字互相转换
概述 算法是一个程序员的核心竞争力,也是面试最重要的考查环节。 试题 判断一个罗马数字是否有效 罗马数字包含七种字符:I,V,X,L,C,D和M,如下 字符数值I1V5X10L50C100D500M1000…...
Connext DDS路由服务Routing Service(1)
1 简介 RTI路由服务是一种开箱即用的解决方案,允许开发人员快速扩展和集成不同或地理位置分散的实时系统。它跨域、LAN和WAN扩展RTI ConnextDDS应用程序,包括防火墙和NAT穿越。 它还支持DDS到DDS的桥接,允许您对数据进行转换。这允许未修改的DDS应用程序进行通信,即使它们是…...
如何使用SaleSmartly进行Facebook Messenger 营销、销售和支持
如何使用SaleSmartly(ss客服)进行Facebook Messenger 营销、销售和支持上篇文章我们讲了什么是Facebook Messenger CRM以及获得Facebook Messenger CRM的注意事项,现在你有更多时间与客户聊天,让我们看看你如何使用SaleSmartly&am…...
教资教育知识与能力中学教学
目录 3.1 教学概述 3.2 教学过程 3.3 教学原则*【简答/辨析重点】 3.4 教学方法 3.5 教学组织形式 3.6 教学工作基本环节 3.7 教学评价 3.1 教学概述 1、教学的意义【14/18辨析】 教学是传授系统知识、促进学生发展的最有效形式; 教学是学校进行全面发展教…...
IDEA中使用Tomcat的两种方式:集成本地Tomcat使用Tomcat Maven插件
一、前言 在IDEA中创建完一个Maven Web项目,并补齐了目录以后,准备使用Tomcat时,就需要在自己创建的项目中去部署Tomcat,前文已经介绍了如何创建Maven Web,所以这里就不多加赘述,直接讲述部署Tomcat的方法…...
IP 地址的简介
IP 地址 Internet 依靠 TCP/IP 协议,在全球范围内实现不同硬件结构、不同操作系统、不同网络系统的主机之间的互联。在 Internet 上,每一个节点都依靠唯一的 IP 地址相互区分和相互联系,IP 地址用于标识互联网中的每台主机的身份,…...
3D动作/动画特效
硕士/博士符合一本高校人才引进条件的硕士、博士,教研能力突出者可签合作高校正式编制本科/硕士成绩优异专业扎实、有创新思维者可在签约工作后在校继续读研读博【产业模式】数字经济→数字孪生→升级转型【细份领域】数字产业、数字工程、数字教研、数字政企【合作…...
python 多线程编程之_thread模块
_thread模块除了可以派生线程外,还提供了基本的同步数据结构,又称为锁对象(lock object,也叫原语锁、简单锁、互斥锁、互斥和二进制信号量)。 下面是常用的线程函数: 函数描述start_new_thread(function,…...
vue:vue2与vue3的区别
一、背景 vue2是指的2.X vue3是指的3.0以及更新的版本(3.2版本在script标签里可以写setup,极大的简化了开发) 本文对比两者区别。 二、官网 生命周期选项 | Vue.js API 参考 | Vue.js Vue.js - 渐进式 JavaScript 框架 | Vue.js Vue.…...
SQL数据库语法
目录 1. 常用数据类型 2. 约束 4. 数据库操作 5. 数据表操作 1. 常用数据类型 int 整型double 浮点数varchar 字符型data 年月日datetime 年月日 时分秒2. 约束 主键 primary key : 物理上存储的顺序(存在真实排序), 主键…...
人机界面艺术设计
人机界面艺术设计 2.1人机界面艺术设计思路 人们经常有意通过某种工具或创造来解决难题,然而这并不意味着人们乐于接受别人或其他事情,他们很难提出问题。在用户使用网页或软件的时候,他们有明确的目标,他们利用电脑来帮助自己达…...
【办公类-19-01-02】办公中的思考——Python,统计教职工的姓名中那些字最多?
背景需求:上一篇计算了教职工的姓氏谁最多,col[0]]这一篇统计教职工的(姓氏名字)里面哪些字出现最多。材料准备:1、下载所有员工名单写代码。py 包含”姓氏名字“的重字率统计from pandas import DataFrame, Series im…...
训练自定义游戏,构建Gymnasium训练环境
认识Gymnasium使用stable_baseline3只需要定义好Gymnasium环境,关注训练的奖励机制,将重点放在业务的开发上而不是复杂的算法。Gymnasium提供了几个核心的api:方法功能返回值reset()将环境重置为初始状态,开始新回合。obs, infost…...
Ubuntu22.04部署Cartographer:从一键安装到参数调优全解析
1. 环境准备:Ubuntu 22.04与ROS2 Humble基础配置 在开始部署Cartographer之前,确保你的Ubuntu 22.04系统已经完成基础环境配置。我遇到过不少开发者因为跳过这一步,导致后续安装出现各种依赖问题。这里分享几个关键检查点: 首先…...
基础语法篇总结——从入门到精通
基础语法篇总结——从入门到精通 系列专栏:Python 100天从新手到大师 当前进度:Day 01-30 / 100 阅读时长:8 分钟 难度等级:⭐⭐ 一、本篇回顾 基础语法篇共 30 篇文章,涵盖了 Python 编程的核心基础: 知识体系 基础语法篇 (30 篇) ├── 基础入门 (8 篇) │ ├──…...
别再手动配准点云了!用C++ Eigen库的SVD方法,5分钟搞定刚体变换(附完整代码)
5分钟用Eigen实现点云刚体变换:SVD方法的工程实践指南 在三维视觉和机器人领域,点云配准是基础且关键的任务。想象一下,当你需要将不同视角扫描的点云拼接成一个完整的三维模型,或者让机器人识别物体的位姿时,快速准确…...
别再为vLLM的max_model_len报错头疼了!手把手教你用Meta-Llama-3.1-8B-Instruct跑通第一个推理
从零突破vLLM 5.0.4实战:Meta-Llama-3.1-8B-Instruct推理全流程解析 当你第一次尝试用vLLM加载Llama 3.1这样的前沿大模型时,是否曾被突如其来的max_model_len报错打得措手不及?作为专为高性能推理设计的框架,vLLM在5.0.4版本中对…...
【微知】Mellanox网卡配置异常?mlxconfig reset全解与实战场景指南
1. Mellanox网卡配置异常?先别慌 遇到Mellanox网卡配置异常时,很多工程师第一反应是重装驱动或者更换硬件。其实在大多数情况下,用对mlxconfig reset这个神器就能快速解决问题。我处理过上百台配备Mellanox网卡的服务器,发现80%的…...
2026届毕业生推荐的六大AI辅助论文助手解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 鉴于“降ai”所表达的意思不清晰确切,猜测围绕这一主题或许是在探究关于AI的热度…...
基于小波变换与LabVIEW平台的电力电缆故障精准定位方法研究与应用
基于LabVIEW和小波分析的电力电缆故障定位方法 在分析行波法故障测距误差的基础上, 根据小波变换模极大值在不同尺度下的特 性, 运用自相关分析提供的约束条件, 基于LabVIEW 平台, 实现了对故障信号的准确识别和定 位, 准确测算出故障点的位置。 大量的仿真测试表明, 该方法故障…...
2023年最新YOLO模型对比:YOLOv7 vs YOLOX vs YOLOv5,哪个更适合你的项目?
2023年YOLO模型实战选型指南:从原理到落地的深度对比 在计算机视觉领域,目标检测一直是核心任务之一,而YOLO(You Only Look Once)系列作为其中的佼佼者,凭借其出色的实时性能赢得了广泛关注。2023年,随着YOLOv7的发布&…...
BetterNCM Installer:让网易云音乐插件安装化繁为简的利器
BetterNCM Installer:让网易云音乐插件安装化繁为简的利器 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 你是否曾因复杂的插件安装流程望而却步?是否在面对命…...
