写点什么

字节跳动,华为,阿里巴巴,小米

用户头像
Android架构
关注
发布于: 17 小时前

1、handler 机制,sendMessage 和 post(Runnable)的区别。


2、ThreadLocal 原理,底层实现


3、HashMap 底层,扩容,LinkedHashMap


4、Service 的 onBind 和 onStart 差别


5、Activity 启动生命周期,A 跳转 B


6、Android 持久化方案,SharedPreference 是否可以跨进程通讯。ContentProvider


7、Cl


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


assLoader 机制,双亲委派。如果我要写一个 Activity 类,那怎么保证加载的是我自己写的 Activity


8、算法题,约瑟夫环


9、反问


二面(1hour):


0、自我介绍


1、项目技术点详解


2、写过什么自定义 View


3、OkHttp 代码看过吗,用了什么设计模式


4、MVC、MVP 区别,项目中的实现。


5、LiveData 和 EventBus 的相关讨论,真的是讨论,畅所欲言


6、看过哪些源码


7、SharedPreference 相关


8、Android 动画了解吗,用过什么


9、TCP、UDP 区别,面试时的语音用的是什么,为什么要这么用。


10、代码题,5 个线程对一个 int 进行累加到 1000.


11、反问


三面(50mins):


0、自我介绍


1、算法,跳棋盘


2、浏览器输入 URL 到渲染全过程


3、Http 请求报文响应报文


4、http2.0 有哪些优化


5、用过哪些网络库


6、OkHttp 的 Intercepter


7、Android 持久化方式


8、Java 线程同步的数据结构


9、反问


总结:字节跳动面试官都很和善,所有的问题都是在讨论,我不会的他们也容许我猜一下,然后告诉我猜的对不对……



华为


一面(1hour):


0、自我介绍


1、项目介绍,技术点相关。


2、C++和 Java 区别,GC


C++不熟,只能说内存管理相关的问题,所以就问到了 GC。然后说分代收集算法。老年代担保、元数据区从 JVM 移到了本地内存这些。


3、线程相关,Runnable 和 Thread 的区别。


Thread 类是实现了 Runnable 接口,平时使用起来可以使用 start 方法调用。线程池基本传 Runnable 对象,平时也是线程池用的多,所以具体相关不太熟。


4、线程池


5、synchronized,volatile


6、继承相关,多重继承和接口


7、网络编程


8、UPD,TCP 区别


9、最大的优点


10、最大的缺点


11、算法二叉树中序遍历,真是早起毁一天,竟然没撕出来,我真想给自己两耳光。不过面试官给我总结的很好,说要利用栈的特性,先进后出,所以要保证左子树先进根结点再进,这么思考之后就顺利了很多。


总结:早上状态很差,简单问题也会卡壳,希望大家还是能够选择自己状态好的时间点面试……。


二面(40mins):


0、介绍一下项目


1、Android 四大组件,详细讲一下。


2、Launcher 启动 APP 的全过程。


icon 存入口 Activity 信息


AMS 通知 Launcher 去 pause。


Launcher 通知 AMS 已经 pause


AMS 检查进程是否已经启动,如果不启动则启动进程。并且调用 ActivityThread 的 main 方法。


启动之后通知 AMS 已经启动


然后 AMS 将入口 Activity 信息传递给 APP。


APP 启动对应入口 Activity,并且创建对应上下文并且调用 Activity 的 onCreate 方法。


3、进程间通信,AIDL,Binder。扯了一会说进程间通信平时怎么做的,就说了一下 AIDL 相关的 Demo 实现什么的。说到了自己程序里面有拉起微信的这个功能(也就是广播)。


4、设计模式了解吗,平时用过哪些设计模式。


5、算法题:输入一个数 n,代表有 n 个点,一个二维数组,二维数组代表相连的点,要求输出连通起来的点。


如果 n=6,数组假设是{{1,2},{2,3},{4,5}},则输出{{1,2,3},{4,5},{6}}


吐槽一下,本来 24 号早上约的 9.30 和 10.30 两轮面试,一次约两轮我也是醉了。然后就二面拖了快一个小时才面上。早起代码状态真的差,这两题都写了分别用了快 20 分钟,真的捉急。


一个午觉起来,收到了面试通过的短信,效率还是非常高的。还以为挂了呢,看来只是面试官想吃饭了……


三面(<30 分钟):


0、自我介绍


1、公司实习期项目


说了 RePlugin 框架原理,说了 ffmpeg 动态链接库开发方面的失败经历,说了 Android 的适配,和最近影响到的 AndroidQ 相关新特性的适配。


2、自己大学生活中攻克的最难的技术难点。


3、什么情况下会压力特别大,怎么处理的。


4、职业规划



综合起来就是了解个人情况,技术问题都是自己说的。还是非常愉快轻松的。


总结:华为面试安排非常紧张,但是反馈效率特别高,一二面结束马上会短信通知是否通过。然后隔天直接三面,流程走的非常快。



阿里巴巴


一面 50 分钟


1.项目相关


2.安卓 AIDL


3.四大组件


4.Activity 四种启动模式


5.Fragment 生命周期


6.Activity 之间的通信方法


7.SSL/TLS,以及位于哪一层


8.GET 和 POST 区别,登录用哪个


  1. 算法:层序输入二叉树,计算深度


二面 25 分钟


1.项目相关


*三面 1 小时


1.项目相关及拓展


2.场景实现结合安卓特性分析


3.算法:4 道数组题及其变形题,主要考逻辑


HR 面


1.常规问题


项目是两个 local / offline 安卓 app,总体上项目扯得比较多,包括底层原理、开发需求、实现方法、优化拓展等



小米


第一面:


  1. 问了一些 Android 基础;

  2. 2 个算法


第二面:


  1. 问了一些 JVM 相关;

  2. 类加载器;

  3. FrameWork 层。


第三面技术经理:


  1. 问了一下项目经历;

  2. 离职原因;

  3. 期望薪水;

  4. 解决问题能力等。

  5. 顺便写了 1 个算法。


第四面,第四轮貌似是个技术专家之类的角色:


  1. 一直在追问各种原理和基础细节,还有一些比较古怪的问题,考察基础和反应能力;

  2. 1 个算法

  3. 总结:有 4 个算法小米的技术团队还是比较强的,一线工程师的基础都很扎实。不是很熟悉的技术不要往简历里面写,被揪住了是会扣分的。很注重基础细节,基础一定要扎实。



腾讯


一面(30mins):


0、自我介绍


1、View 过度绘制有什么工具进行查看


2、SharedPreference 两个进程同时进行读写会有什么问题


3、Android 进程间通信方式


4、热修复原理,讲的 Tinker


5、DNS 协议,CDN


6、算法题,一个数组有两个数字不同,其他都成对出现,怎么找出来


7、智力题,一块钱买一瓶水,两个空瓶换一瓶水,n 元能喝几瓶水。


总结:面试完又被说表现得不错了……


二面(1hour30mins):


0、大模拟代码题……一个小时


三面(2hours30mins):


0、自我介绍


1、实习工作深挖


2、RePlugin 原理深挖,其他插件化框架对比


3、为什么要选择 RePlugin 框架


4、你觉得自己对于 Android 掌握到了什么地步


5、看过什么源码


6、你为什么要看源码


7、你为什么要写博客


8、知道哪些著名开源框架


9、什么是进程,进程调度算法


10、什么是线程

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
字节跳动,华为,阿里巴巴,小米