Android面试题总结(一天搞一个吧)
Posted 怪兽N
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android面试题总结(一天搞一个吧)相关的知识,希望对你有一定的参考价值。
- 方法参数以及不同的返回值的意义
- ListView中如何使不同的Item加载不同的样式
- ListView中convertview的作用以及意义
- RecyclerView与ListView的区别
- 如何解决ListView异步加载图片的问题
- ContentProvider的用法,详细到方法
- 跨进程通信的方式
- AIDL原理
- Binder原理,详细到方法
- 启动一个Server和绑定Server的区别
- 举例Server和绑定Server的不同使用场景
- IntentServer与普通Server的区别
- IntentServer的使用场景
- IntentServer原理
- 如何保证Server不被杀死
- 实现多线程的几种方法
- 几种动画
- 如何自己去实现一个动画,具体到方法
- 属性动画的原理
- 介绍一下你们项目的架构
- Rxjava是怎么实现线程切换的
- Rxjava自定义操作符
- ARouter的原理
- ARouter怎么实现接口调用
- ARouter怎么实现页面拦截
- MVP怎么处理内存泄漏
- OkHttp怎么实现连接池
- 如果让你来实现一个网络框架,你会考虑什么
- 你做过什么性能优化的工作
- 热修复的原理,资源的热修复的原理,会不会有资源冲突的问题
- ViewPager中嵌套ViewPager怎么处理滑动冲突
- android源码中有哪些设计模式
- 说说binder机制的原理
- 为什么考虑换一份工作?
- 在你们公司这几年感觉怎么样?
- 技术选型上,为什么这么考虑?从开发效率,产品性能,产品质量,产品体验等方面考虑
- 你们的产品为什么被砍掉,从哪方面考虑
- 在这几年里,你有做过什么觉得最有价值的工作
- 你还有什么要问我的吗?目前有几个offer,倾向性是怎样的?
- 你们的项目中有什么难点?
- 你们项目的稳定性如何?有做过什么稳定性优化的工作?
- WebView性能优化做过什么工作?
- AIDL in out oneWay代表什么意思?
- 线程池了解多少?拒绝策略有几种,为什么有newSingleThread
- 跨进程通信了解多少?管道了解吗?
- 协程介绍一下,讲一个协程的scope与context,协程的+号代表什么
- Handler休眠是怎样的?epoll的原理是什么?如何实现延时消息,如果移除一个延时消息会解除休眠吗?
- 算法斐波那契台阶
- 手写生产者消息者模型
- IdleHandler应用场景
- 自定义圆角图片
- 自定义LinearLayout,怎么测量子View宽高
- setFactory和setFactory2有什么区别?
- 插件化换肤方案
- 插件化的原理,startActivity hook了哪个方法
- 手势操作ActionCancel后怎么取消
- 怎么优化xml inflate的时间,涉及IO与反射。了解compose吗?
- 算法题:二叉树的每一层最左边节点
- RecyclerView 缓存结构,RecyclerView预取,RecyclerView局部刷新
- setOnTouchListener,onClickeListener和onTouchEvent的关系
- 一个大致有序的数组如何排序,最快时间复杂度
- 如果叫你实现,你会怎样实现一个多主题的效果
- 如何自定义实现一个FlexLayout
- tinker的原理是什么,还用过什么热修复框架,robust的原理是什么?
- 说说你对注解的了解,是怎么解析的
- synchronized是公平锁还是非公平锁,ReteranLock是公平锁吗?是怎么实现的
- 泛型是怎么解析的,比如在retrofit中的泛型是怎么解析的
- mvp与mvvm的区别,mvvm怎么更新UI,databinding用得多吗,databinding的原理?
- kotlin ?的原理
- 在项目中有直接使用tcp,socket来发送消息吗
- 如何在网络框架里直接避免内存泄漏,不需要在presenter中释放订阅
- 生命周期都是通过什么调用的?有用过AIDL吗?
- 讲一下RecyclerView的缓存机制,滑动10个,再滑回去,会有几个执行onBindView
- 如何实现RecyclerView的局部更新,用过payload吗,notifyItemChange方法中的参数?
- 讲讲LinkedHashMap的数据结构
- put post有什么区别
- A Activity打开B Activity的生命周期变化,会有什么方法打断吗?
- Fragment hide show生命周期变化
- Fragment replace生命周期变化
- 为什么考虑换工作
- 屏幕适配做过什么工作?
- 你们网络框架用的什么?为什么?
- 如果让你来开发B站的一个页面,哪一个页面可以很快入手
- 性能优化你做过什么工作?
- h5与native通信你做过什么工作?
- 插件化的主要优点和缺点是什么?
- 你觉得B站目前的APP有什么问题?
- 如果产品要求你开发一个音频播放功能,你会怎么着手?预计会有什么坑?
- ViewPager切换Fragment什么最耗时?
- 线程间同步的方法
- 锁之间的区别
- 介绍一下你自已和项目
- 说说为什么考虑离职
- 说说对你们原来公司的印象
- 为什么想来B站?你在B站上常常在看什么?
- 期望薪资是多少?
- 你对搬到上海有什么想法?
- ViewPager2原理
- LifeCycle的原理是怎样的?
- ViewModel为什么在旋转屏幕后不会丢失状态
- Drawable与View有什么区别,Drawable有哪些子类
- 属性动画更新时会回调onDraw吗?
- OkHttp网络拦截器,应用拦截器?OKHttp有哪些拦截器,分别起什么作用
- 自定义实现一个九宫格如何实现
- PathClassLoader与DexClassLoader有什么区别
- 这些年有做一些什么比较难的工作?
- 编译时注解与运行时注解,为什么retrofit要使用运行时注解?什么时候用运行时注解?
- kotlin lazy使用,lazy viewmodel
- 有没有看一下Google官方的ViewModel demo
- ViewModel在Activity初始化与在Fragment中初始化,有什么区别?
- kotlin与Java互相调用有什么问题?
- retrofit怎么做post请求
- CoordinatorLayout自定义behavior,可以拦截什么?
- 你们的项目中做过什么比较难的工作?
- 视频播放,一个player怎么实现预加载,避免loading
- webView加载本地图片,如何从安全方面考虑
- 有什么区别
- https与http有什么区别
- 有用过什么加密算法?AES,RAS什么原理?
- android跨进程通信了解吗?共享内存用过吗?binder怎么验证pid?binder驱动了解吗?
- Seriazable与Parceable的区别
- Bundle是什么数据结构?利用什么传递数据
- Jvm的内存结构,Jvm的垃圾回收,方法区有什么东西?
- evaluateUrl区别
- 有没有做过什么WebView秒开的一些优化
- 你们的项目中有什么难点?
- native如何对h5进行鉴权,让某些页面可以调,某些页面不能调
- 有看过哪些框架的源码吗?
- viewModel是怎么实现双向数据绑定的?
- viewModel怎么实现自动处理生命周期?
- 图片加载优化有什么经验吗?
- viewpager切换掉帧有什么处理经验?
- 一个wrap_content的ImageView,加载远程图片,传什么参数裁剪比较好?
- 两个getDrawable取得的对象,有什么区别?
- 补间动画与属性动画的区别,哪个效率更高?
- jsBridge实现方式
- 平常是怎么了解一些新知识与业界动态的,最近有什么印象深刻的文章
- 平常抓包用什么工具?
- Mvp与Mvvm有什么区别?
- JVM类加载机制了解吗,类什么时候会被加载?类加载的过程具体生命周期是怎样的?
- Handler内存泄漏的GCRoot是什么?
- 动画里面用到了什么设计模式?
- OkHttp里面用到了什么设计模式?
- OkHttp连接池是怎么实现的?里面怎么处理SSL?
- 泛型为什么要擦除?kotlin的泛型了解吗?泛型的pecs原则
- 同步屏障
- 性能优化做过什么工作?
- RecyclerView的缓存结构是怎样的?缓存的是什么?cachedView会执行onBindView吗?
- RecyclerView嵌套RecyclerView,NestScrollView嵌套ScrollView滑动冲突
- ViewGroup在Action_Move时onIntercept返回true,事件怎么传递
- Launcher启动图标,有几个进程?
- JMM可见性,原子性,有序性,synchronized可以保证什么?
- 源码中有哪里用到了AtomicInt
- AQS了解吗?
- Activity内LinearLayout红色wrap_content,包含View绿色wrap_content,求界面颜色
- ViewModel的使用中有什么坑?
- 有用DSL,anko写过布局吗?
- HashMap查找的时间复杂度是多少?
- 阿里编程规范不建议使用线程池,为什么?
- 四种线程池原理?
- 了解哪些算法?
- IdleHandler用过吗?
- 如何封装一个字符串转数字的工具类
- 如何求当前Activity View的深度
- 多进程怎么实现?如果启动一个多进程APP,会有几个进程运行?
- 反射可以反射final修饰的字段吗?
- Activity与AppCompactActivity区别,Activity会打包到包里面去吗?
- 如何让两个线程循环交替打印
- Interupt一定有效吗?
- 动画连续调用的原理是什么?
- 做过一些SDK的操作吗?
- 协程可以在Java项目中使用吗?
- SharedPreference原理?读取xml是在哪个线程?
- 了解APK打包的过程吗?
- class文件的组成?常量池里面有什么内容?
- 自动装箱发生在什么时候?编译期还是运行期
- bugly日志收集的原理是什么?
- 启动优化做过什么工作?如果首页就要用到的初始化?
- DataBinding原理
- 插件化的原理是什么?有没有什么非运行时插件化的解决方案?
- ARouter的原理是怎样的?注解处理器是处理java还是字节码
- java和字节码有什么区别?
- kotlin空安全的原理是什么?
- 性能优化做过什么工作?有用过什么工具?有没有精确测量的工具?
- kotlinc与javac编译字节码有什么区别?
- 你在团队中是怎样一个角色?
- 你有没有做什么推进项目的工作
- 说说热修复的原理?
- 简单描述下Handler,Handler是怎么切换线程的,Handler同步屏障
- Glide的缓存,有用过Glide的什么深入的API,自定义model是在Glide的什么阶段
- 讲讲mvc,mvp模式,presenter内存泄漏的问题
- ANR了解过吗?有没有实际的ANR定位问题的经历
- 性能优化你做过哪些?
- 有什么实际解决UI卡顿优化的经历
- 有做过什么Bitmap优化的实际经验
- 项目搭建过程中有什么经验,有用到什么gradle脚本,分包有做什么操作
- 组件化有详细了解过吗?ARouter详细原理
- 讲一下事件分发机制,RecyclerView是怎么处理内部ViewClick冲突的
- mainfest中配置LargeHeap,真的能分配到大内存吗?
- string,equals,==有什么区别
- AsyncTask内存泄露
- dispatchTouchEvent,onInterceptEvent,onTouchEvent顺序,关系
- onMeasure,onLayout,onDraw关系
- 算法题,反转数组
- 算法题,链表求和
- 说说你对协程的理解
- 协程怎么取消
- 说说MVP与MVVM的区别
- 算法题,二叉树的最大深度
- 如果android端和ios端调一个接口,一个通了一个没通,你会如何解决
- 如果android端和IOS端调一个接口,一个比较慢,一个比较快,有什么思路
- ARouter的原理是什么?如果不用ARouter,你会怎么去解藕。接口?设计接口有什么需要注意的?
- h5与native交互做过什么工作?
- 登陆功能,登陆成功然后跳转到一个新Activity,中间涉及什么?从事件传递,网络请求,AMS交互角度分析
- AMS交互调用生命周期是顺序的吗?
- binder进程间通信可以调用原进程方法吗?
- mvp与mvvm有什么区别?
- token放在本地如何保存?如何加密比较好?
- viewModel的原理,为什么可以在Activity销毁后保存数据
- mvvm双向数据绑定的原理是怎样的?ViewModel
- 说说你们项目中的难点是怎样的?
- 伪代码实现一个长按事件
- 实现一个下载功能的接口
- 说说HashMap的原理
- 说说Java的内存分区
- 讲讲你对垃圾回收机制的了解,老年代有什么算法?
- 说说你对volatile字段有什么用途?
- 说说事件分发机制,怎么写一个不能滑动的ViewPager
- 说说你对类加载机制的了解?DexClassLoader与PathClassLoader的区别
- 说说插件化的原理,资源的插件化id重复如何解决?
- mvp与mvvm模式的区别是什么?
- JetPack组件用过哪些?lifeCycle的原理是什么?如果在onStart里面订阅,会回调onCreate吗?
- 单例模式有什么缺点?
- 说说App的启动过程,在ActivityThread的main方法里面做了什么事,什么时候启动第一个Activity?
- 说说你对Handler机制的了解,同步消息,异步消息等
- 说说你对屏幕刷新机制的了解,双重缓冲,三重缓冲,黄油模型
- onCreate,onResume,onStart里面,什么地方可以获得宽高
- post的源码吗?
- attachToWindow什么时候调用?
- DataBinding的原理了解吗
以上是关于Android面试题总结(一天搞一个吧)的主要内容,如果未能解决你的问题,请参考以下文章