Android并发编程高级面试题汇总最全最细面试题讲解持续更新中👊👊
👀你想要的面试题这里都有👀
👇👇👇
inflater创建view效率为什么比new View慢?
这道题想考察什么?
这个题目主要是考察大家对Inflate源码的理解,和对xml解析的理解。
考生应该如何回答
在出现Jetpack Compose之前,android的UI界面的设计大多数都是在xml里面定义的。XML只是一种界面布局的文件,这种文件是不能直接在app中显示的,它的显示是需要 inflate 解析后转变成为 java中的view。那么Inflate是如何去解析xml呢?大家可以到LayoutInflater.java 文件中看到inflate 函数,这个函数就是通过xml里面的各个标签,使用序列化的方法拿到各个标签,然后将标签存储在Java类里面。有了java标签,那么inflate函数就可以大量的使用反射,通过反射找到这些标签所对于的类,从而能够通过反射获取到这些类的对象。也就是说,Inflate 是通过反射xml标签中的类开创建view的,这个反射过程相对比较耗时,因此它比直接在java中创建View的效率要高。
更多的关于view 的inflater的细节可以参考9.20 题。
动画的分类以及区别
这道题想考察什么?
- 是否了解安卓的动画?
考察的知识点
- 动画的分类
- 动画的区别
考生应该如何回答
动画的种类
首先回答下安卓的动画种类,一共分为三种
- 帧动画:由数张图片连续播放产生的动画效果。
- 补间动画:对View的平移,旋转,缩放,透明产生效果;
- 属性动画:动态的改变属性产生动画效果;
动画的区别
帧动画
帧动画其实就是简单的收集N张图片,然后依次显示这些图片。由于人眼"视觉暂留"的原因,会让我们造成动画的"错觉"。视觉暂留是指我们看到的画面,会在大脑中停留短暂的时间而不立即消失。
帧动画的特点:帧动画不会改变控件的属性,只是通过播放图片来达到动画效果,制作简单但效果单一,且占用空间较大。
补间动画
补间动画会先声明好两个关键帧,开始帧和结束帧。开始帧是用来描述动画开始时的状态,结束帧是用来描述动画结束时的状态,而动画中间如何由开始帧演变到结束帧是由系统计算而来。
补间动画的特点:安卓中补间动画只改变了View的显示效果,而未改变View的真正属性值。比如说,我们使用补间动画放大View的宽度,在动画运行中View宽度变大了,但仅仅只是显示效果上宽度变大了,并没有真正改变View宽度的值。
属性动画
属性动画与其他动画最大的不同是它会不断的更新View的属性值,从而产生动画效果。它不仅仅显示效果发生了改变,View的属性值也发生了变化。
属性动画和补间动画一样会声明关键帧,关键帧与关键帧之间的属性变化由系统计算而来。它们之间有个小的不同点是,属性动画可以声明一个、两个或者多个关键帧,而补间动画固定是开始帧和结束帧。
由于面试题内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要2023年Android中高级最全面试真题答案 完整文档的可扫描下方卡片免费获取~

PS:(文末还有使用ChatGPT机器人小福利哦!!大家不要错过)
目录

第一章 Java方面
- Java基础部分
- Java集合
- Java多线程
- Java虚拟机

第二章 Android方面
- Android四大组件相关
- Android异步任务和消息机制
- Android UI绘制相关
- Android性能调优相关
- Android中的IPC
- Android系统SDK相关
- 第三方框架分析
- 综合技术
- 数据结构方面
- 设计模式
- 计算机网络方面
- Kotlin方面

第三章 音视频开发高频面试题
- 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
- 怎么做到直播秒开优化?
- 直方图在图像处理里面最重要的作用是什么?
- 数字图像滤波有哪些方法?
- 图像可以提取的特征有哪些?
- 衡量图像重建好坏的标准有哪些?怎样计算?

第四章 Flutter高频面试题
- Dart部分
- Flutter部分

第五章 算法高频面试题
- 如何高效寻找素数
- 如何运用二分查找算法
- 如何高效解决雨水问题
- 如何去除有序数组的重复元素
- 如何高效进行模幂运算
- 如何寻找最长回文子串

第六章 Andrio Framework方面
- 系统启动流程面试题解析
- Binder面试题解析
- Handler面试题解析
- AMS面试题解析

本文围绕Android面试题,详细解读了Inflate效率较低的原因,涉及XML解析和反射,以及动画的帧动画、补间动画和属性动画的分类及其区别。适合准备Android技术面试的开发者查阅。

被折叠的 条评论
为什么被折叠?



