Автоматизация сборки библиотек и приложений под Android

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

Я расскажу, что такое бинарная application library, как ее создать, используя средство сборки Gradle, как включить ее зависимостью в другой проект и зачем для хранения стоит использовать репозиторий артефактов, в качестве которого может выступить maven или ivy.