Android面试题[百度,小米,美团]
类加载器
双亲委托机制
自己定义java.lang.String, 在其他地方调用String类,调用的是系统的还是自定义的
同一个类用两个类加载器加载是否一样
类加载器的分类
类加载器在插件化中的应用
Handler Message
一个线程有几个Handler,如果一个线程有多个Handler,那么怎么系统怎么确定某个Message所回调到的handleMessage方法
两个副线程可以使用Looper.prepare公用一个MessageQueue吗?如果可以怎么实现
HandlerThread的用法
多线程
volatile关键词
lReentrantLock
synchronized(同步代码快,同步函数,同步变量有什么区别)
有使用过什么多线程类?
(回答任意一个都会追究到源码级,例如说AsyncTask,会问AsyncTask的线程池,并行和串行实现以及BlockingQueue的源码)
A,B两线程同时启动,A执行到某一段必须等待B执行完才能接着执行,怎么实现?(消费者生产者模式)
设计模式
书写一个线程安全的单例模式(纯手写)
列举几个源码中你觉得用的比较好的设计模式并举例(AlertDialog Builder)
算法(书写代码)
自己实现String的equals方法
字符串反转算法
十二个球,其中有一个球和其他球重量不一样,使用天平用最少的次数找到该球
计算二叉树的最长叶子(从根到叶子的最长距离)
用两个栈模拟一个队列
Binder
Binder在BindingService中的使用场景
简要描述同步Binder和异步Binder实现
Binder在SM(ServiceManager)中的应用
View
如何实现右滑返回上一页(需要从Activity.dispatchTouchEvent描述到View消耗实现,设计到getX,getRawX,ACTIONDOWNACTION_MOVE,interceptTouchEvent,dispatchTouchEvent,onTouchEvent等)
如果ViewGroup的interceptTouchEvent返回true,事件会传递到那里
自定义View的方式及相关函数
Animation
属性动画(涉及到ValueAnimator和ObjectAnimator,TranslateAnimator,会说出一个动画效果让你讲实现思路)
怎么实现一个3D旋转动画(Camera API)
属性动画的内部实现
反射和依赖注入
Dagger2
ButterKnife
项目架构
MVP
MVVM
RXJava
列举几个RXJava常用的操作符(我说明了map和flatMap)
Volley
StringRequest和JsonObjectRequest等请求类说明(源码级,我回答的略渣记得)
操作系统相关
信号量
跨进程通信
Https与Http
进程保活
其他
String#hashCode()
SurfaceView,GLSurfaceView,TextureView
本文分享自微信公众号 - 小海编码日记(gh_1f87b8c00ede)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4696993/blog/4738801