新鲜出炉 Android面试总结(京东、新东方、货拉拉

头条二面失败问题:

(1)Permission标签和uses-permission标签的区别,设置Permission标签,如何保证其他进程app不会访问到act界面?

(2)多手势的具体实现

(3)转场动画具体实现

(4)画中画具体实现,悬浮窗口具体实现

(5)aidl binder异步调用具体实现

(6)如何实现定时任务

全是具体实现,我就呵呵了。

小红书:

(1)concurrentHashMap 如何加锁的

(2)measure参数详解,view设置wrap不起作用

(3)Bind service,如何实现保活

(4)两个进程act,如何加快启动速度

(5)性能优化(面试官老插嘴,都说不上话)

(6)Eventbus如何实现线程的切换

(7)jetpack的Navigation的xml引用,在什么时候调用的?

(8)Inflater.inflate如何实现xml转java的(framework),方法中的各个参数含义。

通过的面试题,按个人梳理后列举

基本问题

(1)范型:<super>和<extends>的具体区别;在java编译过程中的实现原理(范型擦除);逆变协变(范型子类的转换问题)

(2)性能优化(多家都问了,很大的一个技术专题,靠自己总结),个人笔记总结了7块:

启动速度优化

布局优化

代码优化

内存优化(oom anr)

app瘦身

网络优化

电池使用优化

安全优化

存储优化

(3)ANR:给个标准的回答流程:anr的几种原因(深入到源码,讲讲AMS.appNotResponding()的流程,你就腻害了),分析工具等怎么分析定位到具体原因。

(4)内存溢出(OOM)+内存泄漏的区别,分析工具或者开源leakcanary,优化方案,可能会问你,handler怎么导致的oom,如何优化等

(5)事件分发机制+嵌套滑动机制原理,区别

(6)handler相关(给的很全了):流程;threadLocal+内部原理(threadLocalMap如何实现的,key,val是啥,弱引用,是否引起内存泄露等);loop()为什么不阻塞主线程;什么是同步屏障(屏障消息);什么是闲时机制(IdleHandler)+作用;消息队列的消息排序顺序(delay如何实现的);Message.obtain原理(用了那种设计模式:享元);实现子线程的handler流程;handler内存泄漏及解决方案;handler和looper,MessageQueue的关系(几个handler几个looper,handler的msg可以再别的handler的handleMessage方法上处理吗);扩展:子线程和主线程通讯,有哪些方案。

(7)自定义View相关:

framework流程;

mesureSpec的作用;

自定义extends View时,手动处理wrap_content时的坑:直接继承View的控件需要重写onMeasure方法并设置wrap_content时的自身大小,否则在布局中使用 wrap_content就相当于使用match_parent;

postInvalidate()和invalidate()和requestLayout()的区别(自己总结下吧,里头有很多点要记住);

在Activity的onCreate方法中获取控件宽高的几种方式;

View的Draw(Canvas canvas)的绘制流程;

(8)京东一家问了: io流(字符流,字节流,file和其它流的区别),流如何处理(try catch,流关闭等)

  • 26
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值