
Android / Plugin 插件化
Omni-Space
专注Android, Mobile Security and AI
展开
-
[Android 插件化(一)] DynamicLoadApk的用法
1 简介Android大型项目中为了减小apk的体积,可以采用插件化的方法,即一些不常用的功能独立成插件,当用户需要的使用的时候再从服务器上下载回来,动态加载。这样就避免了为了满足所有用户需求而把功能全部打包到apk,导致apk体积的膨胀。所谓的插件,其实也是一个apk,但是一般都依赖正式对外发布的app,也叫宿主。本篇不讨论插件化的原理和实现难点,只介绍怎么使用以及优缺点。 Andr转载 2017-03-30 17:45:32 · 753 阅读 · 0 评论 -
滴滴开源Android插件化框架VirtualAPK原理分析
概述 滴滴出行公司的首个对外开源项目 - VirtualAPK。地址:github.com/didi/Virtua… 滴滴自行研发了这款插件化框架,功能全面、兼容性好,还能够适用于有耦合的业务插件,这就是VirtualAPK存在...转载 2018-04-07 13:29:03 · 333 阅读 · 0 评论 -
浅析Android插件化
前言Android P preview版本中,已限制对@hide api的反射调用,具体的原理可以阅读Android P调用隐藏API限制原理这篇文章。由于最近团队分享也在分享插件化、热修复相关的东西。因此,写一篇文章,好好记录一下。准备知识反射、动态代理Android中的几个相关的ClassLoader,注意PathClassLoader在ART虚拟机上是可以加载未安装的APK的,Dalvik虚...转载 2018-04-07 13:16:48 · 483 阅读 · 0 评论 -
Android热修复之 - 收集崩溃信息上传服务器
1.概述 大致的流程就是在用户崩溃的时候,我们获取崩溃信息、应用当前的信息和手机信息,然后把它保存到手机内存卡,再找我就直接找出来看看。后来衍生到上线后某些奇葩机型会有部分问题,所以不得不上传到服务器,后来发现居然可以配合热修复一步一步如此神奇,接下来我们来玩一玩,如何才能把用户的崩溃信息上传到服务器。大家也可以去找腾讯他有现成的:https://bugly.qq.com/v2/index 友盟...转载 2018-04-07 11:31:01 · 561 阅读 · 0 评论 -
Android热修复之 - 阿里开源的热补丁
1.1 基本介绍 我们先去github上面了解它https://github.com/alibaba/AndFix这里就有一个概念那就AndFix.apatch补丁用来修复方法,接下来我们看看到底是怎么实现的。 1.2 生成apatch包 假如我们收到了用户上传的崩溃信息,我们改完需要修复的Bug,这个时候就会有一个新的的apk我们就叫它为new.apk,原来的那个有Bug的apk你也...转载 2018-04-07 11:30:58 · 378 阅读 · 0 评论 -
Android友盟增量更新
1.增量升级的原理 增量更新的原理就是将本地apk与服务器端最新版本比对,并得到差异包。比如现在的版本是1.1.4,大小是7.2M,新版本是1.1.5.大小是7.3M。我们发现两个版本只有0.1M的差异,这样我们如果采用增量升级生成0.1M左右的差异包,这样用户只需要下载0.1M的差异包进行升级而不需要重新下载7.3M的新版本了。2.以往增量升级的实现 首先要有服务端来生成差异包,这一步使用bsd...转载 2018-04-07 11:30:54 · 457 阅读 · 0 评论 -
Android免Root环境下Hook框架Legend原理分析
0x1 应用场景现如今,免Root环境下的逆向分析已经成为一种潮流!在2015年之前的iOS软件逆向工程领域,要想对iOS平台上的软件进行逆向工程分析,越狱iOS设备与安装Cydia是必须的!几乎绝大多数的逆向相关的动态调试工具、Hook注入框架都依赖于获取IOS设备的最高访问权限,就技术本身上而言,对当前程序进行Hook与动态调试,只需要拥有与当前程序相同的权限即可,理论上无需对设备进行Root...转载 2018-04-01 16:06:09 · 2642 阅读 · 1 评论 -
《Android插件化技术——原理篇》
| 导语 插件化技术最早从2012年诞生至今,已经走过了5个年头。从最初只支持Activity的动态加载发展到可以完全模拟app运行时的沙箱系统,各种开源项目层出不穷,在此挑选了几个代表性的框架,总结其中的技术原理。由于本人水平有限,插件化框架又相当复杂,文中若有错误或者不准确的地方望高手指点。内容概要一、发展历史插件化技术最初源于免安装运行apk的想法,这个免安装的apk可以理解为插件。支持插件...转载 2018-04-01 16:04:43 · 1949 阅读 · 1 评论 -
replugin源码解析之replugin-host-gradle(宿主的gradle插件)
前言replugin-host-gradle 是 RePlugin 插件框架中的宿主gradle插件,主要用于在宿主应用的编译期常规构建任务流中,插入一些定制化的构建任务,以便实现自动化编译期修改宿主应用的目的。RePlugin 是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Team研发,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的...转载 2018-04-09 12:38:50 · 650 阅读 · 0 评论 -
replugin源码解析之replugin-plugin-gradle(插件的gradle插件)
前言replugin-plugin-gradle 是 RePlugin 插件框架中提供给replugin插件用的gradle插件,是一种动态编译方案实现。主要在插件应用的编译期,基于Transform api 注入到编译流程中, 再通过Java字节码类库对编译中间环节的 Java 字节码文件进行修改,以便实现编译期动态修改插件应用的目的。RePlugin 是一套完整的、稳定的、适合全面使用的,占坑...转载 2018-04-09 12:38:46 · 1081 阅读 · 0 评论 -
[Android]用架构师角度看插件化(1)-Replugin入门剖析
多谢一直以来的支持,组件化的内容,应该会有一段时间不再更新,一些非常关键的技术将会在我将要出版的组件化书籍中提及。组件化模块化的开发适合于中小型企业的业务叠加,和代码重用。而插件化的开发将组件化和模块的功能完全解耦出来。在国内的开发环境,插件化是用户体验和开发周期的产物,我们要做的是顺应潮流,正如我组件化&模块化&插件化演进中分析一样。Replugin,滴滴出品的VirtualAp...转载 2018-04-09 12:38:41 · 335 阅读 · 0 评论 -
[Android]用架构师角度看插件化(2)-Replugin 唯一hook点
Replugin,为何我选择要研究这个的插件呢?很大的原因是因为它的介绍中说明,他只会有一个hook点。一.Hookhook点是什么?我们入门Android的时候,一定会看到过这个图,但是你确定深刻了解到这个图的吗?我们试着换着思维,用组件化的角度去看这张图,你会发现其层级依赖关系,与组件化的工程是非常类似的。(当然你看得角度不同,我只能说是类似)倘若你用插件的思想来看,我们上层的众多应用(App...转载 2018-04-08 12:46:31 · 442 阅读 · 0 评论 -
[Android]用架构师角度看插件化(3)-Replugin 需要占坑跳转?
一.占坑什么是占坑?为什么要占坑?Android插件化中,从一个插件Activity跳转到不同插件的Activity的时候,是否可以能正常跳转成功?声明Activity需要配置什么?声明Activity是需要AndroidManifest中声明,但是插件是依赖于宿主的,插件声明了Activity,但是插件的AndroidManifest信息,是无法动态配置到宿主里面的。那AndroidManife...转载 2018-04-08 12:44:39 · 686 阅读 · 0 评论 -
Android 插件技术实战总结
前言安卓应用开发的大量难题,其实最后都需要插件技术去解决。现今插件技术的使用非常普遍,比如微信、QQ、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家在熟悉不过的应用都在使用。插件技术可以给项目开发带来巨大的好处,比如:并行高效开发、模块解耦、解除单个dex函数不能超过65535的限制、动态更新升级、按需加载等等。本文的目的是从一个典型的复杂项目中总结出较为全转载 2017-05-19 14:19:13 · 727 阅读 · 0 评论 -
VirtualAPK:滴滴 Android 插件化的实践之路
一、前言在 Android 插件化技术日新月异的今天,开发并落地一款插件化框架到底是简单还是困难,这个问题不同人会有不同的答案。但是我相信,完成一个插件化框架的 Demo 并不是多难的事儿,然而要开发一款完善的插件化框架却并非易事,尤其在国内,各大 ROM 厂商都对 Android 系统做了一定程度的定制,这更进一步加剧了 Android 本身的碎片化问题。滴滴出行在插件化上的探索转载 2017-04-01 16:50:15 · 1017 阅读 · 0 评论 -
[Android 插件化(二)] DroidPlugin 用法
1 简介关于Android插件化可以查看我的前一篇博客: [Android 插件化(一)] DynamicLoadApk的用法本篇介绍第二种实现插件化的框架,360公司出品的DroidPlugin框架,个人比较推荐使用这个框架来实现插件化,毕竟是大厂出的东西,已经在360手机助手上用上了,可以放心使用,如果有坑的话,360会去填的嘛DroidPlugin的Githu转载 2017-03-30 17:47:43 · 1279 阅读 · 0 评论 -
Android开源框架源码鉴赏:VirtualAPK
文章目录一 VirtualAPK的初始化流程二 VirtualAPK的的加载流程三 VirtualAPK启动组件的流程3.1 Activity3.2 Service3.3 Broadcast Receiver3.4 Content Provider更多Android开源框架源码分析文章请参见Android open framwork analysis。从2012年开...转载 2018-04-08 04:00:31 · 606 阅读 · 0 评论