首页 文章 精选 留言 我的

精选列表

搜索[Bug修复],共10000篇文章
优秀的个人博客,低调大师

Android Tinker热修复

1. tinker项目地址 下载并解压后的目录结构如下,其中tinker-sample-android是官方写的一个示例 图1.png 2. 使用Android Studio直接打开此示例 打开后Gradle依赖会出现问题,将其注释后继续同步,直到出现如下错误: Error:Execution failed for task ':app:tinkerProcessDebugManifest'. > tinkerId is not set!!! 图2.png 3. 解决tinkerId is not set!!! 打开/tinker-master/tinker-sample-android/app/的build.gradle文件,找到gitSha()方法,将gitRev变量的值设置为一个常量,修改后如图4. 图3.png 图4.png 4. 打debug包 使用gradlew assembleDebug命令打一个debug的包,成功运行后在/app/build/目录下生成一个bakApk文件夹,并在bakApk文件夹下生成形如app-debug-时间.apk与app-debug-时间-R.txt文件,可能会更多,但我这里就只有两个,如下图: 图5.png 5. 文件内容修改 将app-debug-1228-17-15-24.apk的文件名中的时间1228-17-15-24复制,找到/tinker-master/tinker-sample-android/app/的build.gradle的ext函数块(如图6),并将图6中的红色框中的时间全部替换为刚刚所复制的时间,修改后同步工程。 图6.png 6. 生成patch包 使用gradlew tinkerPatchDebug命令生成patch包,此包的路径为/app/build/outputs/tinkerPatch/debug/目录。 图7.png 7. 将上一步生成的patch_signed_7zip.apk包放在手机的内存卡目录下(/sdcard/) 使用命令直接推送 adb push ./app/build/outputs/tinkerPatch/debug/patch_signed_7zip.apk /storage/sdcard0/ 8. 测试 打开示例后,点击LOAD PATCH,显示出Toast的内容为"patch success, please restart process", 即代表加载成功,此时需要重启app,点击KILL SELF,然后再次打开app,点击SHOW INFO即可显示如下内容 图8.png

优秀的个人博客,低调大师

Android热修复技术

更新版本一直以来是移动端的一大痛点,各大公司也推出了相应的解决方案。 1)AndFix(阿里巴巴):兼容性不太好,亲试过,上线反馈崩溃问题特别严重。 2)Tinker(微信):集成起来是相当的麻烦 看完http://blog.csdn.net/u010983881/article/details/53196574这个链接,基本就能接入了。 但是还有一些需要补充的 1》Android的一些编译打包命令:http://blog.csdn.net/dakaring/article/details/44944139 2》怎么保留自己的Application:http://blog.csdn.net/cao126197103/article/details/54693760 3》Tinker id is not set错误:(将tinker id写死,如果没有使用git管理代码就会出现此问题) 4》加载补丁包失败,通过tinker过滤日志,查看失败原因。有时也要结合源码 5》Tinker多渠道打包:https://github.com/Tencent/tinker/wiki/Tinker-%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97#%E5%A4%9Aflavor%E6%89%93%E5%8C%85 6》常见问题:http://blog.csdn.net/tyk9999tyk/article/details/53391519 7》TinkerInstaller.install(this) Tinker instance is already set的问题 http://www.jianshu.com/p/9680a58e67fe 8》使用了Tinker的项目,在运行的时候无法使用Instant-Run。 线上应用的问题: 1)app如果打了一次补丁,再从市场上更新app,点击桌面应用图标,app启动不起来。(巨坑!!) 后来给Tinker项目提了个issue,才得知我把tinkerid写死了。tinkerid应该每个版本都不一样 比如3.3.7更新了补丁,到了3.3.8版本,然后从市场更新到了3.3.9版本。这3个版本的tinkerid要两两互不一样。否则就会出现以上问题。 2) 本文转自屠夫章哥 51CTO博客,原文链接:http://blog.51cto.com/4259297/1929242,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册