美文网首页Android开发经验谈Android开发
性能优化与JVM不会的安卓工程师到底有多菜呀?

性能优化与JVM不会的安卓工程师到底有多菜呀?

作者: Android进阶架构 | 来源:发表于2020-07-13 18:12 被阅读0次

前言

前段时间,公司入职了一个安卓工程师,说是工作3年多了。吃饭的时候经常听到其他同事吐槽那个人太菜了。我心想,能有多菜,总不至于基本工作都做不了吧?



最近他被调到了我们小组,负责接手某个app的后续开发。那个app已经是个半成品,按理说,不出半个月肯定做完了。

可是每天看他愁眉苦脸的鼓捣,也不知道做的咋样了。



某天中午他趁着大家都出去吃饭,让我帮他看看。我一看,这个项目基本没什么进展啊,反而漏洞百出。装上这个应用之后,十分卡顿,随便点点,就有三个地方报错了,经常使用一段时间就莫名其妙的闪退,而且时不时跳出应用异常,建议卸载的提示。一登录就三处报错,什么鬼???一进行检查,发现里面有大量的内存泄漏和内存抖动问题。

我问他你不是工作3年了吗?怎么能做成这个样子?

他支支吾吾半天,才说自己是自学了3年。我问他Java掌握的怎么样?他说,做andriod还要掌握Java吗?


我震惊了!这TM怎么通过面试的???

刚好老板路过,我正准备抱怨一番。没想到他先开口了:“二舅,一起去吃饭吗?”

老板笑着和他一起走了,只剩下我在风中凌乱…

本故事纯属虚构,如有雷同,可能是巧合吧。


Android应用程序开发是以Java语言为基础的(kotlin也是对java的封装),你做Android开发的时候经常遇到的各种问题,其实都是因为java基础没打好,其中最重要的无疑是JVM!Java本身有一个很好的管理内存的机制—— GC。然而,GC却经常会遇到无法回收的内存,即内存泄漏,内存抖动,结果可能是OOM。

我们普通开发涉及不到JVM,然而App性能与它有着千丝万缕的联系,每个App都会有自己的art虚拟机,甚至每一个进程都是有自己独立的虚拟机,内存的回收是由虚拟机管理的,GC回收算法,adj内存管理,这一切都基于虚拟机。


然而很多半路出家、甚至科班出身、工作好几年的安卓开发者,对JVM的核心原理并不了解。这些大厂关于JVM的面试题,你能不能答上来?

1.为什么栈区中需要程序计数器?
2.虚拟机栈主要由哪些部分组成,他们的作用分别是?
3.内存抖动发生的根本原因是?
4.为什么GC会造成APP运行过程中会出现卡顿?
5.如何判断对象应该被回收?
6.为什么Surivor区是两块内存空间?
7.请问如何用插桩技术实现用户行为统计?

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的几十套腾讯、字节跳动、阿里、百度2019-2020面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

还有高级架构技术进阶脑图、Android开发面试专题资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
点击:《Android架构视频+BAT面试专题PDF+学习笔记​即可免费获取~

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

2020年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2020年万事大吉。

粉丝裙:

相关文章

  • 性能优化与JVM不会的安卓工程师到底有多菜呀?

    前言 前段时间,公司入职了一个安卓工程师,说是工作3年多了。吃饭的时候经常听到其他同事吐槽那个人太菜了。我心想,能...

  • JVM--内存模型

    安卓高级工程师想要做性能优化、NDK、设计架构时的健全性等工作时,必须是对JVM有一定的了解。技术的路越往上走,就...

  • jvm 相关阅读

    相关阅读 JVM性能优化1-JVM简介 JVM性能优化2-编译器 JVM性能优化3-垃圾回收 JVM性能优化4-C...

  • 深入理解JVM - 系统性能优化

    系统性能优化并不是一上来就是JVM优化,相反JVM优化几乎是最后的手段了。影响一个系统的性能的因素非常多,如图: ...

  • 安卓性能优化

    前言 安卓程序运行在手机端,用户更加注重程序的流畅度,因此程序的流畅性是安卓程序性能的一个重要指标。程序员在编写程...

  • 安卓性能优化

    安卓性能优化到底优化哪几个方面? 布局优化 减少布局文件的层级(测量/布局/绘制的时间减少):可以使用Relati...

  • 安卓性能优化

    Overdraw(过度绘制)描述的是屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次的UI结构里面,如果不可...

  • 安卓性能优化

    Android的性能优化方法 1. 布局优化 使用 标签、标签、 控件 复杂布局...

  • 安卓性能优化

    布局 绘制 启动 内存 apk 布局优化 布局优化的思路就是尽量避免布局文件的层级,避免OverDraw; Ove...

  • 安卓性能优化

    最近看完了《Android开发艺术探索》这本书,这里算是一个笔记几率,算是加深一遍记忆,首先是性能优化的几个方法 ...

网友评论

    本文标题:性能优化与JVM不会的安卓工程师到底有多菜呀?

    本文链接:https://www.haomeiwen.com/subject/ydrzcktx.html