谈起性能优化,我想问, 什么是性能优化?你的理解呢?
**首先什么是性能:**在同一个手机里面,同样功能的app,哪个跑的快,哪个不卡,哪个就性能高。我们这篇文章就是解决那些性能慢的问题:
1)我们要找到性能低的地方,并且把这些地方解决掉,这个就是性能优化;
2)我们要让自己具备一开始写的代码,它运行起来就是高性能的,所以这个就是设计思想和代码质量优化。一个app的性能好不好我们需要从两个层面努力。
**第一个层面:**从写代码的时候就需要注意,让自己的代码是高性能高可用的代码,这个过程是书写高
性能代码;
**第二个层面:**对已经成型的代码通过工具检查代码的问题,通过检查到的问题来指导我们进行代码的删改,这个过程被称为调优。
大部分开发者都知道,如何写出高性能的代码呢?首先需要具备深厚的代码功底,这就是代码的基础,如:
数据结构达到可以根据应用场景写出符合当前场景的特殊结构,比如google针对Android平台特征研发了sparseArray替代HashMap。另外,对常用的算法有自己独到的见解,leetcode上有刷个上百道题,这样差不多可以达到精通最常用的排序查找动态规划等算法的能力。
再者,高效的算法以及节省内存的数据结构如果配合优秀的符合应用场景的设计模式,那么,这些就为高性能的代码提供了实现依据。
不了解,得不到精髓没得关系,今天咱来鉴赏一下全网疯传的**【设计思想与代码质量优化+程序性能优化+开发效率优化】**Android性能调优秘籍
一、关于Handler面试那些问题
1、Handler Looper Message 关系是什么?
2、Messagequeue 的数据结构是什么?为什么要用这个数 据结构?
3、如何在子线程中创建 Handler?
4、Handler post 方法原理?
5、Android 消息机制的原理及源码解析
6、Android Handler 消息机制
7、Android 消息机制
…
二、关于Activity面试那些问题
1、启动模式以及使用场景?
2、onNewIntent()和 onConfigurationChanged()
3、onSaveInstanceState()和 onRestoreInstanceState()
4、Activity 到底是如何启动的
…
三、关于Fragment面试那些问题
1、Fragment 生命周期和 Activity 对比
2、Fragment 之间如何进行通信
3、Fragment 的 startActivityForResult
4、Fragment 重叠问题
5、Fragment 重叠, 如何通信
…
四、关于Service面试那些问题
1、进程保活
2、Service 的运行线程(生命周期方法全部在主线程)
3、Service 启动方式以及如何停止
4、ServiceConnection 里面的回调方法运行在哪个线程?
5、startService 和 bingService 区别
6、Android 进程保活的一般套路
…
五、关于Android 布局优化面试那些问题
1、什么情况下使用 ViewStub、include、merge?
2、他们的原理是什么?
3、布局优化神器 include 、merge、ViewStub 标签详解
4、Android 布局优化之 ViewStub、include、merge 使用 与源码分析
…
六、关于BroadcastReceiver面试那些问题
1、注册方式,优先级
2、广播类型,区别
3、广播的使用场景,原理
4、安卓广播的底层实现原理
…
七、关于AsyncTask面试那些问题
1、AsyncTask 是串行还是并行执行?
2、AsyncTask 随着安卓版本的变迁
…
八、关于Android 事件分发机制面试那些问题
1、onTouch 和 onTouchEvent 区别,调用顺序
2、dispatchTouchEvent , onTouchEvent , onInterceptTouchEvent 方法顺序以及使用场景
3、滑动冲突,如何解决
4、Android ViewGroup 事件分发机制
…
九、关于Android View 绘制流程面试那些问题
1、简述 View 绘制流程
2、onMeasure, onlayout, ondraw 方法中需要注意的点
3、如何进行自定义 View
4、view 重绘机制
…
十、关于Android ANR面试那些问题
1、为什么会发生 ANR?
2、如何定位 ANR?
3、如何避免 ANR?
4、什么是 ANR
…
十一、关于Android 内存面试那些问题
1、什么情况下会内存泄漏?
2、如何防止内存泄漏?
尾声
面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Android核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、热修复设计、插件化框架解读、组件化框架设计、图片加载框架、网络、设计模式、设计思想与代码质量优化、程序性能优化、开发效率优化、设计模式、负载均衡、算法、数据结构、高级UI晋升、Framework内核解析、Android组件内核等。
不仅有学习文档,视频+笔记提高学习效率,还能稳固你的知识,形成良好的系统的知识体系。这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。
Android进阶学习资料库
一共十个专题,包括了Android进阶所有学习资料,Android进阶视频,Flutter,java基础,kotlin,NDK模块,计算机网络,数据结构与算法,微信小程序,面试题解析,framework源码!
大厂面试真题
PS:之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)
《2017-2021字节跳动Android面试历年真题解析》
如果需要PDF版本可以自行领取!
ndroid面试历年真题解析》**
[外链图片转存中…(img-a2v9OqDd-1617961409260)]
如果需要PDF版本可以自行领取!