我是靠谱客的博主 大胆黑猫,最近开发中收集的这篇文章主要介绍阿里云Sophix 3.0版本热更新快速入门,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

废话不多说 什么优缺点 大家肯定已经比较过,就想找到一种既方便有安全而且快捷的集成方案,一下满满的干活:
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版本热更新快速入门所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部