Skip this one
Android ClassLoader - dynamic loading of class by name
2010-06-10 04:32:03
So you have the names of a bunch of classes, how can you load them? Here's the code (needs to be in an activity to make use of getPackageManager()):
String packageName = "com.example.mypackage";
String className = "com.example.mypackage.MyClass";
String apkName = getPackageManager().getApplicationInfo(packageName, 0).sourceDir;
PathClassLoader myClassLoader =
new dalvik.system.PathClassLoader(
apkName,
ClassLoader.getSystemClassLoader());
Class<?> handler = Class.forName(className, true, myClassLoader);
You can combine several apk-files in the string apkName by separating them with a ":". Pretty simple, huh :)
Thanks to Josh for his blog post on Dynamic Loading. His example has a problem though, as he assumes the apk-file is located in /data/app/PACKAGENAME.apk. That may or may not be true (it wasn't for me), so better to use the PackageManager (as above).
Posted by android 2
0 CommentsPage 1