2021年Android 阿里 面试题总结(附复习资料)

2020年末,在疫情的影响下,本人也很不幸成为了牺牲品,原公司项目停止,项目组解散。我也在没有任何补偿的情况下(郑州很多公司都不正规,工资发全就不错了)被迫离职。

过年期间给自己定了下个工作的期望: 1. 离开郑州 2. 公司规模要大(有成熟的产品和开发流程) 3. 有良好的技术氛围 4. 合理的加班

年后我带着这个期望,怀着少许的不按和些许的期待踏上了南下的高铁。

因为有小伙伴的内推(其实面完我都不知道内推的什么岗位),所以我的第一站是杭州:阿里

下面还是进入重点,面试流程:(没有记录全,简单的答案就不贴了,大家都知道)

1.你先做个自我介绍吧

答:我叫xx,xx年毕业于xx,毕业后去了xx公司,主要负责了xx项目。主要业绩有xx。平时喜欢xx,对代码要求高,热爱学习,布拉布拉。。。

2. 那我先问个简单的吧,简单说下activity的启动模式吧?

答:四种启动模式,分别有什么作用。

3. 现在有个场景:Activity A 启动 B ,B为 singleInstence启动模式 ,B启动 C , 这时候 在C页面按返回键,会退回到哪,再按返回退回哪?

答:C 按返回 回到A 再按返回 回到B 再返回退出

4. View的绘制流程,测量传参的形式

答:View的绘制主要是三个方法,onMouse()、 onLayout()、 onDraw(); onMouse()传参会传一个 32位的int型数字,高两位代表测量模式,低30位代表具体数值。

5.Fragment的启动栈和回退栈

答:当时没答太好,找了个文章(https://www.cnblogs.com/cqkxzsxy/p/7873796.html)

6.Service的启动方式;Service内是否可以直接做耗时操作;广播内是否可以直接做耗时操作

答:两种启动模式,start 和 bind ; service 不能直接做耗时操作,广播内也不可以直接做耗时操作。 https://blog.csdn.net/llengnuo/article/details/76772492

7.AIDL的基本流程(如何实现AIDL),不用AIDL是否可以实现进程间通讯,用什么,如何实现。

答:这个可以回答很多东西,建议好好看看,可以看下刚哥的《Android开发艺术探索》第二章,写的很具体。

8.Android线程间切换用什么,Handler的运行机制是什么。

答:https://www.jianshu.com/p/828af415472e

9.Android处理异步任务用什么,AsyncTask线程池溢出是怎么回事,如何解决。

答:异步处理: https://www.jianshu.com/p/00b130319864

线程池溢出的问题是我简历上写的,所以每个面试都会问我。大家一定要对自己简历上写的东西特别熟悉。

10.Android屏幕适配是如何做的,今日头条是如何做的适配。

答:https://www.jianshu.com/p/cd373f529bea

11.Android组件化是否使用过,组件化直接进行通讯使用什么,路由的机制是什么。

答:组件化:https://www.jianshu.com/p/8b6e6a50e21e 路由:https://www.jianshu.com/p/3358bbb84aa5

12.简单聊一下热修复技术,tinker是否支持修改Activity的配置文件,和资源文件,它是如何做到的。

答:热修复:https://www.cnblogs.com/popfisher/p/8543973.html

13.开发中常用哪些设计模式,单例模式的几种实现方式,双重检查的机制 volatile关键词有什么作用。

答:单例模式:https://www.jianshu.com/p/4f4f2fa7e735 volatile关键字:https://blog.csdn.net/nugongahou110/article/details/49927667

14.开发过JNI吗?知道JNI如何实现吗。

答:Android JNI 开发:https://www.jianshu.com/p/87ce6f565d37

15.有一个十互不相同的数字组成的数组,现在需要取两个数相加等于50的所有组合,请设计一个算法。

答:首先对数组排序,然后取出首位和末尾数字,相加 判断是否大于50,如果大于50,高位迁移,如果小于50,低位后移。

16.你还有什么想问我的?

答:这个必须要问,如果是技术问你,那你就多问些技术相关的。如果是人事问你,你就多问些公司发展的。

后记

虽然阿里的面试没有过,但是给我增加的很多经验,对我后面的面试帮助很大。现在也已经找到了心仪的工作。

这里我为同样找工作的小伙伴提供了一些相应的资料里面有20G的Android学习视频,方便大家找工作用,包含了基础、进阶、完整项目:

file

扫码关注公众号 回复 “教程” 立即获取20G资料

最后

给大家的建议,基础知识点一定要掌握捞,简历上面写的东西一定要完全熟悉。然后就是面试要自信,不卑不亢。面试完要及时整理,找到不足点及时补充自己。

最后的最后

最后祝愿大家都能找到自己心仪的工作。

本文由博客一文多发平台 OpenWrite 发布!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值