Android 大厂面试高频 174 问与核心知识点解析
本文整理了 Android 开发中常见的大厂面试题目,涵盖数据存储、组件生命周期、UI 布局、内存管理、网络通信及多线程等核心领域。旨在帮助开发者系统复习基础与进阶知识,提升技术深度。
一、数据存储与基础
1. SD 卡与数据持久化
- SD 卡:Android 系统中用于扩展存储的外部设备。现代 Android 版本(API 29+)对外部存储访问进行了严格限制(Scoped Storage),建议优先使用内部存储或应用私有目录。
- 数据存储方式:包括 SharedPreferences、文件存储、SQLite 数据库、ContentProvider 以及网络存储。SharedPreferences 适合轻量级配置;SQLite 适合结构化数据。
2. SharedPreferences (SP)
- 频繁操作后果:SP 基于 XML 文件,频繁读写会导致 I/O 阻塞,影响主线程性能。建议使用
apply()替代commit()进行异步写入。 - 存储容量:理论上无硬性限制,但受限于设备存储空间。通常建议仅存储少量配置信息,避免存储大对象。
3. 数据库与 SQLite
- SQLiteOpenHelper 方法:
getReadableDatabase()和getWritableDatabase()均会调用onCreate()或onUpgrade()。数据库文件默认存放在/data/data/<package_name>/databases/。 - 发布带数据的 SQLite:可将预置数据库文件放入
assets目录,在首次运行时复制到databases目录。 - 表复制:可通过 SQL 语句
INSERT INTO table2 SELECT * FROM table1;实现结构与数据迁移。
二、Activity 与组件生命周期
1. Activity 生命周期
- 状态:Created, Started, Resumed, Paused, Stopped, Destroyed。
- 横竖屏切换:默认会销毁重建。可通过设置
android:configChanges="orientation|screenSize"拦截配置变更,在onConfigurationChanged()中处理。 - 启动方式:显式 Intent、隐式 Intent、PendingIntent、AIDL 跨进程调用。
2. Application 与 Activity
- Application 启动 Activity:Application 本身不是 Context 的子类,不能直接启动 Activity。需通过
ContextWrapper或获取 ApplicationContext 后调用startActivity(),但需注意权限和任务栈问题。
3. Service 机制
- 生命周期:
onCreate(),onStartCommand(),onBind(),onUnbind(),onDestroy()。 - :, , 。


