java dexclassloader,所有类的安卓dexclassloader获取列表

I am using external jar from assets or sdcard in my android application. To do that I am using DexClassLoader.

DexClassLoader cl = new DexClassLoader(dexInternalStoragePath.getAbsolutePath(),

optimizedDexOutputPath.getAbsolutePath(),

null,

getClassLoader());

to load a class :

Class myNewClass = cl.loadClass("com.example.dex.lib.LibraryProvider");

it works really nice but now I want to get list of all classes names in my DexClassLoader

I found this to work in java but there is no such thing in android.

Question is how i can get list of all classes names from DexClassLoader

解决方案

To list all classes in a .jar file containing a classes.dex file you use DexFile, not DexClassLoader, e.g. like this:

String path = "/path/to/your/library.jar"

try {

DexFile dx = DexFile.loadDex(path, File.createTempFile("opt", "dex",

getCacheDir()).getPath(), 0);

// Print all classes in the DexFile

for(Enumeration classNames = dx.entries(); classNames.hasMoreElements();) {

String className = classNames.nextElement();

System.out.println("class: " + className);

}

} catch (IOException e) {

Log.w(TAG, "Error opening " + path, e);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值