概述
废话不多说 什么优缺点 大家肯定已经比较过,就想找到一种既方便有安全而且快捷的集成方案,一下满满的干活:
1:首先登录阿里云地址:
https://www.aliyun.com/product/hotfix?spm=5176.8142029.388261.233.kapzlu 没有号的注册 有号的登录,推荐下载阿里云app扫描登录 ,需要先验证身份证 或者绑定支付宝账号就可以使用热更新功能
2:AS环境 首先找到项目,填写如下maven依赖和依赖库
maven依赖:
repositories {
maven {
url “http://maven.aliyun.com/nexus/content/repositories/releases”
}
}
依赖库(查看最近版本号):
compile ‘com.aliyun.ams:alicloud-android-hotfix:3.1.0’
3:创建MyApplication 类继承Application ,在Application 的onCreate()中添加热更新初始化代码如下:
public void onCreate() {
super.onCreate();
// initialize最好放在attachBaseContext最前面
PackageManager manager = this.getPackageManager();
PackageInfo info = null;
try {
info = manager.getPackageInfo(getApplicationContext().getPackageName(), 0);
appVersion = info.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
SophixManager.getInstance().setContext(this)
.setAppVersion(appVersion)
.setAesKey("wangkui198707099")
.setEnableDebug(false)
.setPatchLoadStatusStub(new PatchLoadStatusListener() {
@Override
public void onLoad(final int mode, final int code, final String info, final int handlePatchVersion) {
// 补丁加载回调通知
if (code == PatchStatus.CODE_LOAD_SUCCESS) {
// 表明补丁加载成功
} else if (code == PatchStatus.CODE_LOAD_RELAUNCH) {
// 表明新补丁生效需要重启. 开发者可提示用户或者强制重启;
// 建议: 用户可以监听进入后台事件, 然后调用killProcessSafely自杀,以此加快应用补丁,详见1.3.2.3
SophixManager.getInstance().killProcessSafely();
} else {
// 其它错误信息, 查看PatchStatus类说明
}
}
}).initialize();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
4:在项目入口,推荐在MainActivity 的onCreate方法中获取是否有patch,不能放在application里面这个补丁是需要我们代码主动去拿,在onCreate中调用SDK里面方法,
SophixManager.getInstance().queryAndLoadNewPatch();
5:添加权限如下
<!-- 网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 外部存储读权限,调试工具加载本地补丁需要 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
- 1
- 2
- 3
- 4
- 5
- 6
6.0系统需要单独处理ACCESS_WIFI_STATE这个权限
- 1
6:然后在 配置IDSECRET,APPSECRET,RSASECRET
这个是需要去阿里云后台先创建app 然后创建成功后会有相应的数据,copy过来就ok,我这都用x 表示
<application>
<meta-data
android:name="com.taobao.android.hotfix.IDSECRET"
android:value="2xxxxx-x" />
<meta-data
android:name="com.taobao.android.hotfix.APPSECRET"
android:value="9xxxxxxxfsdsxx" />
<meta-data
android:name="com.taobao.android.hotfix.RSASECRET"
android:value="MIIEvxxxxxxxx" />
</application>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
7:然后我们可以自己做个测试是否成功,先以versionCode 1 打个签名包,安装到手机,然后随便在加点东西,比喻加一个TextView上面写点内容,把versionCode 改成2 打个签名包,然后下载生成补丁包工具:
patch补丁包生成需要使用到打补丁工具SophixPatchTool, 如还未下载打包工具,请前往下载Android打包工具。
Mac版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_macos.zip
Windows版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_windows.zip
Linux版本打包工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/SophixPatchTool_linux.zip
该工具提供了Windows和macOS和Linux版本,Windows下运行SophixPatchTool.exe,macOS下运行SophixPatchTool.app,Linux下(Ubuntu 16.04 64bit最佳)运行SophixPatchTool。并且需要安装Java环境且在JDK7或以上才能正常使用。
手机安装调试工具:
调试工具地址:http://ams-hotfix-repo.oss-cn-shanghai.aliyuncs.com/hotfix_debug_tool-release.apk
8:打开下载的生成补丁包工具,选择旧包和新包如下图:
然后点击设置选择签名包和设置相应的密码,然后注意的是AES KEY是和application里面代码设置:.setAesKey(“xxxxxxxxxxxxxx”),值一模一样,为了解析安全设置的不一定要填,然后点击确定,在点击GO 按钮,生成patch的jar包
9:把生成的jar上传到阿里云后台,在阿里云控制台先创建版本,然后点击查看详情,点击右上角上传补丁按钮,上传完成后,先在本地手机上扫描测试,如下图,
手机打开sophix调试工具,先输入包名,点击连接应用,然后点击扫描二维码,如下图:
下面是显示扫描patch包的路径和是否成功信息,显示successful代表成功,这时候打开app,在不手动更新app情况下,看看内容是否已经更新了,我们在几个主要的版本 :4.0、4.4、5.1、7.0上测试了,就可以直接点击全量发布,先点击之前的旧的app,然后退出重新点击,这时候就发现代码已经更新了
到此结束,有不懂的在提问吧
最后
以上就是大胆黑猫为你收集整理的阿里云Sophix 3.0版本热更新快速入门的全部内容,希望文章能够帮你解决阿里云Sophix 3.0版本热更新快速入门所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复