package org.bbs.apklauncher;
import android.util.Log;
import dalvik.system.DexClassLoader;
public class LogClassLoader extends DexClassLoader {
private static final String TAG = LogClassLoader.class.getSimpleName();
private static final boolean LOG = true;
private int mLevel;
public LogClassLoader(ClassLoader parent) {
super("", "/sdcard/", "", parent);
}
@Override
protected Class<?> loadClass(String className, boolean resolve)
throws ClassNotFoundException {
if (LOG) {
mLevel++;
Log.d(TAG, makePrefix(mLevel) + className);
}
Class<?> c = super.loadClass(className, resolve);
if (LOG) {
Log.d(TAG, makePrefix(mLevel) + className + " ==> " + (c == null ? "NaN" : c.getClassLoader()));
mLevel--;
}
return c;
}
String makePrefix(int level){
String str = "";
for (int i = 1; i < level; i++){
str += " ";
}
return str;
// return (level == 1 ? "\n" : "") + level;
}
}