2017Android 面试回忆录(腾讯/阿里/滴滴/美团...)(附答案 )更新中。。


美团

☐ 线程挂起,休眠,释放资源相关,唤醒,线程同步,数据传递,问了很多线程的问题,问了20分钟大概
http://www.cnblogs.com/wxd0108/p/5479442.html

☐ static synchronized 方法的多线程访问和作用,同一个类里面两个synchronized方法,两个线程同时访问的问题
lock更灵活,可以自由定义多把锁的枷锁解锁顺序( synchronized要按照先加的后解顺序)
提供多种加锁方案,lock 阻塞式, trylock 无阻塞式, lockInterruptily 可打断式, 还有trylock的带超时时间版本。
本质上和监视器锁(即synchronized是一样的)
能力越大,责任越大,必须控制好加锁和解锁,否则会导致灾难。
和Condition类的结合。
☐ 内部类和静态内部类和匿名内部类,以及项目中的应用
http://blog.csdn.net/cws1214/article/details/52055980
☐ 泛型是什么以及在项目中的应用
http://www.cnblogs.com/lwbqqyumidi/p/3837629.html
☐ handler发消息给子线程,looper怎么启动
http://www.jianshu.com/p/9e4d1fab0f36
☐ down、move、up事件的传递
http://www.cnblogs.com/sunzn/archive/2013/05/10/3064129.html
https://my.oschina.net/mstian/blog/284268
☐ activity栈
http://blog.csdn.net/coding_glacier/article/details/7415016
☐ 封装view的时候怎么知道view的大小
http://blog.csdn.net/fwt336/article/details/52979876
☐ intent-filter
http://blog.csdn.net/cnnumen/article/details/8464786
☐ arraylist和linkedlist的区别,以及应用场景
http://pengcqu.iteye.com/blog/502676
☐ 怎么启动service,service和activity怎么进行数据交互
http://blog.csdn.net/hhhccckkk/article/details/44037719
☐ 下拉状态栏是不是影响activity的生命周期,如果在onStop的时候做了网络请求,onResume的时候怎么恢复
亲测 不会走onPause 
☐ view渲染

阿里巴巴

☐ LRUCache原理

http://www.cnblogs.com/tianzhijiexian/p/4248677.html

☐ 图片加载原理

http://www.cnblogs.com/cr330326/p/5585021.html

☐ 模块化实现(好处,原因)

http://www.tuicool.com/articles/beIBNfi

☐ JVM
☐ 视频加密传输
☐ 统计启动时长,标准

☐ 如何保持应用的稳定性

减少app crash 性能检测工具 开发流程 代码规范 等方面

☐ ThreadLocal 原理

http://blog.csdn.net/imzoer/article/details/8262101

☐ 谈谈classloader
☐ 动态布局
☐ 热修复,插件化
☐ HashMap源码,SpareArray原理
☐ 性能优化,怎么保证应用启动不卡顿
  • ☐ 怎么去除重复代码

  • ☐ SP是进程同步的吗?有什么方法做到同步

  • ☐ 介绍下SurfView

  • ☐ HashMap实现原理,ConcurrentHashMap 的实现原理

  • ☐ BroadcastReceiver,LocalBroadcastReceiver 区别

  • ☐ Bundle 机制

  • ☐ Handler 机制

  • ☐ android 事件传递机制

  • ☐ 线程间 操作 List

  • ☐ App启动流程,从点击桌面开始

  • ☐ 动态加载

  • ☐ 类加载器

  • ☐ OSGI

  • ☐ Https请求慢的解决办法,DNS,携带数据,直接访问IP

  • ☐ GC回收策略

  • ☐ 画出 Android 的大体架构图

  • ☐ 描述清点击 Android Studio 的 build 按钮后发生了什么

  • ☐ 大体说清一个应用程序安装到手机上时发生了什么;

  • ☐ 对 Dalvik、ART 虚拟机有基本的了解;

  • ☐ Android 上的 Inter-Process-Communication 跨进程通信时如何工作的;

  • ☐ App 是如何沙箱化,为什么要这么做;

  • ☐ 权限管理系统(底层的权限是如何进行 grant 的);

  • ☐ 进程和 Application 的生命周期;

  • ☐ 系统启动流程 Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程

  • ☐ recycleview listview 的区别,性能



滴滴

  • ☐ MVP

  • ☐ 广播(动态注册和静态注册区别,有序广播和标准广播)

  • ☐ service生命周期

  • ☐ handler实现机制(很多细节需要关注:如线程如何建立和退出消息循环等等)

  • ☐ 多线程(关于AsyncTask缺陷引发的思考)

  • ☐ 数据库数据迁移问题

  • ☐ 设计模式相关(例如Android中哪里使用了观察者模式,单例模式相关)

  • ☐ 微信的聊天数据在本地都是加密处理的(防止root了被破解),设计一个类似的本地数据存储系统

  • ☐ x个苹果,一天只能吃一个、两个、或者三个,问多少天可以吃完

  • ☐ Android相关你最擅长哪一块

  • ☐ TCP与UDP区别与应用(三次握手和四次挥手)涉及到部分细节(如client如何确定自己发送的消息被server收到) HTTP相关 提到过Websocket 问了WebSocket相关以及与socket的区别

  • ☐ 是否熟悉Android jni开发,jni如何调用java层代码

  • ☐ 进程间通信的方式

  • ☐ java注解

  • ☐ 计算一个view的嵌套层级

  • ☐ 项目组件化的理解

  • ☐ 基于自身工作经验和计算机相关知识,给出 移动端地图局部加载 瓦片大小的像素大小估值

  • ☐ 多线程断点续传原理

  • ☐ Android系统为什么会设计ContentProvider,进程共享和线程安全问题

  • ☐ jvm相关

  • ☐ Android相关优化(如内存优化、网络优化、布局优化、电量优化、业务优化)

  • ☐ EventBus实现原理


腾讯OMG

  • ☐ synchronize用法

  • ☐ volatile用法

  • ☐ 动态权限适配方案,权限组的概念

  • ☐ 网络请求缓存处理,okhttp如何处理网络缓存的

  • ☐ 图片加载库相关,bitmap如何处理大图,如一张30M的大图,如何预防OOM

  • ☐ 进程保活

  • ☐ listview图片加载错乱的原理和解决方案

  • ☐ https相关,如何验证证书的合法性,https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解

发布了56 篇原创文章 · 获赞 3 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/haoxuezhe1988/article/details/73995890