上一篇
安卓开发 app
- 行业动态
- 2025-04-22
- 3
安卓开发核心知识点梳理
开发环境搭建
- 基础工具:
- JDK(建议11+版本)
- Android Studio(官方IDE)
- Android SDK(API Level根据需求选择)
- 构建工具:
- Gradle(默认构建系统)
- 配置
build.gradle
文件管理依赖
项目结构解析
目录/文件 | 作用 |
---|---|
java |
存放Java/Kotlin源码文件 |
res |
资源文件(布局/图片/字符串等) |
AndroidManifest.xml |
应用配置文件 |
build.gradle |
构建脚本(依赖/插件配置) |
.idea /.gradle |
IDE/构建工具配置文件 |
核心组件与架构
四大组件:
- Activity:界面入口,承载UI逻辑
- Fragment:可复用UI模块,支持动态组合
- Service:后台任务处理(如音乐播放)
- BroadcastReceiver:接收系统/应用广播
架构模式:
- MVC(Model-View-Controller)
- MVP(Model-View-Presenter)
- MVVM(Model-View-ViewModel)
(推荐结合Jetpack组件使用)
数据存储方案
存储类型 | 适用场景 | 特点 |
---|---|---|
SharedPreferences | 轻量级键值对存储 | 快速存取,适合简单配置数据 |
SQLite/Room | 结构化数据持久化 | 支持复杂查询,需数据库操作 |
文件存储 | 多媒体/大文件保存 | 需处理文件路径与权限 |
DataStore(Jetpack) | 异步键值存储 | 替代SharedPreferences新方案 |
网络请求实现
主流库对比:
| 库名 | 特点 | 适用场景 |
|————|——————————-|——————————|
| Retrofit | 基于OkHttp,支持注解/转换 | RESTful API调用 |
| OkHttp | 高效HTTP客户端 | 自定义请求/响应处理 |
| Volley | 轻量级,支持图片加载 | 简单网络请求/小规模数据交互 |示例代码(Retrofit):
interface ApiService { @GET("users/{id}") suspend fun getUser(@Path("id") userId: Int): Response<User> }
val retrofit = Retrofit.Builder()
.baseUrl(“https://api.example.com/”)
.addConverterFactory(GsonConverterFactory.create())
.build()
val service = retrofit.create(ApiService::class.java)
# 六、性能优化策略
1. 内存优化:
避免内存泄漏(使用Lifecycle组件)
图片压缩(Glide/Picasso)
对象复用(如RecyclerView的ViewHolder)
2. 布局优化:
减少嵌套层级(使用ConstraintLayout)
开启布局缓存(`android:layoutOptimization="true"`)
3. 网络优化:
请求合并(OkHttp拦截器)
缓存机制(Retrofit+OkHttp缓存)
4. 耗电优化:
按需唤醒(JobScheduler/WorkManager)
Doze模式适配
# 七、测试与发布流程
1. 测试阶段:
单元测试(JUnit/Mockito)
UI测试(Espresso)
Monkey压力测试(随机事件模拟)
2. 发布准备:
生成签名APK(`build.gradle`配置密钥)
混淆代码(ProGuard规则配置)
Alpha/Beta测试(Google Play内部测试)
---
相关问题与解答
# Q1:Activity的`onSaveInstanceState`与`onRetainNonConfigurationInstance`有什么区别?
A:
`onSaveInstanceState`:用于保存临时状态(如编辑框内容),在配置变化(旋转屏幕)时恢复,数据通过`Bundle`传递,生命周期方法中调用。
`onRetainNonConfigurationInstance`:用于保留对象实例(如数据库查询结果),在配置变化后直接返回原对象,已过时,推荐使用`ViewModel`替代。
# Q2:如何选择Retrofit的ConverterFactory?
A:
GsonConverterFactory:适用于JSON格式数据,支持大多数REST API。
MoshiConverterFactory:Kotlin友好,性能更优,支持更灵活的JSON解析。
SimpleXmlConverterFactory:处理XML格式数据(如SOAP接口)。
自定义Converter:当API返回非常规格式时(如Protobuf),需实现`Converter.Factory`