android插件化开发
文章平均质量分 95
分析360的droid plugin源码,一步步探寻插件化的奥秘
何以诚
这个作者很懒,什么都没留下…
展开
-
android插件化开发——加载广播
阅读本文前,先阅读前面几篇: http://blog.csdn.net/u013022222/article/details/51171720引言在android开发过程中,我们不可避免的会使用广播,比如,侦听开机,侦听短信。 而对于广播,我想很多人都知道他有两种类型,动态广播,通过代码在runtime进行register, 像这样: IntentFilter intentFilter =原创 2016-05-15 12:30:27 · 6867 阅读 · 3 评论 -
android插件开发——加载插件
在阅读本博文的时候,我假设你已经阅读了我之前写的几篇。猛击此处通过前面的几篇博客,我们解决了如何启动一个并没有在ActivityManifest.xml中声明的activity。但是有很多细心的读者私信我说,我们所有的例子里,插件都是和主工程在一起的呀,我们如何从外部加载一个apk获得dex呢?本节就是解决这个问题。 在学习本节之前,有一些非常重要的概念需要提一下。比如类加载器的概念。 我们知道原创 2016-04-17 17:31:52 · 6366 阅读 · 8 评论 -
android插件开发-就是你了!启动吧!插件的activity(二)
这篇博客是上篇的延续,在阅读之前先阅读第一部分:第一部分 我们在启动插件的activity时,通过替换component成功欺骗AMS获得了启动一个activity所必须的一些资源。不过,我们还没有把获取的那些资源都转移到插件的activity之下。这一节就是解决这个问题。所有的答案都是分析源码之后得到的,所以我们还和之前一样继续分析源码,看下AMS是怎么把资源关联到一个activity上的,这样原创 2016-04-14 21:53:05 · 6061 阅读 · 4 评论 -
android插件开发-就是你了!启动吧!插件的activity(一)
通过之前的例子例子,我们学习了如何寻找hook点,并且做一些非常无聊的事情。比如是的粘贴板放一句无聊的句子,或者让系统在启动一个activity时打印一句话。这些看似无聊的事情其实都是为了本节做铺垫。 这一节会把之前的知识都贯穿起来——启动插件中的activity,不过这篇博客比较长,所以我分开成为两部分了第二部分启动插件的activity还是非常难的一件事,因为在android中,所有的acti原创 2016-04-14 09:20:51 · 5564 阅读 · 3 评论 -
Android插件化开发-hook 系统服务(通过binder修改粘贴板服务行为)
如果您还没有阅读第一部分的内容,这篇文章不需往下读,在阅读第一部分后才能继续下面的内容:Hook动态代理基于上面的一篇博客,我们学习了代理的概念,以及如何寻找Hook点。本篇博客将继续拓展前文,不过这次内容要深入很多,这些都是继续学习插件化的基础,为了避免长篇的介绍代理这些枯燥的概念,我特意把它分开来讲,难度一次提升,希望读者能够耐心阅读。之前我们解释代理设计模式的时候,用的是小明打官司的例子,通过原创 2016-04-11 13:52:10 · 5426 阅读 · 1 评论 -
Android插件化开发-hook动态代理
首先,我们阐述为什么android需要插件化: 1:由于业务的增长,app的方法数逐渐达到65535(有人说用于检索方法数的列表大小使用short存储的,其实我看了源码之后并没有发现相关信息,并对此说法产生了怀疑,不过最后找到的结果就是,65535这个限制可能是由于dalvik的bytecode大小限制的,具体的可以查看官方文档)。 2:一个模块的变化都要整体编译一次app,维护成本太大了,用插原创 2016-04-10 11:19:59 · 9266 阅读 · 9 评论