应用上线全流程
1.
确定包名,APP ID
前Eclipse开发时期,包名就是APP ID,相当于应用的身份证号,在应用整个生命周期内,不可变更。
Android Studio普及后,包名和APP ID被作了区分,若你有需求基于原APP部分功能开发一个新应用,只需更改一下APP ID(build.gradle中更改一个字符串即可打包一个新应用),而无需向Eclipse时代那样,整体替换包名才可以,这个痛苦谁用谁知道?
android {
defaultConfig {
// 只需要修改这个ID,原则上一个新APP就诞生了(当然跟APP ID关联的例如:百度地图key,
// 微信登录等需要重新申请)
applicationId ......
}
buildTypes {
......
}
}
2.
生成jks文件
应用签名文件,上线应用都需要正式签名才可以提供给用户下载(跟卖猪肉必须盖章一个道理)。
签名文件生成.jks
时,有一个选项我们需要注意下:
Android 7.0
中引入了APK Signature Scheme v2
,v1
是jar Signature来自JDK。
V1
:通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。
V2
:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度
1)只勾选v1签名并不会影响什么,但是在7.0上不会使用更安全的验证方式
2)只勾选V2签名7.0以下会直接安装完显示未安装,7.0以上则使用了V2的方式验证
3)同时勾选
V1和V2则所有机型都没问题
勾选v1,v2生成了.jks打包好应用就可以了
开发之前最好同步申请这3个关键证书:
- 软件著作权证书
- 文网文(直播等类型需要)
- ICP备案
3.
软件主架构(侧边栏?底部导航栏?类Tiki左右栏?)
目前市面上绝大多数APP可以简括为3种样式:
- 类微信底部Tab
- 类QQ左侧菜单栏
- 类Tiki左右侧栏
4.
框架选型
这里框架选型就比较具体了,也是工作最重要的部分之一
- 网络框架(Volley,Retrofit,OkHttp)
- 数据解析框架(Gson,Fastjson,Jackson)
- 图片加载框架(Glide配合glide-transformations使用,Fresco,Picasso)
- 图片选择框架(个人推荐)
- 数据库(OrmLite,GreenDao,Realm,LitePal)
- 动态权限(PermissionsDispatcher,RxPermissions,Easypermissions)
- 数据缓存恢复框架(个人推荐1,个人推荐2)
- 动画框架(个人推荐),文字掠影效果
- 事件总线订阅分发(EventBus,RxBus,LiveEventBus(基于LiveData))
- 消息推送(Socket,WebSocket,MQTT,第三方推送(华为,小米,OPPO))
- 网络监听(后续会分享一篇网络监听小框架)
- 注解框架(butterknife)
- 整体Activity,Fragment框架(MVP架构:逻辑解耦)
- 短视频录制
- Android逃脱不掉的状态栏适配
- 集成IM通讯还需要消息角标之类的功能,可参考。MQTT推送也有必要了解一下
- 项目中难免会用到高斯模糊,可参考链接集成
- 项目中若有涂鸦等类似功能
- 音视频(这个涉及面广了,如:短视频录制,直播模块,视频通话等场景,后续会分系列记录分享)
5.
适配
Android APP肯定少不了适配环节
- 百分比布局适配
- 自定义像素适配
- 修改density适配
- 刘海屏适配
- 今日头条适配
6.
封包开测
应用主功能开发完毕后,通过Gragle构建工具编写Groovy脚本语言打包测试
- 代码混淆(ProGuard,项目创建之初就应该做好混淆)
- 资源混淆(个人推荐)
- 性能检测(Profile检测,LeakCanary等)
- 热修复(微信Tinker,阿里AndFix,美团Robust等)
- 插件化(360的RePlugin,DroidPlugin等)
- 增量更新(个人听说)
- 模拟器防刷
经过以上性能,体验,安全优化后,常规还会采用第三方加固操作后才上线
目前本人就了解过这2个
提交市场
目前Android主流市场有:
- 应用宝 (审核最快)
- 华为 (市场最大)
- 小米 (审核最慢)
- oppo,vivo (中规中举)
- 阿里分发 (没有想象中那么大的市场)
- 百度 (平庸)
- 魅族 (偏低的市场)
- google play (凭运气被下载)
- 三星(还可以)