android动态加载

Android动态加载jar/dex

柔情痞子 提交于 2019-12-02 19:34:58
Android动态加载jar/dex 前言 在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优势。本文对网上Android动态加载jar的资料进行梳理和实践在这里与大家一起分享,试图改善频繁升级这一弊病。 声明   欢迎转载,但请保留文章原始出处:)     博客园:http://www.cnblogs.com     农民伯伯: http://over140.cnblogs.com     Android中文翻译组: http://androidbox.sinaapp.com/ 正文   一、 基本概念和注意点     1.1  首先需要了解一点:在Android中可以动态加载,但无法像Java中那样方便动态加载jar      原因:Android的虚拟机(Dalvik VM)是不认识Java打出jar的byte code,需要通过dx工具来优化转换成Dalvik byte code才行。这一点在咱们Android项目打包的apk中可以看出:引入其他Jar的内容都被打包进了classes.dex。       所以这条路不通,请大家注意。     1.2  当前哪些API可用于动态加载       1.2.1  

Android动态加载jar、apk的实现

元气小坏坏 提交于 2019-12-01 11:23:03
前段时间到阿里巴巴参加支付宝技术分享沙龙,看到支付宝在Android使用插件化的技术,挺好奇的。正好这几天看到了农民伯伯的相关文章,因此简单整理了下,有什么错误希望大神指正。 核心类 1.1 DexClassLoader类 可以加载jar/apk/dex,可以从SD卡中加载为安装的apk。 1.2 PathClassLoader类 只能加载已经安装到Android系统中的apk文件。 一、正文 1.1 类似于eclipse的插件化实现, 首先定义好接口, 用户实现接口功能后即可通过动态加载的方式载入jar文件, 以实现具体功能。 注意 , 这里的jar包需要经过android dx工具的处理 , 否则不能使用。 首先我们定义如下接口 : package com.example.interf; /** * @Title: ILoader.java * @Package com.example.loadjardemo * @Description: 通用接口, 需要用户实现 * @version V1.0 */public interface ILoader { public String sayHi(); } 用户需实现,该接口, 并且将工程导出为jar包的形式。 示例如下 : public class JarLoader implements ILoader { public

Fragment:碎片的动态加载

♀尐吖头ヾ 提交于 2019-11-29 11:43:35
动态添加碎片 碎片真正的强大之处 在于,它可以在程序运行时动态地添加到活动当中。根据具体情况来动态地添加碎片,你就 可以将程序界面定制得更加多样化。 我们还是在上一节代码的基础上继续完善,新建 another_right_fragment.xml,代码如下 所示: <LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" android: layout_width= "match_parent" android: layout_height= "match_parent" android: background= "#ffff00" android: orientation= "vertical" > <TextView android: layout_width= "wrap_content" android: layout_height= "wrap_content" android: layout_gravity= "center_horizontal" android: textSize= "20sp" android: text= "This is another right fragment" /> </LinearLayout> 这个布局文件的代码和 right_fragment