Не совсем. Они зависят от времени компиляции. В скомпилированный APK, нет существенной разницы между:
compile 'com.facebook.android:facebook-android-sdk:4.1.0'
compile project(':facebook')
, где вы клонированных репо GitHub или что-то, чтобы дать вам местный проект библиотеки, а не ссылки на артефакт из хранилище
имея кучу классов с именем Facebook и пакетом в вашем приложении, что вы написали (Ditto куча ресурсов)
Если вы пишете приложение, и вы используете разные типы сборки и/или продукты, и у вас разные зависимости для каждого, вы можете использовать BuildConfig
, чтобы определить, какой вариант сборки вы используете.
Если вы пишете библиотеку и хотите определить ее во время выполнения, если разработчик добавил определенную зависимость, то лучше всего потрудиться, чтобы увидеть, существуют ли определенные вещи от этой зависимости и соответствуют ли они вашим ожиданиям. Детали для этого будут зависеть от зависимости (например, если у Play Services существует один набор жестко запрограммированных чеков, то, если существует SDK для Facebook, будет отдельный набор жестко запрограммированных проверок). Это не будет отличать мои три пули выше, но это лучшее, что вы сможете сделать.
нет. все, что вы получаете из зависимостей после завершения сборки, - это классы. – njzk2