Android高级UI面试题汇总(含详细解析 十六)

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

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 题。


动画的分类以及区别

这道题想考察什么?

  1. 是否了解安卓的动画?

考察的知识点

  1. 动画的分类
  2. 动画的区别

考生应该如何回答

动画的种类

首先回答下安卓的动画种类,一共分为三种

  • 帧动画:由数张图片连续播放产生的动画效果。
  • 补间动画:对View的平移,旋转,缩放,透明产生效果;
  • 属性动画:动态的改变属性产生动画效果;
动画的区别

帧动画

​ 帧动画其实就是简单的收集N张图片,然后依次显示这些图片。由于人眼"视觉暂留"的原因,会让我们造成动画的"错觉"。视觉暂留是指我们看到的画面,会在大脑中停留短暂的时间而不立即消失。

​ 帧动画的特点:帧动画不会改变控件的属性,只是通过播放图片来达到动画效果,制作简单但效果单一,且占用空间较大。

补间动画

​ 补间动画会先声明好两个关键帧,开始帧和结束帧。开始帧是用来描述动画开始时的状态,结束帧是用来描述动画结束时的状态,而动画中间如何由开始帧演变到结束帧是由系统计算而来。

​ 补间动画的特点:安卓中补间动画只改变了View的显示效果,而未改变View的真正属性值。比如说,我们使用补间动画放大View的宽度,在动画运行中View宽度变大了,但仅仅只是显示效果上宽度变大了,并没有真正改变View宽度的值。

属性动画

​ 属性动画与其他动画最大的不同是它会不断的更新View的属性值,从而产生动画效果。它不仅仅显示效果发生了改变,View的属性值也发生了变化。

​ 属性动画和补间动画一样会声明关键帧,关键帧与关键帧之间的属性变化由系统计算而来。它们之间有个小的不同点是,属性动画可以声明一个、两个或者多个关键帧,而补间动画固定是开始帧和结束帧。

由于面试题内容比较多,篇幅有限,资料已经被整理成了PDF文档,有需要2023年Android中高级最全面试真题答案 完整文档的可扫描下方卡片免费获取~

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

目录

img

第一章 Java方面

  • Java基础部分
  • Java集合
  • Java多线程
  • Java虚拟机

img

第二章 Android方面

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

img

第三章 音视频开发高频面试题

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

img

第四章 Flutter高频面试题

  • Dart部分
  • Flutter部分

img

第五章 算法高频面试题

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

img

第六章 Andrio Framework方面

  • 系统启动流程面试题解析
  • Binder面试题解析
  • Handler面试题解析
  • AMS面试题解析

img

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值