![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android 插件化开发
码莎拉蒂 .
这个作者很懒,什么都没留下…
展开
-
Android插件化开发之AMS与应用程序(客户端ActivityThread、Instrumentation、Activity)通信模型分析
转载来自:http://blog.csdn.net/qinjuning/article/details/7262769 今天主要分析下ActivityManagerService(服务端) 与应用程序(客户端)之间的通信模型,在介绍这个通信模型的基础上,再 简单介绍实现这个模型所需要数据类型。 本文所介绍内容基于android2.2版本。由于Android版本的转载 2016-11-17 21:10:32 · 7096 阅读 · 0 评论 -
Android插件化开发之DexClassLoader动态加载dex、jar小Demo
一、温故动态加载ClassLoader机制如果对Android的ClassLoader加载机制不熟悉,猛戳Android插件化开发动态加载基础之ClassLoader工作机制http://blog.csdn.net/u011068702/article/details/53248960二、介绍 我们知道在Android中可以跟java一样实现动态加载jar,但是And原创 2016-11-21 20:55:00 · 17508 阅读 · 6 评论 -
Android插件化开发之动态加载的类型
https://segmentfault.com/a/1190000005113493基本信息Author:kaedeaGitHub:android-dynamical-loading现在网络上有许多关于动态加载的介绍的文章,谈及的关键词汇有动态加载、插件化、热部署、热修复等,对于一些刚接触这方面开发技术的人来说,可能容易混淆。虽然我在动态加载系列的转载 2016-12-05 21:46:55 · 2545 阅读 · 0 评论 -
Android插件化开发之用DexClassLoader加载未安装的APK资源文件来实现app切换背景皮肤
第一步、先制做一个有我们需要的图片资源的APK如下图,这里有个about_log.png,我们需要生成apk文件。生成的apk文件如果你不到项目的文件夹里面去取apk,想通过命令放到手机里面去可以快速用下面命令1)、在手机里面通过包名找到apk路径,一定不要忘记有 -fadb shell pm list package -f | grep com.example.tes原创 2016-11-23 21:39:05 · 7263 阅读 · 6 评论 -
Android插件化开发之动态加载三个关键问题详解
本文摘选自任玉刚著《Android开发艺术探索》,介绍了Android插件化技术的原理和三个关键问题,并给出了作者自己发起的开源插件化框架。动态加载技术(也叫插件化技术)在技术驱动型的公司中扮演着相当重要的角色,当项目越来越庞大的时候,需要通过插件化来减轻应用的内存和CPU占用,还可以实现热插拔,即在不发布新版本的情况下更新某些模块。动态加载是一项很复杂的技术,这里主要介绍动态加载技术中的转载 2016-11-22 21:28:06 · 3758 阅读 · 2 评论 -
Android插件化开发之动态加载基础之ClassLoader工作机制
类加载器ClassLoader早期使用过Eclipse等Java编写的软件的同学可能比较熟悉,Eclipse可以加载许多第三方的插件(或者叫扩展),这就是动态加载。这些插件大多是一些Jar包,而使用插件其实就是动态加载Jar包里的Class进行工作。这其实非常好理解,Java代码都是写在Class里面的,程序运行在虚拟机上时,虚拟机需要把需要的Class加载进来才能创建实例对象并工作,而完成这转载 2016-11-21 00:46:59 · 5884 阅读 · 0 评论 -
Android插件化开发基础之Java类加载器与双亲委派模型
类加载器加载类的开放性类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决定如何获取所需的类。虚拟机规范并没有指明二进制字节流要从一个Class文件获取转载 2016-11-20 23:48:04 · 4695 阅读 · 0 评论 -
Android插件化开发基础之App如何动态加载类
在 Java 里面,我们可以把一些类放到 .jar 文件里面,然后用 ClassLoader 动态加载。例如:URLClassLoader ucl = URLClassLoader.newInstance(new URL[] {new URL("file:/sdcard/files/test.jar")}); Class clazz = ucl.loadClass("com.test.转载 2016-11-20 21:27:05 · 2851 阅读 · 0 评论 -
Android插件化开发之动态加载技术系列索引
动态加载介绍在Android开发中采用动态加载技术,可以达到不安装新的APK就升级APP功能的目的,可以用来到达快速发版的目的,也可以用来修复一些紧急BUG。现在使用得比较广泛的动态加载技术的核心一般都是使用 ClassLoader ,后者能够加载程序外部的类(已编译好的),从而达到升级代码逻辑的目的。虽然动态加载的核心原理比较简单,但是根据功能的复杂程度,实际在Android项目转载 2016-11-20 22:19:59 · 2667 阅读 · 0 评论 -
Android插件化开发之动态加载技术简单易懂的介绍方式
转载地方:https://segmentfault.com/a/1190000004062866基本信息Author:kaedeaGitHub:android-dynamical-loading我们很早开始就在Android项目中采用了动态加载技术,主要目的是为了达到让用户不用重新安装APK就能升级应用的功能(特别是 SDK项目),这样一来不但可转载 2016-11-19 23:11:39 · 3347 阅读 · 0 评论 -
Android插件化开发之Hook StartActivity方法
第一步、先爆项目demo照片,代码不多,不要怕第二步、应该知道Java反射相关知识如果不知道或者忘记的小伙伴请猛搓这里,Android插件化开发基础之Java反射机制研究 http://blog.csdn.net/u011068702/article/details/49863931第三步、应该知道Java静态代理知识如果不知道或者忘记的小伙伴请猛搓这原创 2016-11-18 00:22:53 · 16828 阅读 · 15 评论 -
Android插件化开发基础之Java动态代理(proxy)机制的简单例子
一、代码package com.sangfor.tree;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;interface ProxyInterFace { public void proxyMethod();原创 2016-11-16 12:02:11 · 4623 阅读 · 4 评论 -
Android插件化开发基础之Java反射机制研究
一、获得Class对象Class c = Class.forName("classname"); 抛出ClassNotFoundException二、获得实现接口Class inters[] = c.getInterfaces();for(int i=0;i<inters.length;i++){ System.out.print(inters[i].getName(原创 2015-11-16 11:47:30 · 3005 阅读 · 0 评论 -
Android插件化开发基础之静态代理模式
一 Proxy模式意图: 为其他对象提供一种代理以控制这个对象的访问。适用性: l 远程代理( Remote Proxy ): 为一个对象在不同的地址空间提供局部代表。 l 虚代理(Virtual Proxy)根据需要创建开销很大的对象。使用一个代理对象作为代表,在真正的需要时进行创建。 l 保护代理(Protection Proxy):控制对原始对原创 2016-06-27 03:00:57 · 4196 阅读 · 0 评论 -
Android插件化开发之运行未安装apk的activity
1、介绍我们知道PathClassLoader是一个应用的默认加载器(而且他只能加载data/app/xxx.apk的文件),但是我们加载插件一般使用DexClassLoader加载器,所以这里就有问题了,其实如果对于开始的时候,每个人都会认为很简单,很容易想到使用DexClassLoader来加载Activity获取到class对象,在使用Intent启动2、替换LoadApk里原创 2016-12-08 21:23:20 · 5625 阅读 · 3 评论