-
1.Activity生命周期
-
问题:描述Activity从启动到销毁的完整生命周期方法,并说明
onSaveInstanceState()的调用时机。 -
参考答案:
-
onCreate()→onStart()→onResume()(活跃状态) →onPause()(失去焦点) →onStop()(完全不可见) →onDestroy()。 -
onSaveInstanceState():在Activity可能被销毁前调用(如屏幕旋转),用于保存临时数据到Bundle。
-
-
考察点:生命周期顺序、状态恢复、资源释放时机。
-
-
2.Fragment通信方式
-
问题:列举3种Fragment间通信方式,并对比优缺点。
-
参考答案:
-
ViewModel共享:通过同一Activity作用域的ViewModel共享数据(推荐,解耦性强)。
-
Fragment Result API:使用
setFragmentResult()传递Bundle(无需直接引用)。 -
接口回调:Fragment定义接口,Activity实现并转发(代码冗余,适合简单场景)。
-
-
3.View绘制流程
-
-
问题:解释View的
onMeasure(),onLayout(),onDraw()的作用,并说明如何优化自定义View的性能。 -
参考答案:
-
onMeasure():计算View尺寸(需处理MeasureSpec模式)。 -
onLayout():确定子View位置。 -
onDraw():绘制内容(避免在此创建对象或耗时操作)。 -
优化:使用
ViewStub延迟加载、减少布局层级、启用硬件加速。
-
-
4.事件分发机制

5.Handler机制

6.解释下多线程编程

6.内存泄漏场景与解决
-
-
问题:列举3个常见内存泄漏场景(如静态Context),并提供解决方案。
-
参考答案:
-
静态Context → 改用
ApplicationContext或弱引用。 -
未注销广播 → 在
onDestroy()中调用unregisterReceiver()。 -
匿名内部类持有外部引用 → 静态内部类 + 弱引用。
-
-
-
7冷启动优化
-
问题:应用冷启动耗时超过1秒,如何定位和优化?
-
参考答案:
-
定位工具:Android Studio Profiler的启动时间分析。
-
优化方案:
-
延迟初始化第三方库(使用
App Startup)。 -
减少主线程任务(用线程池处理IO操作)。
-
使用SplashScreen API避免白屏。
-
-
-
-
8.MVVM与MVI对比
-
问题:解释MVVM和MVI架构的区别,并说明MVI如何解决状态管理问题。
-
参考答案:
-
MVVM:数据驱动UI(LiveData + ViewModel),但状态分散。
-
MVI:单向数据流(ViewState → 事件 → 更新状态),状态集中管理(如用Kotlin Flow实现)。
-
-
-
模块化方案
-
问题:如何将单模块App拆分为模块化架构?需考虑哪些问题?
-
参考答案:
-
步骤:按功能划分模块(登录、支付等),基础库抽离
-
-

最低0.47元/天 解锁文章
1476

被折叠的 条评论
为什么被折叠?



