
热更新&插件化
文章平均质量分 90
热更新相关
插件化相关
GitLqr
A Little White Developer
展开
-
热修复 - Tinker多渠道加固配置
欢迎关注微信公众号:FSA全栈行动 👋一、问题腾讯的热修复方案 Tinker 为加固应用提供了支持,需要在 gradle 脚本中,通过 isProtectedApp 配置当前的基准包(base apk)是否为加固 apk ,而这个配置是全局性的,Tinker 没有为多渠道提供单独的配置,这意味着,如果你的 app 工程在各个渠道不是全部统一使用加固或非加固的话,那么在为线上 apk 制作补丁包时,你不得不总要考虑是否需要修改 isProtectedApp 的值。为了提升工作效率,确保产出的补丁准确无.原创 2022-02-24 17:58:37 · 886 阅读 · 0 评论 -
RePluginX - 兼容AndroidX并加入新特性开发纪要
欢迎关注微信公众号:FSA全栈行动 ????一、RePluginX因 RePlugin 不支持 AndroidX,官方 github 已经好久不见有新的 Commits,一堆 issue 也没处理,难免让人觉得官方是否已经放弃了该项目。而公司开发需要使用到 RePlugin,但需要对其进行定制,向官方提交 pr 大概率是石沉大海,脑袋一拍,不如做做善事,自己基于 RePlugin 维护一个功能更强的 RePluginX,供有需要者使用,本人精力有限,欢迎有能力者一起维护~注:如果 RePlugin原创 2021-12-12 16:43:55 · 2742 阅读 · 2 评论 -
RePlugin集成ARouter
欢迎关注微信公众号:FSA全栈行动 ????一、功能需求1、组件解耦 (ARouter)阿里开源的 ARouter 在组件化开发中这个库相当有用,其核心功能就是组件解耦,比如以往要跳转另一个 Activity 时,会使用如下代码:val intent = Intent(this, OtherActivity::class.java)startActivity(intent)这样的代码意味着耦合性极强,当前的 Activity 代码层面上直接引用了 OtherActivity,当项目中应用了模原创 2021-04-13 14:14:44 · 570 阅读 · 1 评论 -
RePlugin集成AndroidAutoSize
一、屏幕适配你可能会问 “都 2021 年了还折腾屏幕适配?直接用 dp 单位适配不好吗?”, 确实,如果公司的 UI 设计师、产品经理以及老板,能明白为什么一套 UI 在不同设备上显现出来的一些差异并不是 bug 时,开发者直接用 dp 单位配合一些布局技巧来进行适配是可以的,但是,实现多数情况下并不是如此美好,他们更希望看到的是 UI 在不同屏幕上,仅仅只是缩放的区别,为了满足这种要求,应用第三方屏幕适配方案就非常有必要了。根据在网上查到的比较好的原生屏幕适配方案有两种:smallestWidth原创 2021-03-31 16:00:59 · 381 阅读 · 0 评论 -
RePlugin强制退出App
RePlugin强制退出需求:插件中按“退出”按钮,就完全退出整个app,包括宿主。一、前提以下所有的理论,都是基于宿主跟插件使用同个进程这个大前提下,即不需要常驻进程。apply plugin: 'replugin-host-gradle'repluginHostConfig { useAppCompat = true persistentEnable = false // 设置为“不需要常驻进程”}“不需要常驻进程” 的目的是为了减少整个app的内存开销。二、问题原创 2021-01-17 09:47:15 · 416 阅读 · 0 评论 -
RePlugin集成Fresco
Fresco版本说明目前fresco最新版本2.3.0,但无法直接在插件中集成从1.14开始要求使用AndroidX ,向下选择1.13.0从1.10.0开始没有armeabi, 向下选择1.9.0从1.8.0开始强制使用SoLoader,向下选择1.7.1插件集成Fresco遇到的问题这里需要重点说明一下SoLoader问题,fresco在1.8.0版本开始,就使用SoLoader替换了SoLoaderShim,原文:SoLoader has been released f原创 2021-01-17 09:46:00 · 302 阅读 · 0 评论 -
DroidPlugin手札——home键强杀处理
DroidPlugin手札——home键强杀处理DroidPlugin是360开源的插件化框架,github地址为:https://github.com/DroidPluginTeam/DroidPlugin。因公司业务及项目历史原因,来公司的这段时间一直在使用DroidPlugin进行业务开发,期间遇到的一些问题在此进行总结记录。一、背景为了方便访客知道本章在解决什么问题,这里先把需求背...原创 2019-01-21 09:08:12 · 4995 阅读 · 0 评论 -
热修复与插件化基础——Java与Android的类加载器
一、java中的ClassLoader1、类加载器2、加载流程Loading:类的信息从文件中获取并载入到JVM的内存中。Verifying:检查读入的结构是否符合JVM规范的描述。Preparing:分配一人上结构用来存储类信息。Resolving:把类的常量池中的所有符号引用变成直接引用。Initializing:执行静态初始化程序,把静态变量初始化成指定...原创 2018-05-18 00:28:20 · 587 阅读 · 0 评论 -
热修复与插件化基础——Java与Android虚拟机
一、Java虚拟机(JVM)1、JVM整体结构使用javac将java文件编译成class文件。类加载器(ClassLoader)将class字节码加载进JVM对应的内存中。JVM将内存分配给方法区、堆区、栈区、本地方式栈4个部分,这4个部分分别存储字节码不同的部分。垃圾回收器(gc)会管理整个内存空间中的垃圾。2、Java代码的编译和执行过程下图是Java代...原创 2018-05-13 20:31:07 · 695 阅读 · 0 评论 -
热修复与插件化基础——dex与class
一、dex/class浅析1、class与dex对比 类型 class文件 dex文件 定义 能够被jvm识别、加载并执行的文件格式 能够被dvm识别、加载并执行的文件格式 如何生成 使用java命令(javac) 使用java命令、dx命令 作用 记录一个类文件的所有信息 记录整个工程中所有类文件的信息2...原创 2018-05-13 20:21:58 · 631 阅读 · 0 评论 -
热修复——Bugly让热修复变得如此简单
一、简述在上一篇《热修复——Tinker的集成与使用》中,根据Tinker官方Wiki集成了Tinker,但那仅仅只是本地集成,有一个重要的问题没有解决,那就是补丁从服务器下发到用户手机上,如果你团队中的后台开发人员实力够强,那么完全可以自己做一个补丁管理系统,但我想应该没多少人愿意花精力在这个后台管理系统的开发上面吧,且开发有时候就是在造bug,鬼知道会挖出一个多大的坑呢?对于这样的一个问题,据我原创 2017-12-12 17:30:10 · 2377 阅读 · 3 评论 -
热修复——Tinker的集成与使用
一、简述 Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。上面是Tinker官方Wiki的原话,意思嘛相信大家都看得明白,但注意啦,它并没有说Tinker可以让补丁实时生效(也叫无感知更新),它必须在打上补丁后重启App(重启进程),补丁才会发挥作用,这跟阿里的热原创 2017-12-06 17:51:26 · 1338 阅读 · 0 评论 -
热修复——深入浅出原理与实现
一、简述热修复无疑是这2年较火的新技术,是作为安卓工程师必学的技能之一。在热修复出现之前,一个已经上线的app中如果出现了bug,即使是一个非常小的bug,不及时更新的话有可能存在风险,若要及时更新就得将app重新打包发布到应用市场后,让用户再一次下载,这样就大大降低了用户体验,当热修复出现之后,这样的问题就不再是问题了。目前较火的热修复方案大致分为两派,分别是:阿里系:DeXposed、andf原创 2017-11-14 19:28:43 · 13742 阅读 · 16 评论