一名喜欢做 干净、顺手、体验好的 Android 应用 的开发者,正在一点点深入 Jetpack & 现代 Android。
- 🌱 正在专注:Android 开发(Jetpack、网络层、UI 动效、Compose 练习)
- 💬 可以聊聊:Java / Kotlin / C / Android 架构与实践
- 😄 Pronouns: He / Him
| Language / Tech | 说明 |
|---|---|
| Java | 日常 Android 业务与网络层主力语言 |
| Kotlin | 新功能与重构优先使用,逐步向更现代的 Android 写法迁移 |
| C | 用于底层原理、算法 / 数据结构练习 |
| Android | Activity / Fragment、导航、RecyclerView / Lazy 列表、网络请求、UI 动画、基础缓存策略 |
| Jetpack | ViewModel、Navigation、Room / 本地缓存等 |
| Media / Player | ExoPlayer、全屏播放、视频源切换、本地文件读取等 |
一个练习 视频播放体验、列表联动与本地缓存 的 Android Demo,主要功能包括:
-
播放器体验
- 使用
ExoPlayer实现播放 - 支持 内置演示视频 与 本地视频文件 切换
- 自定义顶部控制栏、全屏播放对话框,隐藏系统栏实现沉浸式观影
- 使用
-
视频详情页
- 展示 UP 主信息(头像、昵称、粉丝数、稿件数)
- 视频标题、简介、播放量等基础信息
- Tab 切换「简介 / 评论」,评论区卡片样式仿 B 站风格
-
相关视频推荐
- 基于当前视频
bvid从本地存储 / 仓库拉取相关视频 - 使用
LazyColumn + HorizontalPager展示相关稿件列表 - 点击推荐卡片可跳转到新的播放页(带导航路由)
- 基于当前视频
-
本地数据与架构
- 使用
Room (AppDatabase)存储稿件信息Archive - 通过
VideoRepository统一访问数据 - 采用 ViewModel + UiState(如
VideoUiState)管理加载 / 成功 / 错误状态
- 使用
这个项目主要是为了练习:现代 Android 架构 + 播放器交互 + UI 细节打磨。
一个仿系统天气的 Android App,用来练习 UI 动效与网络层封装:
-
城市页
- 展示实时天气,白天 / 夜晚不同的卡片样式
- 支持北京 / 上海 / 广州 / 深圳四城市切换,切换时整体 UI 平滑过渡
-
预测页
- 根据当前城市
cityId请求未来一周天气 - 列表展示「今天 / 明天 / 星期一…」+
MM-dd日期
- 根据当前城市
-
网络与缓存
- 基于
OkHttp + Gson封装WeatherApi / GetWeather - 简单的 1 小时内存缓存策略,避免频繁网络请求
- 基于
-
架构与页面联动
- 使用
WeatherNavHost在 Activity 与 Fragment 之间共享当前城市状态 - 将网络层、UI 层、状态管理做了基础分离
- 使用
- 更现代的 Android 架构:MVVM / Clean Architecture / Repository + UseCase 拆分
- UI 体验:动效、状态过渡、沉浸式交互、Compose 与 View 共存实践
- 网络 & 缓存:从简单内存缓存逐步演进到更完善的缓存策略
一些让我很受启发的作品 / 站点: https://github.com/SocialSisterYi/bilibili-API-collect?tab=readme-ov-file
极简代码、极致创意,总能提醒我:有趣 和 优雅 同样重要。
如果你对 Android、播放器实现或 UI 动效有兴趣,欢迎一起交流、讨论。

