状态:近期天气炎热影响欧巴心情,感觉每一天都不适合工作只想撩妹(坏笑),由于UI妹子大概太迷恋我了(这里添加无奈的表情),很多文案处处给我藏情,以至于上线得到很多领导对我的慰问。让我甚是稀罕UI小姐姐(笔芯小手势)。
1.主要目的》
那我们该如何表白UI小姐姐呢?呸...那我们该如何在不发版本的情况下解决线上文案错误的问题呢?这里选择 “热跟新”
备注:这篇文章只讲解集成和使用,涉及源码分析可以搜一下资源。(请给欧巴一些撩妹的时间)。
2.集成开始
第一步,配置app下gradle
defaultConfig节点添加以下 第一处----------- multiDexEnabled true ndk { abiFilters "armeabi" }dependencies 节点添加以下引用 第二处----------- // 多dex配置 compile 'com.android.support:multidex:1.0.1' //注释掉原有bugly的仓库 //compile 'com.tencent.bugly:crashreport:latest.release'//其中latest.release指代最新版本号,也可以指定明确的版本号,例如1.3.4 compile 'com.tencent.bugly:crashreport_upgrade:1.3.5' // 指定tinker依赖版本(注:应用升级1.3.5版本起,不再内置tinker) compile 'com.tencent.tinker:tinker-android-lib:1.9.6'gradle文件最下面 引入插件 第三处----------- // 依赖插件脚本 apply from: 'tinker-support.gradle'
备注:app目录下需要添加tinker-support.gradle文件(文章最后面)
第二步,初始化
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); // 这里实现SDK初始化,appId替换成你的在Bugly平台申请的appId // 调试时,将第三个参数改为true Bugly.init(this, "f7091da9a6", true); } @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); // you must install multiDex whatever tinker is installed! MultiDex.install(base); // 安装tinker Beta.installTinker(); }}
第三步,添加权限
//添加权限 第一处----------- <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <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_LOGS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />//第二处 自定义application<application android:name=".MyApplication" ></application>//第三处 添加activity <activity android:name="com.tencent.bugly.beta.ui.BetaActivity" android:configChanges="keyboardHidden|orientation|screenSize|locale" android:theme="@android:style/Theme.Translucent" />
按照官方到这里就算结束了。很多会问 难道没有《坑》?
答案很显然的了,忽略了签名的配置。签名一定要配置,配置,配置(重要事说三遍)。签名配置并不是本篇文章要讲解的,可以上网查下,或者看下demo。
3.热更新使用
第一步,打上线apk(基本包)
成功之后会在build/outputs/bakApk路径下生成每次编译的基准包、混淆配置文件、资源Id文件,有可能也会没有mapping文件,如下图所示:
备注:请留意 编译每次生成的报名 app-0209-16-24-07(补丁包需要这个)
到这里一个提供上线的apk 就可以上架市场或者发个UI小姐姐使用了。
那我们如何 利用apk表白小姐姐呢?
第二步.热更新-(补丁包)生成。
目的:每天悄悄的修改 小姐姐手机上app的名称“在吗”,“我喜欢你”,“你很丑”,额.....看你的脑洞有多大。
例如基本包名字之前是DvlpNews
<resources> <string name="app_name">DvlpNews</string></resources>
修改之后
<resources> <string name="app_name">我稀罕你</string></resources>
修改需要变更内容之后,开始正式打补丁包
修改tinker-support.gradle文件内容
def baseApkDir = "app-0710-18-38-23"//要修改成编译生成的包名
tinkerId = "6.6.6" //这个任意,保证每次打包唯一就行
执行构建补丁包的task
生成的补丁包在build/outputs/patch目录下:
上传补丁包到平台并下发编辑规则 (地址放在文章后面)
备注:点击之后会有下发中的状态,当小姐姐打开app的时候,才会执行热更新下发请求。因为热更新的初始化我们放在了MyApplication类里面。
最终效果
*******************************************
文章中涉及的文件,以及材料地址。
tinker-support.gradle文件:
https://github.com/dvlp-org/DvlpTinker/tree/master/app
bugly 下发平台:
https://bugly.qq.com/v2/
官方文档地址:
https://bugly.qq.com/docs/user-guide/instruction-manual-android-hotfix-demo/?v=20180709165613
demo地址 欢迎star:
https://github.com/dvlp-org/DvlpTinker.git
提示:公众回复“ 热更新地址” 支持链接跳转.......
本次项目为 热更新测试集成项目,集成过程进行简单记录,有可能在正式项目接入中存在差异,例如多渠道等等....
集成中有遇到问题,请以官方文档为准。当然也可以文章留言区记录,或者公众号内提问....
看到这里了......有没有人关心我和UI妹子最后怎样???
关注『DvlpNews』
把握前沿技术脉搏