[Android]动态加载/热部署框架汇总】的更多相关文章

1.DroidPlugin 用途:动态加载 使用案例:360手机助手 GitHub地址:https://github.com/Qihoo360/DroidPlugin ppt介绍:https://github.com/Qihoo360/DroidPlugin/tree/master/DOC Demo:https://github.com/SpikeKing/wcl-plugin-test-app 详解: http://blog.csdn.net/yzzst/article/details/480…
在常规的Java Web开发过程中,在修改完代码后,往往需要重启Tomcat来使得我们的修改生效,在SpringBoot中也需要从新启动SpringBoot来将修改部署.如果我们不希望重启tomcat或者不重启SpringBoot,就需要在pom增加两个依赖: <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <…
本文转载自: http://blog.csdn.net/wy353208214/article/details/50859422 1.什么是类加载器? 类加载器(class loader)是 Java™中的一个很重要的概念.类加载器负责加载 Java 类的字节代码到 Java 虚拟机中.Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件).类加载器负责读取 Java 字节代码,并转换…
本文介绍Android中动态加载Jar.APK的实现.而主要用到的就是DexClassLoader这个类.大家都知道Android和普通的Java虚拟机有差别,它只能加载经过处理的dex文件.而加载这个dex文件可以通过DexClassLoader 和 PathClassLoader 两个类来实现这个方法.然而PathClassLoader只能加载已经安装到Android系统中的apk文件.接下来,会介绍在Android中如何动态加载Jar.如何加载未安装的APK,如何加载已经安装的APK. 1…
在实际项目中,由于某些业务频繁变更而导致频繁升级客户端的弊病会造成较差的用户体验,而这也恰是Web App的优势,于是便衍生了一种思路,将核心的易于变更的业务封装在jar包里然后通过网络下载下来,再由android动态加载执行的方案,以改善频繁升级的毛病 --前言 该技术的具体实现步骤可参考农民伯伯的博客:http://www.cnblogs.com/over140/archive/2011/11/23/2259367.html本文以此为基础,扩展了一个简单的框架,教大家如何使用该技术实现业务的…
探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法 重要说明 在实践的过程中大家都会发现资源引用的问题,这里重点声明两点: 1. 资源文件是不能直接inflate的,如果简单的话直接在程序中用代码书写. 2. 资源文件是不能用R来引用的,因为上下文已经不同了,腾讯的做法是将资源文件打包(*.pak文件和APK打包在一起),虽然APK是没有进行安装,但是 资源文件是另外解压到指定文件夹下面的,然后将文件夹的地址传给了第三方应用程序,这样第三方应用程序通过File的inputstream…
在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本文对网上Android动态加载jar的资料进行梳理和实践在这里与大家一起分享,试图改善频繁升级这一弊病. Android应用开发在一般情况下,常规的开发方式和代码架构就能满足我们的普通需求.但是有些特殊问题,常常引发我们进一步的沉思.我们从沉思中产生顿悟,从而产生新的技术形式.如何开发一个可以自定义…
一.前言: 现在,已经有实力强大的公司用这个技术开发应用了,比如淘宝,大众点评,百度地图等,之所以采用这个技术,实际上,就是方便更新功能,当然,前提是新旧功能的接口一致,不然会报Not Found等错. 二.原理: 2.1 JAR文件: Android使用动态加载的方法,和Java加载类似,都是加载.jar文件来实现,只不过,不同的是,这两者的虚拟机不同,导致.jar的格式也不同. Android只认识.dex格式的.class文件,因为,需要做的是: 1. 正常的方法Export出一个.jar…
前言 近期做换肤功能,由于换肤程度较高,受限于平台本身,实现起来较复杂,暂时搁置了该功能,但也积累了一些经验,将分两篇文章来写这部分的内容,欢迎交流! 关键字:Android动态加载 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com Android中文Wiki:http://wikidroid.sinaapp.com 正文 一.前提 目的:动态加载SD卡中Apk的类. 注意:被加载的A…
前言 在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势.本文对网上Android动态加载jar的资料进行梳理和实践在这里与大家一起分享,试图改善频繁升级这一弊病. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com Android中文翻译组:…
Android动态加载代码技术 在开发Android App的过程当中,可能希望实现插件式软件架构,将一部分代码以另外一个APK的形式单独发布,而在主程序中加载并执行这个APK中的代码. 实现这个任务的一般方法是: // 加载类cls Context pluginContext = mainContext.createPackageContext(PLUGIN_PKG, Context.CONTEXT_IGNORE_SECURITY | Context.CONTEXT_INCLUDE_CODE)…
转载自: http://www.cnblogs.com/over140/archive/2012/03/29/2423116.html http://www.cnblogs.com/over140/archive/2012/04/19/2446119.html 关于第一部分(加载未安装apk中的类),自己在看原文时遇到的问题(使用的版本android4.2): 现象: String path = Environment.getExternalStorageDirectory() + "/&quo…
几种动态加载的比较 1.Tinker 用途:热修复 GitHub地址:https://github.com/Tencent/tinker/ 使用:http://www.jianshu.com/p/f697cd91bf88/comments/5250950# 2.HotFix 用途:热修复 GitHub地址:https://github.com/dodola/HotFix 该项目是基于QQ空间终端开发团队的技术文章实现的 3.Small 用途:动态加载 GitHub地址:https://githu…
前言 上周五DPAndroid小分队就第二阶段分享内容进行了讨论,结果形成了三个主题:性能优化.动态加载.内核远离.我选择的是第二项——动态加载.在目前的Android开发中,这一部分知识还是比较流行的,很大一部分原因是65k方法数的限制.国内各大IT公司的app开发者或多或少都遇到过这个老大难问题,并且各辟蹊径,公布了各自的应对方法.选这个议题,第一在于有价值(大型IT公司的Android开发一定会不可避免地在这个问题上纠结过,小型公司/开发者也许不在意,较高的门槛剔除了很多初级的无用信息):…
在Android中调用动态库文件(*.so)都是通过jni的方式,而且往往在apk或jar包中调用so文件时,都要将对应so文件打包进apk或jar包,工程目录下图: 以上方式的存在的问题: 1.缺少灵活性比较类似静态加载了(不是静态加载),能加载的so文件绑定死了: 2.但so文件很多或很大时,会导致对应的apk和jar包很大: 3.不能动态的对so文件更新: Android中加载so文件的提供的API: void System.load(String pathName); 说明: 1.pat…
前不久跑去折腾高德 SDK 中的 HUD 功能,相信用过该功能的用户都知道 HUD 界面上的导航转向图标是动态变化的.从高德官方导航 API 文档中 AMapNaviGuide 类的描述可知,导航转向图标有23种类型. 诶,等等,23 种?那图标应该是放在 assets 文件夹吧?总不可能是在服务器上下载吧? 看下导航 API 的 jar 包结构. AMap_ Navi_v1.3.0_20150828.jar |- assets |- autonavi_Resource1_1_0.png |-…
前段时间到阿里巴巴参加支付宝技术分享沙龙,看到支付宝在Android使用插件化的技术,挺好奇的.正好这几天看到了农民伯伯的相关文章,因此简单整理了下,有什么错误希望大神指正. 核心类 1.1      DexClassLoader类 可以加载jar/apk/dex,可以从SD卡中加载为安装的apk.  1.2      PathClassLoader类 只能加载已经安装到Android系统中的apk文件.     一.正文    1.1 动态加载jar 类似于eclipse的插件化实现, 首先定…
最近工作中接到了一个研究防止逆向编译的任务.研究了几天资料,最后基本实现了防破解技术,在这个工程中,也略有一些心得体会,现整理下来分享,供大家探讨参考研究.文中如有纰漏.失实之处,请大家及时给与指正. 防破解技术主要有四种实现方式:1.代码混淆(ProGuard)技术 2.签名比对技术 3.NDK  .so 动态库技术 4.动态加载技术. 参考资料:http://bbs.pediy.com/showthread.php?t=137112 第一种 代码混淆技术(ProGuard)  该技术主要是进…
虽然动态添加碎片的功能很强大,可以解决很多实际开发中的问题,但是它毕竟只是在 一个布局文件中进行一些添加和替换操作.如果程序能够根据设备的分辨率或屏幕大小在运 行时来决定加载哪个布局,那我们可发挥的空间就更多了.因此本节我们就来探讨一下 Android 中动态加载布局的技巧. 4.4.1   使用限定符 如果你经常使用平板电脑,应该会发现很多的平板应用现在都采用的是双页模式(程序 会在左侧的面板上显示一个包含子项的列表,在右侧的面板上显示内容),因为平板电脑的 屏幕足够大,完全可以同时显示下两页…
我这周上网看到动态增加listview的每一项item的布局,今天抽空自己写了一个,方便自己日后使用,这个效果还是很不错的,用到了Adapter的notifyDataSetChanged()方法,当点击每一个Item的时候,就通知adapter更新getView,系统得到通知就相应的加载一遍布局,就达到了动态加载item布局的效果.希望给大家带来点启迪,有问题或想要代码的可以留言,欢迎大家留言谈论listview的一些知识,以求共同进步,转载请标明出处: http://blog.csdn.net…
动态加载,本质上是通过JVM类加载机制将插件模块加载到宿主apk中,并通过android的相关运行机制,实现插件apk的运行.因此熟悉JVM类加载的机制非常重要. 类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析.初始化,最终形成可以被虚拟机直接使用的Java类型 从类被加载到虚拟机内存中开始,到卸载出内存为止,类的生命周期包括加载(Loading).验证(Verification).准备(Preparation).解析(Resolution).初始化(In…
概述 面对App业务逻辑的频繁变更,如果每一次改变都对App进行一次升级,会降低App的用户体验,那么App进行模块化升级(这里与增量升级是不同的)是很好的解决方案,让用户在完全无感觉的情况下改变App中的业务逻辑.要实现这种模块化升级,动态加载字节码(jar/dex)就是实现这个需求的理论基础. Android系统加载字节码 Android的虚拟机(Dalvik VM)无法识别普通jar包中的字节码,所以需要通过字节码转换工具将jar转换成dex,jar包中的所有字节码都会打进classes.…
偶然发现了这个框架,阿里图片加载用的这个框架.非常简单操作步骤. 1.首先下载软件包,直接搜Cube ImageLoader 这个. 2.加入jar文件 3.使用前的配置: public class CubeApplication extends Application { @Override public void onCreate() { super.onCreate(); // other code // .. Cube.onCreate(this); } @Override public…
万分感谢大佬:https://www.jianshu.com/p/6a235ba5ee17 深入了解View<一>之Android LayoutInfalter原理分析 下文为:LayoutInflater 简述 LayoutInfalter主要是用来加载布局.对LayoutInfalter不怎么熟悉的,通常都是在Activity中调用setContentView()方法来完成的.其实setContentView()方法的内部也是使用LayoutInfalter来加载布局的,只不过这部分源码是…
No1: 插件化技术的好处: 1)减轻应用的内存和CPU占用 2)实现热插拔,即在不发布新版本的情况下更新某些模块 No2: 插件化方案必须要解决三个基础性问题:资源访问.Activity生命周期的管理和ClassLoader的管理 No3: 宿主是指普通的apk,插件一般指经过处理的dex或者apk.插件化框架大多采用apk作为插件,很多需要用到代理Activity,插件Activity的启动大多数是借助一个代理Activity来实现的. No4: Activity的工作主要是通过Contex…
如果经济实力允许的话,还是建议大家去购买收费版.支持原创作者,才能有更好的产品出现. 一.Jrebel插件介绍 JRebel一款帮助我们在开发过程中实现热加载的插件,目前来说,在IDEA中实现热加载最简单的方式就是使用Jrebel插件,我们修改代码之后不用重启应用,使代码能够立刻生效.本文将基于IntelliJ IDEA给大家讲解一下插件的破解方式.安装我就不讲了,IDEA的插件安装很简单. 安装过程可以看我的另外一篇文章:使用JRebel插件实现SpringBoot应用代码热加载 二.破解方法…
该文主要是讲一下目前有哪些使用比较多的 图片加载开源项目,并简单介绍该如果使用 以及各开源项目之间有什么区别, 我们该如何去选择适合的开源项目应用到我们的项目中? 一.Android-Universal-Image-Loader 项目地址:https://github.com/nostra13/Android-Universal-Image-Loader 如何使用? Acceptable URIs examples(可接受的Uri 例子 ) "http://site.com/image.png&…
Ajax火啊,火到了居然Loading Icons都有很多人专门提供的地步.下面是我同事给我介绍的一些提供Ajax Activity Indicators的网站,共享给大家,以便让我们的Ajax应用具有更好的用户体验. http://www.ajaxload.info/        // 可以自己根据需求创建Ajax Indicators,不过动态效果都是转圈圈@_@ http://mentalized.net/activity-indicators/     http://www.napyf…
pak文件经常出现于游戏的安装目录中,其实pak文件是一种特殊的游戏压缩文件,用于压缩声音.图片等资料.由于pak文件专门针对游戏设计文件结构,pak文件就是将多个文件(图片.音乐.文本)打包为一个单独文件,在pak文件中保存着多个文件的数据. pak是什么文件? 现 在大部分游戏的客户端都采用pak压缩格式,以便于游戏的开发.由于是一种压缩格式,pak文件可以用一些专业压缩软件(如WinRAR. WinZip)打开,但由于其特殊性与一般的压缩文件格式打开方式有所不同.pak文件一般是游戏的文件…
1.作用 大多数Android开发人员开始接触这个问题是因为 App 爆棚了,方法数超过了一个 Dex 最大方法数 65535 的上限,因而便有了插件化的概念,将一个 App 划分为多个插件(Apk 或相关格式) 常用的其他解决方法还包括:Google Multidex,用 H5 代替部分逻辑,删无用代码,买付费版的 Proguard 当插件化作用不止于此,还包括:(1) 模块解耦,(2) 动态升级,(3) 高效并行开发(编译速度更快)  (4) 按需加载,内存占用更低  (5) 节省升级流量…