Android面试题

女生的网名这么多〃 提交于 2021-01-17 03:45:06

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源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!