Различия между Jar, Android Library и Android Library Project

Насколько я понимаю, три способа распространения моего приложения – через Jar, Android Library и Android Library Project.

Jar – не может содержать ресурсы или XML-макеты (так что это для меня)

Android-библиотека – я действительно не знаю, как это работает, но API Google использует его …

Проект библиотеки Android – включает ресурсы, но позволяет клиенту свободно управлять кодом, поскольку он распространяется как источник.

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

Solutions Collecting From Web of "Различия между Jar, Android Library и Android Library Project"

Более подробная информация о том, что именно ваш проект будет приветствовать. Я понимаю, что вы хотите продать библиотеку (набор компонентов / инструментов, которые разработчики могут интегрировать в свое приложение), не раскрывая источник.

Как вы заявили, вы не можете включать активы / ресурсы в файлы Jar.

Проект библиотеки Android заставит вас позволить «видимому» исходному коду. Правильные условия лицензирования могут помочь вам установить правовые заботы об использовании исходного кода, но … ну, вы знаете, что делают люди с лицензиями … Может быть, может быть запущено некоторое обфускация кода (а не публичные видимые методы).

Я не уверен в том, как работают «общие библиотеки», включенные в <uses-library>, но примеры были зависимы от системы (API карт доступен только на «официальных» устройствах, принятых Google, на передней лицевой панели Sprint Evo …) И может потребоваться построить внутри системы. Возможно, некоторые привилегии root могут помочь добавить один, но это должно быть сделано на КАЖДОМ устройстве, где приложения, использующие вашу библиотеку, захотят запустить …

Почему бы не попробовать что-то в следующих строках:

  1. Создайте проект Eclipse для Android ( не помечен как Library) или просто проект Java Eclipse, в котором нужно заполнить весь ваш код. Это не будет содержать XML / PNG-ресурс, а только код Java. Создайте файл сборки (например, Ant), чтобы создать из него Jar.

    • Вы также можете попытаться добавить proguard в сборку, чтобы обмануть непубличную часть кода.
  2. Создайте проект Eclipse в Android-библиотеке (этот флаг помечен как библиотека), где вы можете загружать все ваши ресурсы XML / PNG. Кроме того, в этом проекте добавьте простую ссылку Jar на выходной Jar из вышеупомянутого проекта.

    • Вероятно, здесь вы также должны указать экспортируемую ссылку для использования клиентами библиотеки.

В качестве альтернативы запутыванию Jar вы можете пропустить это и просто обфускать весь проект проекта библиотеки Android, поскольку это будет работать как для Jar, так и для фактического выхода библиотеки. Просто не забудьте явно сохранить свой публичный API. Преимущество здесь состояло в том, чтобы пропустить ручную реализацию proguard в скрипте построения и использовать тот, который уже реализован в Android Eclipse.

В документации разработчика Android есть статья об Android-библиотеках:

Обновление: http://developer.android.com/tools/projects/index.html#LibraryProjects

Прежде всего, я думаю, что если вы хотите опубликовать свои проекты, программы, которые вы хотите, чтобы они работали на устройстве Android. Поэтому вы можете опубликовать их в формате .apk. И когда вы создаете пакет apk, нет никаких ограничений на то, что вы вкладываете в него. Ваши ресурсы и макеты должны быть в нем, потому что ваше приложение не будет работать без них. Если бы я был вами, я бы сначала изучил руководства по экспорту проектов Android.

http://developer.android.com/guide/publishing/app-signing.html

На этой странице описаны методы публикации и подписания вашего приложения. Вы можете посмотреть на это.

Вы можете создать проект Android, как то, что открытые намерения (http://www.openintents.org/en/applications) делают так, что когда вы экспортируете его как apk, другие разработчики могут вызывать его в своем коде.

Надеюсь это поможет.

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