一、一个产品(Product)由若干个项目(Project)组成
一个产品包含若干个模块(Module)
一个模块包含若干个流程(process)
一个流程包含若干个功能(Function)
一个功能包含若干个技术点(API)
二、通过练习提升开发模块的能力
1. 以App升级为例
好处:a) 任何应用都需要
b) 业务无关性(不管开发社交、通讯、娱乐、游戏等App)
2. 设计流程
a) 画流程图
b) 写出每一步骤
首先从用户角度描述
然后从技术角度分解
3. 根据流程逐步实现
描述App自动升级流程:
红色部分代表分析功能所需的技术点
1) 提示用户有新版本,是否升级
当前Apk版本号
服务端版本号 Http json
JSON包含:提示信息、新版本号
对话框 AlertDialog
提示内容包含:
1 新增加特性
2 修复了xxxbug
2) 如果用户确认升级,从服务端下载新版本,用户可以选择查看下载过程(不强制)
下载
通知 Notification 定制系统通知的布局
3) 提示下载完成,用户在合适的情况下安装升级版本
提示 Toast
代码中安装Apk
附:
1. 获得当前apk版本号
PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
String version = packInfo.versionName;
Uri uri = Uri.fromFile(new File(fileName));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri, application/vnd.android.package-archive");