【Android 热修复】运行 Tinker 官方示例 ( 处理 TINKER_ID 问题 | 编译 debug 包 | 修改 Gradle 脚本 | 生成 patch 包 | 热修复 )(一)

简介: 【Android 热修复】运行 Tinker 官方示例 ( 处理 TINKER_ID 问题 | 编译 debug 包 | 修改 Gradle 脚本 | 生成 patch 包 | 热修复 )(一)

文章目录

一、下载官方示例源码

二、处理 TINKER_ID 问题

三、编译 debug 包

四、安装 APK 并运行

五、修改 Gradle 构建脚本中的文件名称

六、修改程序逻辑代码

七、生成 patch 包

八、热修复

九、 源码资源





一、下载官方示例源码


Tinker 官方代码示例 : https://github.com/Tencent/tinker/tree/dev/tinker-sample-android






二、处理 TINKER_ID 问题


下载该 tinker-sample-android 代码 , 先处理 TINKER_ID 问题 , 参考 【错误记录】Tinker 热修复示例运行报错 ( Execution failed for task ‘:app:tinkerProcessD‘ . tinkerId is not set!!! )



解决 " tinkerId is not set!!! " 问题 , 有两种处理方案 :



方案一 :


在 gradle.properties 配置中 , 设置 TINKER_ID 参数 ,


TINKER_ID=1.0
TINKER_ENABLE=true

image.png



方案二 : 修改 https://github.com/Tencent/tinker/blob/dev/tinker-sample-android/app/build.gradle 构建脚本代码 , 使 gitSha 方法返回非空字符串 ;


def gitSha() {
    try {
        String gitRev = "1.0"
        if (gitRev == null) {
            throw new GradleException("can't get git rev, you should add git to system path or just input test value, such as 'testTinkerId'")
        }
        return gitRev
    } catch (Exception e) {
        throw new GradleException("can't get git rev, you should add git to system path or just input test value, such as 'testTinkerId'")
    }
}






三、编译 debug 包


运行 Gradle 面板中的 " tinker-sample-android / app / Tasks / other / assembleDebug " 任务 , 双击即可 ;

image.png



运行 assembleDebug 任务完毕后 , 在 " tinker-master\tinker-sample-android\app\build\bakApk " 目录下 , 会生成


app-debug-0423-21-38-18.apk

app-debug-0423-21-38-18-R.txt

两个文件 ;

image.png




还有一种方法 , 在 Terminal 中断面板中 , 执行 gradlew assembleDebug 命令 , 也可以运行 assembleDebug gradle 任务 ;






四、安装 APK 并运行


将上述编译好的 app-debug-0423-21-38-18.apk 安装文件 , 部署到应用中 , 运行应用 :

image.png



点击 " SHOW INFO " 按钮 , 即可查看运行效果 ;


image.png

目录
相关文章
|
3天前
|
Linux 编译器 开发工具
Android内核的编译过程
Android内核的编译过程
|
4天前
|
Java 开发工具 Android开发
如何在Eclipse中查看Android源码或者第三方组件包源码(转)
如何在Eclipse中查看Android源码或者第三方组件包源码(转)
13 4
|
3天前
|
移动开发 jenkins 持续交付
jenkins编译H5做的android端编译卫士app记录
jenkins编译H5做的android端编译卫士app记录
|
3天前
|
Android开发
在android源码中编译ADW_Launcher
在android源码中编译ADW_Launcher
10 2
|
4天前
|
Ubuntu Android开发
Android Froyo基于32 bit ubuntu 10.10编译问题
Android Froyo基于32 bit ubuntu 10.10编译问题
|
6天前
|
Shell 开发工具 Android开发
android 修改kernel编译版本信息
android 修改kernel编译版本信息
14 0
|
11天前
|
存储 安全 Android开发
安卓应用开发:构建一个高效的用户登录系统
【5月更文挑战第3天】在移动应用开发中,用户登录系统的设计与实现是至关重要的一环。对于安卓平台而言,一个高效、安全且用户体验友好的登录系统能够显著提升应用的用户留存率和市场竞争力。本文将探讨在安卓平台上实现用户登录系统的最佳实践,包括对最新身份验证技术的应用、安全性考量以及性能优化策略。
|
13天前
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
|
3天前
|
Java Android开发
Android开发--Intent-filter属性详解
Android开发--Intent-filter属性详解

推荐镜像

更多