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

这篇博客汇总了作者在面试京东、新东方、货拉拉等公司时遇到的Android面试问题,涵盖基本问题、Java基础、第三方框架、系统框架、HR面试等多个方面。涉及内容包括权限标签、手势识别、转场动画、Binder、性能优化、设计模式、线程池、HTTPS抓包等。同时,博主分享了作为野生程序员的成长经历和心得,强调技术总结、源码阅读和笔记习惯的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

头条二面失败问题:

(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和其它流的区别),

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值