Tinker 热修复框架 简单上手教程
来源:互联网 发布:ubuntu recovery mode 编辑:程序博客网 时间:2024/05/05 07:15
导言
前不久,腾讯推出了”微信小程序”这一概念,对移动原生应用的影响可谓巨大.而几乎就在同时,
腾讯在GitHub上开源了第一个项目Tinker,
这是一个Android平台的应用热修复框架.可以在不重新安装应用的情况下,对应用的代码/库
/资源进行更新.相关信息官方也已经给出详细介绍.
得到这个消息时,笔者也尝试学习它给的Sample,希望能够使用到自己的项目中去.毕竟热修补是
如今原生应用的一大痛点,有了热修补技术,类React Native应用的优势将缩小.
这是一篇Tinker简单上手的说明文字,演示如何运行官方的Sample,仅作互相学习交流
原文链接 http://www.trojx.me/2016/09/28/tinker-sample-introduction/ 转载请注明出处
导入Sample工程
将官方给出的Sample工程
在AndroidStudio中打开.首先一点,在app的build.gradle文件中找到tinkerId = getTinkerIdValue()
并将其替换成tinkerId = "tinkerId"
,其中后面的值可以随意设置.再替换ignoreWarning = false
为ignoreWarning = true
.(见图1)
编译运行原版apk
按照往常操作一样,编译打包debug apk并安装.此时Tinker会在工程的app/build/bakApk/
目录下
保存打包好的apk文件,找到刚才生成的apk文件,复制其完整文件名,在app的build.gradle文件找到 tinkerOldApkPath
这一项设置,并将其设置为tinkerOldApkPath = "${bakPath}/<刚才生成的apk文件名>"
(见图2)
修改源码 生成新版apk 补丁
在MainActivity.java
中,我们稍作改动,例如将R.string.test_resource
对应的字符串资源的值修改(见图3),
<!--<string name="test_resource">I am in the base apk</string>-->//原值 <string name="test_resource">I am in the patch apk</string>//新值
还可以在MainActivity
中添加一行代码(见图3)
Log.e(TAG, "i am on patch onCreate");
你可以自行做出更多的改动(这也是我们需要热修复的原因),然后再Gradle脚本中找到’app:/tinker/tinkerPatchDebug’这条命令(见图4),
双击运行,它将生成debug版的patch(补丁)apk文件.
运行完毕后,Tinker会告诉你生成的补丁apk文件所在位置.(见图5,6)
将patch_signed_7zip.apk
这个文件拷贝到Android设备的ExternalStorageDirectory()
路径下.
文件的路径可以随意设定,只需在MainActivity
中指明补丁Apk路径即可.(见图7)
安装热修复补丁 观察程序变化
点击APP主界面中的LOAD PATCH
加载补丁,提示成功后,点击KILL SELF
结束当前进程,
重新启动后,即可发现变化.可以看到,经过上述修改,原有Apk的应用启动后在Log中打印为(见图8):
而应用补丁后,打印结果为(见图9):
而这一切就是应用了热修复的结果.
万事开头难,有了如此强大的框架,相信广大开发者开发的原生应用将更加强大.
- Tinker 热修复框架 简单上手教程
- Tinker 热修复框架 简单上手教程
- Tinker 热修复框架 简单上手教程
- Tinker 热修复框架 简单上手教程
- Tinker 热修复框架 简单上手教程
- Android 笔记: Tinker 热修复框架 简单上手教程
- 接入热修复框架TinKer
- Tinker热修复简单接入
- 热修复Tinker简单使用
- 热修复Tinker简单接入
- [Android]腾讯Tinker热修复框架简单使用
- Android 热修复框架 Tinker ( 一 )
- Android 热修复框架 Tinker ( 二 )
- Android 热修复框架 Tinker ( 三 )
- android热修复框架Tinker(一)
- 热修复框架Tinker快速集成
- 热修复框架-Tinker接入常见问题
- Android热修复框架 Tinker 接入
- [精简版]snowing snow
- 计算机视觉——相机标定
- Python Scrapy安装方法(windows平台)
- Tess4J图片文字识别
- hive降io
- Tinker 热修复框架 简单上手教程
- 尝试在条件“$(_DeviceSdkVersion) >= 21”中对计算结果为“”而不是数字的“$(_DeviceSdkVersion)
- maven聚合工程的创建和聚合工程的打包
- 转载 中文字符集编码Unicode ,gb2312 , cp936 ,GBK,GB18030
- python字符串替换
- 虚幻4 OBJECT内存分配和初始化
- 决策树学习笔记整理
- Codeforces Round #373 (Div. 2) B. Anatoly and Cockroaches 贪心、字符串
- grep 在文本中查找内容