Android 基础相关面试题 ,包含[Java基础,Kotlin基础,android 源码基础,android基础拔高]
android相关 基础题:- Application的Context和Activity的Context区别?
- Context是接口还是抽象类?它有几个实现类?区别是什么 ?
- LayoutInflate 解析布局,inflate方法的参数分别起到什么作用?
- 哪些 Context调用 startActivity 需要设置NEW_TASK,为什么?
- RecyclerView 相关。
- Dialgo 和DialogFragment的区别?
- 异步线程可以操作UI吗?为什么?
- 自定义控件测量模式 ,match_parent,wrap_content 区别?
- Android 7.0之后怎么抓包?
- Activity 和 Dialog的window区别是什么?
- Parcelable 为什么效率高于 Serializable ?
- Handler 是如何做到线程通信的?
- Android 常见的制作圆角方案,有哪几种常见方式?在Android P上什么兼容性问题
- getWidth, getMeasuredWidth 有什么区别?
- ViewPager嵌套?对于事件分发,嵌套滚动的了解
- Binder(IPC AIDL)
- Android 建立Http网络链接的流程?
- Http 和 Https 的区别?Https为什么更加安全?
- Android进程间有哪些通信方法?
- View中的getContext一定返回的是Activity对象吗?
- RecyclerView的多级缓存机制,每级缓存到底起到什么样的作用?
- Fragment 是如何被存储与恢复的?
- Activity 调用了finish()方法会立即调用onDestory()吗?
- Parcelable序列化原理?
- Activity 启动动画对页面打开速度有影响吗?
- 听说过Handler中的IdleHandler吗?
- Looper.loop为什么不会阻塞掉UI线程?
- View的onAttachedToWindow ,onDetachedFromWindow 调用时机,使用场景是什么?
- Android 中关于内存泄露有哪些注意点?
- Android V1,V2,V3签名的区别?
- R.java 的文件生成规则?
- apk打包流程?
- AMS,PMS
- Android 图像显示相关流程,Vsync 信号等
- 如何判断一个 APP 在前台还是后台?
- volatile和syncronize的使用场景
- 可见性原子性重排序的问题产生原因
- ArrayList和linkedList的使用场景选择,为什么(很多人会踩到雷)
- 线程状态 中断线程的操作
- 如何使用设计模式来解决if else过多的问题(多用户登录场景,每个业务都有根据用户类型执行不同逻辑,用设计模式去除if else判断)
- 容器相关(HashMap、HashSet、linkedList、ArrayList、数组等)
- Java四个引用的区别
- 类加载 双亲委派 Android 的类加载器
- 内存回收分配比例 空间不足如何操作
- 公平锁与非公平锁,syncronize是公平锁吗?
- Open 关键字
- Init 方法
- data class 的作用
- Lateinit lazy 使用场景
- Lateinit 实现原理,被标记过的变量能被置空吗
- Lazy 线程安全性 模式指定
- Let apply 的方法实现
- 静态方法 变量实现
- Java 互调相关注解(JvmOverloads JvmStatic JvmSuppressWildcards JvmWildcard)
- 如何实现静态代码块
- 如何实现内部类 静态内部类
- LayoutContainer 接口 findViewbyId 的原理
- Inline 函数的优缺点
- 扩展函数的实现原理,是否打破了封装性
- 协程
- 反射调用
- metadata 中包含哪些信息
- 基本数据类型装箱问题 (intArrayOf(1) arrayOf(1))
- contract 函数作用
现在Flutter还在属于应用阶段,面试题也不会太深,稍微做下层级区分就OK
Flutter基础- Flutter中的扩展函数怎么用
- Dart是值传递还是引用传递?
- Mixin 和 extends,implements之间的关系
- 关键字with和on的区别
- Flutter中类型之间怎么转换,如string转为int
- Flutter Platform 是如何进行数据传输的
- Widget,Element,RenderObject他们之间有什么关系
- Future和Stream有什么区别,各适用于什么场景
- Flutter怎么抓取网络请求信息
- StatefulWidget和StatelessWidget的区别,如果是自己设计Button应该继承那个Widget,FlatButton是继承那个Widget
- BuildContext有什么作用
- 为什么Flutter能实现秒刷新界面
- 性能优化相关
性能相关面试题,包含 [启动,内存,UI,线程,网络,IO,FPS,包体积,资源优化]等
- 什么是内存泄漏?什么OOM?有什么场景触发?
- JVM内存模型 ,GC机制?
- 内存泄漏如何检测?LeakCanary检测原理?matrix?matrix和leakcanary区别?做了什么优化?
- hprof文件协议格式了解过吗?
- haha库寻找最短引用链原理和算法?如何计算某个实例泄漏内存大小?
- shark库有了解过吗?相对haha库做了哪些优化。
- oom异常大概可以分为哪几类问题造成的异常?如何监控,预防和解决oom
- Native 内存泄漏 如何检测?



