当前位置: 首页 > web >正文

安卓应用卡顿、性能低下的背后原因

安卓应用卡顿或性能低下的主要原因是垃圾回收器(GC)运行过于频繁。
当GC运行时,应用本身实际上并未运行。

在这里插入图片描述

通常情况下,为了实现流畅的UI渲染,安卓应用需要每16毫秒更新一次UI(考虑到60FPS的刷新率,即1000毫秒/60 ≈ 16毫秒)。

因此,如果GC运行时间过长,应用无法及时更新UI,导致本来高刷的屏幕出现了跳帧,从而表现出卡顿。

Google目前给出了一些解决办法:https://support.google.com/android/answer/7667018

导致安卓应用卡顿的一些最重要原因:

  1. 主线程任务过重
  2. 糟糕的UI/UX设计
  3. 瓶颈效应
  4. 过多的线性处理

1. 主线程任务过重:
多线程并非万能药。如果应用线程模型存在阻塞、等待等问题,即使拥有多CPU/多核心也无法发挥优势。当负载增加时,不充分的并发处理能力会影响应用性能,此时单纯增加CPU数量也无济于事。

2. 糟糕的UI/UX设计:
如果用户界面本身设计不好,那不管是什么系统来了也没用。

3. 瓶颈效应:
一个应用的运行速度只能和系统中最慢的环节一样快。这是因为网络、数据库(DB)和应用服务器都需要足够快才能确保最佳性能。最常见的瓶颈点包括代理服务器、Web服务器、数据库、路由器和中间件。通过减少对中心辐射型(hub/spoke)结构的依赖,使用冗余的复制基础架构,并消除单点故障来减少瓶颈。

4. 过多的线性处理:
有时,应用需要进行大量处理,这涉及对海量数据进行大量计算,非常耗时。

http://www.xdnf.cn/news/4631.html

相关文章:

  • 【文献阅读】Depth Anything Unleashing the Power of Large-Scale Unlabeled Data
  • 2025-05-08 Unity 网络基础9——FTP通信
  • Linux的基础开发工具
  • 手机上使用的记录笔记的软件推荐哪一款
  • SAP 交货单行项目含税金额计算报cx_sy_zerodivide处理
  • 云手机虚拟地址技术的运营场景
  • n8n - 开放灵活的智能自动化工作流平台
  • uniapp自定义步骤条(可二开进行调试)
  • shader中性能优化
  • docker 部署clickhouse
  • App Store支付新政重构跨境电商生态:eBay卖家的突围之道
  • vue中scss使用js的变量
  • OpenCv实战笔记(3)基于opencv实现调用摄像头并实时显示画面
  • 【WEB3】区块链、隐私计算、AI和Web3.0——隐私计算(2)
  • 【计算机网络】Cookie、Session、Token之间有什么区别?
  • Angular 面试常见问题
  • maven如何搭建自己的私服(windows版)?
  • 住宅 IP 地址:数字时代的真实网络身份载体
  • Git 基础操作系列2: 本地项目上传至git仓库(gitee / gitlab / github)
  • QMK开发环境搭建指南:Eclipse和VS Code详解
  • 书法机构用的教务管理系统
  • 【Linux学习笔记】基础IO之理解文件
  • vue修改了node_modules中的包,打补丁
  • 论坛系统测试报告
  • 基于Transformer的多资产收益预测模型实战(附PyTorch实现与避坑指南)
  • OpenCV定位地板上的书
  • 中介者模式(Mediator Pattern)详解
  • 前端面经--网络通信与后端协作篇--XMLHttpRequest、axios、fetch、AbortController
  • 代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?
  • MySQL概念简介