Подтвердить что ты не робот

Возможно ли доступ к ресурсам в другой APK без использования контент-провайдеров?

Я думал, что невозможно получить доступ к ресурсам, содержащимся в других APK, если контент-провайдеры не используются. Однако я наткнулся на приложение под названием Better Keyboard. Он использует скины, поэтому я решил загрузить пример скина.

Пример skin действительно меня удивил. Он почти не содержит кода, объявляет только активность и отсутствие поставщиков контента. Тем не менее, он содержит ресурсы, и они, по-видимому, каким-то образом доступны из приложения Better Keyboard, если APK с кожей устанавливается. Итак, как это делается?

4b9b3361

Ответ 2

Попробуйте это

 PathClassLoader loader = 
 new PathClassLoader ("/data/app/com.skin.apk", null,PathClassLoader.getSystemClassLoader());
 InputStream f = loader.getResourceAsStream("res/drawable/icon.png");
 Bitmap bitmap=BitmapFactory.decodeStream(f);
 BitmapDrawable b=new BitmapDrawable(bitmap);
 mButton.setBackgroundDrawable(b);

Ответ 3

Возможно, используя getresoucesforapplication, и вам понадобится res.getidentifier для получения идентификатора ресурса. Однако при извлечении ресурса стиля он, похоже, не работает.