Во-первых, не смотрите на имя пакета, объявленное в каталоге java
. Посмотрите в файл манифеста. Вы можете видеть, что эти модули имеют другое имя пакета. Это означает, что все модули в проекте должны иметь различное имя пакета.
Что касается вашего вопроса, в чем преимущество именования модуля библиотеки как lib
?
Нет никакой пользы. Некоторым людям нравится имя lib
, поэтому они могут легко различать модуль demo и library . Однако использование lib
в качестве имени модуля библиотеки требует добавления дополнительной конфигурации в lib/build.gradle
, то есть archiveBaseName
. Этот атрибут Gradle переименует JAR / AAR с lib.aar
на work-runtime.aar
, поэтому люди могут использовать его следующим образом:
implementation "androidx.work:work-runtime:$work_version"
Если archiveBaseName
не установлен, люди будут использовать его следующим образом:
implementation "androidx.work:lib:$work_version"
В нашем случае возьмем мою библиотеку с открытым исходным кодом в качестве примера MaterialPreference . Я использовал имя lib
в этом проекте, но теперь я думаю, что lib
не является хорошим именем модуля. Использование materialpreference
в качестве имени модуля удалит дополнительную конфигурацию archiveBaseName
. Поэтому я чувствую, что это проще.