Загрузка / переопределение собственных классов Android

Основная цель - переопределить системный класс Android (Activity, View и т. д.) с помощью моя собственная реализация.

http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html

Реализован ClassLoader для загрузки пользовательского класса, загрузка несистемного класса (пользовательский класс) работает.

Но когда я пытаюсь загрузить Activity с моей реализацией - она ​​не загружается, потому что ClassLoader уже имеет этот класс в своем кэше:

/**
 * Returns the class with the specified name if it has already been loaded
 * by the virtual machine or {@code null} if it has not yet been loaded.
 *
 * @param className
 *            the name of the class to look for.
 * @return the {@code Class} object or {@code null} if the requested class
 *         has not been loaded.
 */
protected final Class findLoadedClass(String className) {
    ClassLoader loader;
    if (this == BootClassLoader.getInstance())
        loader = null;
    else
        loader = this;
    return VMClassLoader.findLoadedClass(loader, className);
}

Как я могу изменить загрузчик классов, чтобы внедрить мой собственный класс вместо системного?

8
задан user1083195 6 December 2011 в 09:37
поделиться