网赢做网站怎么样,网站建设公司如何规避风险,wordpress局域网自定义域名,自己有网站怎么做优化前言性能优化仿佛成了每个程序员开发的必经之路#xff0c;要想出人头地#xff0c;与众不同#xff0c;你还真需要下点功夫去研究Android的性能优化#xff0c;比如说#xff0c;从优化应用启动、UI加载、再到内存、CPU、GPU、IO、还有耗电等等#xff0c;当你展开一个方…前言性能优化仿佛成了每个程序员开发的必经之路要想出人头地与众不同你还真需要下点功夫去研究Android的性能优化比如说从优化应用启动、UI加载、再到内存、CPU、GPU、IO、还有耗电等等当你展开一个方面做优化的时候是不是也曾跟我一样一头雾水摸不着头脑甚至找不到方法然后看了大量的文章最后记住了一些别人消化过的方式方法就觉得自己学会了其实我现在并不这么认为我觉得性能优化肯定有一个固定的思维框架让我们自发的去发现问题然后解决问题只有做到了自己发现这样我们才能跟别人不一样才能真正的掌握性能优化不是吗下面就跟我一起看清楚性能优化的底层逻辑。来看下Android系统架构还记得这张图吗记得当年初学android第一节课老师就拿了这张图甚至说到目前为止我才能更深刻的理解这张图下面由我来重新介绍这张图也许会给你带来不一样的视角。你有没有发现其实整个Android系统只分为两大块Linux Android 虚拟机其他的部分不都是运行在这个上面的产物吗当然有些人会说虚拟机不也是运行在linux的产物吗答是的。如果你没明白请允许我画个图你也许就能明白我说的。请看程序A、B都运行在虚拟机中而Java需要跟Native交互需要用到JNIJNI和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进和出没错举几个例子如我们的软件在系统中是一个个的进程创建/销毁在进程中有一个个的线程创建/销毁在线程中有一个个的对象创建/销毁在一个对象中有一个个方法创建/销毁在方法中有一个个成员变量和局部变量创建/销毁。你现在是不是已经找到优化的方向了总结如下优化进程优化线程优化对象优化方法优化变量这才是我们要找的底层逻辑不是吗任何问题的解决我想都该有一个合理的思维框架这样才能事半功倍有迹可循。总结篇幅不长讲了我对性能优化的深刻的理解也许说出来你都懂是的大道理大家都懂加油你是最胖的。