组件名称 | 功能描述 |
---|---|
Activity | 应用界面容器 |
Fragment | 可复用UI模块 |
ViewModel | 数据与生命周期管理 |
RecyclerView | 高效列表展示组件 |
LiveData | 观察者模式数据响应 |
app/
├── src/
│ ├── main/
│ │ ├── java/ (Kotlin代码)
│ │ ├── res/ (资源文件)
│ │ └── AndroidManifest.xml
├── build.gradle (构建配置)
示例代码:
// 启用ViewBinding buildFeatures { viewBinding true } // 使用示例 val binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) binding.textView.text = "Hello World"
推荐架构:
Repository → ViewModel → LiveData → UI
常用库:
存储类型 | 适用场景 | 推荐API |
---|---|---|
SharedPreferences | 轻量级键值存储 | edit().putString() |
SQLite | 结构化数据持久化 | Room数据库 |
MMKV | 高效键值存储(腾讯开源) | MMKV.defaultMMKV() |
问题现象 | 解决方案 |
---|---|
安装包过大 | 拆分资源、启用ProGuard、移除冗余库 |
界面卡顿 | 异步处理耗时操作、优化布局层级 |
兼容性崩溃 | 使用@RequiresApi注解、做版本适配 |
后台服务被杀 | 改用WorkManager、保存状态到SP |
A:主要区别体现在:
A:可通过以下方案实现: