Android: как совместно использовать код между проектами, подписанными с тем же сертификатом

В документации Android относительно подписывания кода мы можем читать: "Путем подписания нескольких приложений с тем же сертификатом и использования основанных на подписи проверок полномочий, приложения могут совместно использовать код и данные безопасным способом".

Как точно такой код, совместно использующий, может быть сделан? Действительно ли возможно выпустить главное приложение, и несколько сменных плагинов затем обнаруживают их во времени выполнения? То, что делает исходный код, похоже и что такое преимущества перед "стандартными" вызовами намерений из/в различные пакеты APK?

15
задан Jon Seigel 5 June 2010 в 23:06
поделиться

1 ответ

Используйте Context.createPackageContext (), чтобы создать экземпляр пакета для другого интересующего вас .apk. Если он подписан тем же сертификатом, что и ваш, И вы оба используют один и тот же общий идентификатор пользователя, тогда вы можете использовать флаг для загрузки его кода в свой процесс, что позволит вам получить ClassLoader из контекста и создать экземпляры любых классов, которые вы хотите.

В противном случае, если они не подписаны одинаково и явно используют один и тот же совместно используемый идентификатор, вы можете загружать только его ресурсы.

Обратите внимание, что вы не можете изменить общий идентификатор пользователя для приложения (на что-то другое или переключиться между наличием и отсутствием общего идентификатора пользователя), когда это приложение появится на рынке.

9
ответ дан 1 December 2019 в 04:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: