String packageName = "com.example.mypackage";
String className = "com.example.mypackage.Test";
String apkName;
try {
apkName = getPackageManager().getApplicationInfo(packageName, 0).sourceDir;
PathClassLoader myClassLoader =
new dalvik.system.PathClassLoader(
apkName,
ClassLoader.getSystemClassLoader());
Class<?> handler = Class.forName(className, true, myClassLoader);
Method mm = handler.getMethod("myMethod", null);
String temp= (String) mm.invoke(handler.getInterfaces(), null);
Log.d("", temp);
} catch (Exception e) {
e.printStackTrace();
}
注意,PathClassLoader加载的apk,必须在data/app下面,如果想要加载sd卡下面的apk则需要使用DexClassLoader
android下使用classload
最新推荐文章于 2024-05-02 23:16:54 发布