目录
1. 📂 前言
背景:为了对Android OS内的自研应用、第三方应用进行管控,研发内部决定开发一款应用商店,无产品、设计、测试以及项目同学的参与。
参与开发人员:OS/应用开发同学(本人)、云端开发同学。
客户与用户:用户是最终使用产品的人,更多关注功能实用性,当前阶段用户是OS/应用开发同学,未来用户是产品经理、设计同学,以及未来会使用此OS的用户;客户是直属领导,更多关注功能完成度。
2. 🔱 任务拆分
2.1 产品需求拆分
由于是研发内部需求,没有产品经理参与,所以需要通过调研已有产品,并结合过往应用商店开发经验,大致拆分为:云端需求与终端应用需求这两部分需求。
2.1.1 云端需求
云端主要工作有:编写API接口文档、开发用于上传App的后台页面、开发3个API接口等。总耗时约1人/周。
2.1.2 终端应用需求
终端应用主要工作有:应用列表展示、应用详情展示、应用下载功能、应用安装功能、以及版本校验功能、应用打开功能等。总耗时约1人/周。
2.2 开发工作拆分
2.2.1 云端开发工作拆分
-
后台列表(页面)
-
后台详情页(页面)
-
数据库设计
-
后台数据保存
-
API接口设计开发
-
断点上传下载接口开发
-
联调API接口(应用列表、应用详情、应用下载)
-
整理优化应用商店代码
-
编写API接口文档
2.2.2 终端应用开发工作拆分
-
完成仓库创建、初版代码提交
-
开发App列表展示页、App详情展示页
-
接入文件下载Downloader框架
-
开发应用商店的App下载功能
-
开发云端接口(应用列表、应用详情、应用下载)
-
联调云端接口(应用列表、应用详情、应用下载)
-
开发应用安装
-
应用md5验证
-
应用版本校验
-
安装应用
-
-
整理优化应用商店代码
-
接受客户建议,微调UI设计
3. 🔱 开发实现
由于本人负责OS/应用开发,所以此部分开发实现,只针对于终端应用开发。
3.1 完成仓库创建、初版代码提交
基于 Android应用开发框架轮子 构造应用商店初版代码——0.5人/天
3.2 开发App列表展示页、App详情展示页
- 列表展示页主要是RecyclerView与Adapter、及其xml布局的实现——0.4人/天
- 详情展示页主要是xml布局的实现——0.1人/天
3.3 接入文件下载Downloader框架
需要调研 文件断点下载方案 、 Downloader框架易用性与稳定性 ,以及接入Downloader框架等——1人/天
3.4 开发应用商店的App下载功能
处理点击按钮后的下载逻辑,直至成功保存完整的Apk文件到设备中——0.5人/天
3.5 开发云端接口(应用列表、应用详情、应用下载)
主要基于网络请求框架,定制云端提供的get/put请求——0.5人/天
3.6 联调云端接口(应用列表、应用详情、应用下载)
涉及到请求头字段对齐、Downloader框架断点调试下载接口、后台应用Apk及其信息上传等工作——1人/天
3.7 开发应用安装
列表展示页先判断当前应用是否安装,再判断应用的版本号,云端版本过低则按钮显示打开应用,否则显示下载按钮;当用户点击下载完成后,先校验应用MD5是否一致,应用MD5一致则调用系统安装方法进行安装——0.5人/天
这一块能比较快速的完成,得益于使用blankj提供的 工具包 ,如下:
- 判断应用是否安装:AppUtils.isAppInstalled(packageName)
- 判断应用版本号: AppUtils.getAppVersionCode(packageName)
- 获取文件MD5:FileUtils.getFileMD5ToString(savePath)
- 打开应用: AppUtils.launchApp(packageName)
- 安装应用:AppUtils.installApp(savePath)
3.8 整理代码、需求优化
将应用商店发给客户和用户试用,做一些局部优化——0.5人/天
4. ⚛️ 小结
至此,应用商店应用告一段落。从一个想法,到产品需求拆分,再到开发工作拆分,然后开发实现,最后自测通过并发给客户、用户使用,一周搞定!!!