Android开发Android高级进阶面试题

2019最新中级Android面试题目,有着几篇就够了

2019-06-18  本文已影响33人  小小小小怪兽_666

注:因为实际开发与参考答案会有所不同,再者怕误导大家,所以这些面试题答案还是自己去理解!面试官会针对简历中提到的知识点由浅入深提问,所以不要背答案,多理解。

1.组件化中路由、埋点的实现

参考回答:

因为在组件化中,各个业务模块之间是各自独立的, 并不会存在相互依赖的关系, 所以一个业务模块是访问不了其他业务模块的代码的, 如果想从 A 业务模块的 A 页面跳转到 B 业务模块的 B 页面, 光靠模块自身是不能实现的,这就需要一种跨组件通信方案—— 路由(Router)

路由主要有以下两种场景:

其原理在于将分布在不同组件module中的某些类按照一定规则生成映射表(数据结构通常是Map,Key为一个字符串,Value为类或对象),然后在需要用到的时候从映射表中根据字符串从映射表中取出类或对象,本质上是类的查找

埋点则是在应用中特定的流程收集一些信息,用来跟踪应用使用的状况

2.Hook以及插桩技术

参考回答:

Hook是一种用于改变API执行结果的技术,能够将系统的API函数执行重定向(应用的触发事件和后台逻辑处理是根据事件流程一步步地向下执行。而Hook的意思,就是在事件传送到终点前截获并监控事件的传输,像个钩子钩上事件一样,并且能够在钩上事件时,处理一些自己特定的事件,例如逆向破解App)


Android 中的 Hook 机制,大致有两个方式:

插桩是以静态的方式修改第三方的代码,也就是从编译阶段,对源代码(中间代码)进行编译,而后重新打包,是静态的篡改; 而Hook则不需要再编译阶段修改第三方的源码或中间代码,是在运行时通过反射的方式修改调用,是一种动态的篡改

3.Android的签名机制?

参考回答:

Android的签名机制包含有消息摘要、数字签名和数字证书

4.Android5.0~10.0之间大的变化

参考回答:

4.1.Android5.0新特性

4.2.Android6.0新特性

4.3.Android7.0新特性

4.4.Android8.0(O)新特性

4.5.Android9.0(P)新特性

4.6.Android10.0(Q)新特性

5.说下Measurepec这个类

参考回答:

作用:通过宽测量值widthMeasureSpec和高测量值heightMeasureSpec决定View的大小
组成:一个32位int值,高2位代表SpecMode(测量模式),低30位代表SpecSize( 某种测量模式下的规格大小)。

三种模式:

决定因素:值由子View的布局参数LayoutParams和父容器的MeasureSpec值共同决定。具体规则见下图:


6.请例举Android中常用布局类型,并简述其用法以及排版效率

参考回答:

Android中常用布局分为传统布局和新型布局

7.区别Animation和Animator的用法,概述其原理

参考回答:

8.使用过什么图片加载库?Glide的源码设计哪里很微妙?

参考回答:

9.如何绕过9.0限制?

参考回答:


10.对于应用更新这块是如何做的? (灰度,强制更新、分区域更新)

参考回答:

10.1.内部更新:

10.2.灰度更新:

10.3.强制更新:

一般的处理就是进入应用就弹窗通知用户有版本更新,弹窗可以没有取消按钮并不能取消。这样用户就只能选择更新或者关闭应用了,当然也可以添加取消按钮,但是如果用户选择取消则直接退出应用。

10.4.增量更新:

二进制差分工具bsdiff是相应的补丁合成工具,根据两个不同版本的二进制文件,生成补丁文件.patch文件。通过bspatch使旧的apk文件与不定文件合成新的apk。 注意通过apk文件的md5值进行区分版本。

11.会用Kotlin、Fultter吗? 谈谈你的理解

参考回答:

Android中级面试题目汇总解答到此就结束了。想获取更多Android方面的技术知识或者面试资料的可以添加QQ群:925019412

上一篇下一篇

猜你喜欢

热点阅读