2020非科班生的Android秋招,金九银十求职经历 (快手,flutter安装包大小

本文记录了一位非科班出身的开发者在2020年秋季求职Android岗位的经历,涉及快手、拼多多、新美大的面试过程。面试内容涵盖Android基础、OkHttp、事件分发、性能优化、源码阅读、并发安全、数据同步、加密算法、网络请求、UI自动化测试等,同时也提及了Flutter安装包大小优化的话题。
摘要由CSDN通过智能技术生成

代码题

1.手写二分查找

二面(一小时)

Android问题:

1.事件分发详细的讲(三个核心函数以及整体过程),详细的讲下dispatchTouchEvent,子View如何阻止父View拦截事件,Action_Cancel什么时候会发生,一个应用场景:两个并排Button,点击button之后,又移动到另一个button,但不点击滑动到外面会经过发生哪些事件。

2.OkHttp

  1. Message.obtain()有什么好处,为什么不使用new Message(防止多次Gc)

4.LinearLayout和RelativeLayout的区别,优缺点,层级嵌套等等等

5.ConstrantLayout讲讲特点

6.性能优化在项目中做过哪些

7.读过哪些Android的源码

8.BroadCastReceiver的源码看过么?

9.FrameLayout了解么?

代码题:

1.场景题,实现一个ActionMangager,其中包括 registerAction(String action, IActionCallback callback), unregisterAction(IActionCallback callback); notifyChange(string action)三个方法。类似于BroadCastReceiver,一个action可能对应多个Callback,notifyChange中要回调action对应的所有Callback对象的方法。同时还问了怎么满足线程安全的问题等等,会根据代码继续问问题。

2.之字形遍历二叉树

拼多多

笔试

基于给定接口实现ImageLoader框架

一面
  1. 自我介绍

  2. 静态变量和实例变量的区别

  3. 重写equals()方法的注意事项;两个list是怎么判断是否相等的?

  4. HashTable和HashMap的区别;是否允许键为null

  5. 数据同步的方法;synchronized可以在对象上加锁吗?在方法上加锁是加在哪个对象上?

  6. 进程间读写文件的同步方式

  7. 了解哪些加密算法;AES和RSA的区别

  8. HTTP响应码

  9. 进程优先级;Android进程优先级

  10. 如何使一个Service处于另一个进程中;进程的服务保活

  11. Touch事件分发机制

  12. 如何实现客户端长连接的?重试策略是怎样的?如何监控HTTP请求的?

  13. 提问问题

二面
  1. 三道题选两道http://collabedit.com/cx9uv

  2. 大顶堆和栈的概念

  3. 最短路径算法概念

  4. 如何缓存HTTP

HR面

也不能算是HR面吧,简单聊了聊。

  1. 项目介绍;担任的角色

  2. 家庭情况;期望薪资

  3. 在哪里实习?实习的时候拿到过哪些offer

  4. 介绍了拼多多的待遇以及工作制度

三面


  1. 自我介绍;项目问了些

  2. 如果安卓是单线程的,那么如何处理界面刷新和网络操作两个模块

  3. 算法题

新美大

一面
  1. 自我介绍

  2. 为什么选用OkHttp?为什么用MVP模式?

  3. ImageLoader的三级缓存怎么做的;OkHttp的磁盘缓存怎么做的?

  4. 如何删除文章的广告之类的?有遇到不符合的情况吗?

  5. HashMap是线程安全的吗?HashMap线程不安全会造成什么现象?如何使HashMap变为线程安全的?

  6. Java的内存模型;GC;遇到过OOM情况吗?有什么可以检测内存泄露的工具

  7. 文章列表用的什么什么控件?ListView如何优化?RecyclerView用过吗?和ListView的区别

  8. 应用中有几个Activity;ViewPager嵌套Fragment怎么用,遇到过什么坑没?

  9. 自定义View时自定义属性该怎么做?

  10. 印象最深刻的项目,或难点

二面
  1. 自我介绍

  2. 界面展示用的ListView还是RecyclerView?如何做文章的过滤的?如果改成别的网站需要怎么做?

  3. ImageLoader怎么实现的?内存缓存使用的是什么策略?

  4. 项目中TCP+HTTP+JSON是怎么回事?

  5. android ui自动化测试

  6. 实习的项目

  7. 对Kotlin的了解;准备让用Kotlin写一个界面的

  8. 给了一个布局,让说说看怎么编写

  9. 了解啥新技术

  10. 问问题

三面
  1. 自我介绍

  2. 为什么选用AES加密?

  3. 全程没聊技术,介绍他所在部门做的事情,问我感不感兴趣,我也提问了一些问题,聊得比较投机

  4. 手上的offer

HR面

问了一些基本信息,手上offer情况,对薪资的要求。由于三面全程没问技术,心里比较虚。


附上简历中配置的个人技能


  • 熟悉常用设计模式:策略、责任链、单例、装饰者、代理、观察者、适配器、外观/门面

  • 研究过Mybatis3源码,熟悉sqlsess

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整资料开源分享

ion执行流程、熟悉一级缓存、二级缓存原理

  • 研究过Spring5注解方式启动Spring的源码,熟悉Springbean生命周期、SpringAOP底层原理、Spring事务底层原理、Spring循环依赖解决的原理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值