Создать библиотеку для разработки под Android? - PullRequest
4 голосов
/ 14 сентября 2010

Я довольно новичок в разработке под Android, но у меня есть некоторый опыт работы с Java и Eclipse. Я ищу способы создания повторно используемых библиотек (элементов управления, помощников, «стандартных» действий и т. Д.), Которые я мог бы использовать в своих собственных проектах, но которые также могли бы распространяться среди других разработчиков без раскрытия исходного кода.

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

Как я могу сделать это с проектами Android? Я читал о проектах библиотек Android, но, как говорится в документации, их нельзя упаковать в JAR, но они будут скомпилированы вместе с проектом, который ссылается на проект библиотеки. Это означает, что я также должен распространять исходный код.

Я также прочитал этот пост , который задает тот же вопрос, но не дал удовлетворительного ответа.

Итак: существует ли способ компилирования и упаковки набора классов и других файлов (включая макеты XML, ресурсы и прочее) и распространения только этого пакета без каких-либо исходных кодов, чтобы на него можно было "ссылаться" и использовать как JAR-файл любого другого разработчика?

Ответы [ 3 ]

5 голосов
/ 14 сентября 2010

Я читал о проектах библиотек Android, но, как говорится в документации, они не могут быть упакован в JAR, но будет скомпилирован вместе с проектом, который ссылается на библиотеку проект. Это означает, что я также должен распространять исходный код.

Не правда. Это требует немного дополнительной работы по упаковке, но вы можете скомпилировать свой код в JAR и распределить JAR в каталоге libs/ проекта библиотеки.

Итак: есть ли способ компилирования и упаковки набора классов и других файлов (включая XML-макеты, ресурсы и прочее) и распространять только этот пакет без какого-либо источника коды, чтобы на него можно было "ссылаться" и использовать как файл JAR любым другим разработчиком?

Использовать проект библиотеки Android. У меня есть некоторые вещи, написанные здесь , которые описывают немного больше вариантов упаковки, плюс указатели на некоторые "посылки", которые следуют соглашениям, описанным в нем.

0 голосов
/ 17 сентября 2013

Совершенно новый мир управления зависимостями:

http://tools.android.com/recent/dealingwithdependenciesinandroidprojects

0 голосов
/ 09 февраля 2011

Спасибо за ваше решение. Из того, что я понимаю, вы все еще не можете получить доступ к ресурсам, закрытым для библиотеки, из кода библиотеки. Поэтому предположим, что в вашей библиотеке есть строковый ресурс с именем «my_lib_resource» в разделе res / values ​​в библиотеке. Вы связываете это в банке вместе с исходным кодом. Можете ли вы получить доступ к этому ресурсу из исходного кода библиотеки, используя что-то вроде:

int id = res.getIdentifier("com.example.mylib:string/my_lib_resource",null,null) 

при условии, что имя вашего библиотечного пакета - com.example.mylib.

Для меня это не работает.

...