Общий вопрос:
Можно ли использовать ClassLoader для замены предварительно загруженного (системой, например, найденного в Android % android% / frameworks / base / preloaded-classes file) класса?
Конкретные:
Я пытаюсь использовать DexClassLoader для замены класса, найденного в android.net. * Перед созданием WebView в моем приложении. Я могу получить объект Class, но getMethods (), например, дает мне массив, который я ожидаю в неизмененной / оригинальной реализации класса. Это связано с системой предустановленных классов?
Базовая настройка и псевдокод:
- Изменить класс android.net. *, Добавив несколько методов тестирования / и т. Д.
- Скомпилируйте и в итоге получите классы.dex
- jar cf mytest.jar classes.dex
- Включить mytest.jar в активы APK
- Создать DexClassLoader и получить класс с помощью loadClass ()
- getMethods () для объекта Class возвращает массив, который я ожидаю увидеть без изменений, присутствующих в # 1
Я могу предоставить более подробную информацию о настройке, которую я использую, и при необходимости написать код.