Android性能优化的底层逻辑

  • 时间:2022-03-15 15:09 作者:i校长 来源: 阅读:347
  • 扫一扫,手机访问
摘要:前言性能优化仿佛成了每个程序员开发的必经之路,要想出人头地,与众不同,你还真需要下点功夫去研究Android的性能优化,比方说,从优化应用启动、UI加载、再到内存、CPU、GPU、IO、还有耗电等等,当你开展一个方面做优化的时候,是不是也曾跟我一样,一头雾水,摸不着头脑,甚至找不到方法,而后看了大量

前言

性能优化仿佛成了每个程序员开发的必经之路,要想出人头地,与众不同,你还真需要下点功夫去研究Android的性能优化,比方说,从优化应用启动、UI加载、再到内存、CPU、GPU、IO、还有耗电等等,当你开展一个方面做优化的时候,是不是也曾跟我一样,一头雾水,摸不着头脑,甚至找不到方法,而后看了大量的文章,最后记住了少量别人消化过的方式方法,就觉得自己学会了,其实我现在并不这么认为,我觉得性能优化一定有一个固定的思维框架,让我们自发的去发现问题,而后处理问题,只有做到了自己发现,这样我们才能跟别人不一样,才能真正的掌握性能优化不是吗?下面就跟我一起看清楚性能优化的底层逻辑。

来看下Android系统架构

image.png

还记得这张图吗?记得当年初学android第一节课,老师就拿了这张图,甚至说,到目前为止,我才能更深刻的了解这张图,下面由我来重新详情这张图,也许会给你带来不一样的视角。你有没有发现,其实整个Android系统只分为两大块,Linux + Android 虚拟机,其余的部分不都是运行在这个上面的产物吗?(当然有些人会说,虚拟机不也是运行在linux的产物吗?答:是的。)假如你没明白,请允许我画个图,你也许就能明白我说的。请看:

yuque_diagram.jpeg

程序A、B都运行在虚拟机中,而Java需要跟Native交互需要用到JNI,JNI和C和C++进行互相调用。最终C与Linux内核进行交互。
通过上图,假如让你抓重点的话,其实就两大模块对吧,一个是linux,一个是Android虚拟机。回到优化,那是不是说我们只要要做好两件事,一个是优化linux,一个是优化虚拟机呢?但其实我想告诉你,性能优化最终其实就一件事,基于 Linux对Android的运行时优化,这就是我们找到的最基础的底层逻辑。

底层逻辑下的本质

让我们基于Linux对Android运行时的优化,太笼统了,假如让你具体一点,你会想到什么?

硬件角度

先从硬件的角度出发,不论是Linux还是Android运行时,其实最终都牵扯到硬件资源的使用,那是不是说,如何做到硬件资源的正当运用,就是我们要做的呢?我觉得没错,首先你要知道硬件资源中最主要的资源是计算资源和存储资源

  • 计算资源主要是CPU、GPU,比方我们会考虑CPU占用率来作为优化的标准
  • 存储资源主要是虚拟内存和物理内存(磁盘),比方我们会考虑内存占用,磁盘占用等

简单说下如何利用好呢?

  • 比方现在的CPU都是多核的,能利用好多核计算,不是单核
  • 比方运行内存12G,那我们是不是可以考虑牺牲少量内存在提高性能呢?对的你是不是想说Google Chrome能占7、8个G内存?哈哈,由于Google比较喜欢拿空间资源换性能。

简单总结方法:

  • 正当利用CPU资源
  • 正当管理内存资源

至于再细化到如何做,这个就需要你自己去摸索了。

软件角度

从软件角度出发,其实就是我们开发的应用软件,操作系统除了计算资源和内存资源的管理,其余都是通过IO来管理,那么软件的本质其实就是IO,进和出,没错,举几个例子:如我们的软件在系统中是一个个的进程,创立/销毁,在进程中有一个个的线程,创立/销毁,在线程中有一个个的对象,创立/销毁,在一个对象中有一个个方法,创立/销毁,在方法中有一个个成员变量和局部变量,创立/销毁。你现在是不是已经找到优化的方向了,总结如下:

  • 优化进程
  • 优化线程
  • 优化对象
  • 优化方法
  • 优化变量

这才是我们要找的底层逻辑不是吗?任何疑问的处理,我想都该有一个正当的思维框架,这样才能事半功倍,有迹可循。

总结

篇幅不长,讲了我对性能优化的深刻的了解,也许说出来你都懂,是的,大道理大家都懂,加油,你是最胖的。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】阿里云 centos 云盘扩容命令(2023-01-10 16:35)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
手机二维码手机访问领取大礼包
返回顶部