Android面试记录

301 阅读3分钟

一、平安人寿

1、lambda表达式基本格式

2、正则表达式基本格式

3、Touch事件分发流程

4、自定义悬浮窗,怎么自动贴到边缘,动画,坐标

5、Hybird开发,JS调用获取手机图片,入参,出参

JS怎么获取手机图片文件

方法一: JS中的bolb数据类型,这个就是byte,同JS操作file

参考文章:操作File的方式,BOLB类型

方法二: 参考文章:JS相互调用方式,传图片路径即可

Android 调用JS中的方法 mWebView.loadUrl(“javascript:setImag(‘”+path+”’)”);这样就实现了调用JS中的setImag(path)方法,并把图片的路径传给JS,并在Html中显示图片

//android 调用JS并设置图片
function setImag(path) {
	document.getElementById("img").src=""+path
  }

6、HTTP/HTTPS协议,GETP/POST区别,Body的格式

7、如何遍历View,获取所有子View

8、流畅度问题排查

底层原因

排查手段

优化方案

二、平安金管家

1、内存管理相关,内存泄漏,常见的现场,Bitmap优化

2、网络相关,HTTP和HTTPS差异,优化思路,TCP三次握手和四次挥手,证书验证流程,数字签名

3、View绘制流程,requestLayout和Invildate区别

4、Glide介绍,生命周期管理(透明的Fragment)

5、常见的设计模式

6、事件分发机制

1、分布、处理的机制

分发:由外层传递到内存 Window -> Activity -> ViewGroup -> View

处理:由内存到外层, 注意interceptTouchEvent的影响

2、DOWN消息是一次事件的起始,会有初始化操作,FirstTouchTarget,intercept_flag的重置,如果DOWN事件被子View消费,则FirstTouchTarget会被设置为该View,后续的MOVE和UP事件都会被该子View直接消费,无需遍历View树

3、Touch事件和Click事件的关系 Touch事件优先级更高,onTouchListener > onTouchEvent > onLongClickListener > onClickListener,优先级高的事件处理,优先级的就不再处理,即Touch事件消费了,Click事件不会再响应; Click和LongClick都是在UP事件后相应的;

4、滑动冲突如何处理 左右划由外部处理,上下划由内部处理 requestDisallowInterceptTouchEvent

7、Hanlder机制

8、流畅度优化

底层原因: 渲染机制,Vsync垂直同步,CPU,GPU,三重缓存,Choreographer

排查手段

优化方案

PDD面试

待补充

阿里中台面试 (政务方向)

项目重难点

项目架构设计

启动流程以及优化

TCP和UDP区别(车钥匙使用什么协议)

如何计算大文件的MD5值,为什么?

分块读文件进内存计算,原因是MD5算法是分为512bit作为一个chunk进行计算的,也就是说分块计算不影响最终的md5值

亿咖通科技

代理模式、适配器模式、装饰者模式区别

代理模式 -》 隔离

适配器模式 -》 兼容

装饰者模式 -》增强

适配器模式,装饰模式,代理模式异同

RecycleView的使用

Glide和Fresco区别

RecycleView的使用

Andorid Q版本特性

java 动态代理

MVP和MVVM 差异点

项目的重难点,以及核心逻辑

线上监控方案,即线上问题排查

崩溃日志收集框架 - 方案选型调研