java reflect 反射

本文介绍了一种在Android平台上动态加载jar文件的方法,并提供了一个具体的示例代码,展示了如何通过DexClassLoader类来加载外部的dex文件并获取其内部类及字段信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来源:http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html

练习:

		
			Class<?> cls = Class.forName("java.lang.String");
			Constructor<?>  constructor = cls.getConstructor(String.class);
			Object obj = constructor.newInstance("adb");
			Method method = cls.getMethod("toString");
			Object sss = method.invoke(obj);
			System.out.println(sss);
			
		

  android上的动态加载jar

	public static int getLibVersion(Context context) {
		int version = 1;
		final File optimizedDexOutputPath = new File(Constant.VIDEO_LIB_PATH + File.separator + LIB_FILE_NAME);
		if (optimizedDexOutputPath.exists()) {
			try {
				DexClassLoader cl = new DexClassLoader(optimizedDexOutputPath.getAbsolutePath(), context.                                  getCacheDir().getAbsolutePath(),null, context.getClassLoader());
				Class<?> libProviderClazz = null;
				libProviderClazz = cl.loadClass(YOUTUBE_VERSION_CLASSNAME);
				Field field = libProviderClazz.getField("VERSION");
				version = field.getInt(null);
			} catch (Exception ex) {
				LogUtil.e(ex);
			}
		}
		return version;
	}

  

转载于:https://www.cnblogs.com/wjw334/p/3621625.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值