还记得这张图吗?记得当年初学android第一节课,老师就拿了这张图,甚至说,到目前为止,我才能更深刻的理解这张图,下面由我来重新介绍这张图,也许会给你带来不一样的视角。你有没有发现,其实整个Android系统只分为两大块,Linux + Android 虚拟机,其他的部分不都是运行在这个上面的产物吗?(当然有些人会说,虚拟机不也是运行在linux的产物吗?答:是的。)如果你没明白,请允许我画个图,你也许就能明白我说的。请看:
程序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资源
-
合理管理内存资源
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后
最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2020-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。
还有 高级架构技术进阶脑图、高级进阶架构资料 帮助大家学习提升进阶,这里我也免费分享给大家也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
有需要的朋友可以点击:**Android面试资料**免费领取~
一起互勉~
-sNlJHCJV-1711356048914)]
[外链图片转存中…(img-pkp1GIQA-1711356048914)]
一起互勉~