Подтвердить что ты не робот

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

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

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

Библиотека Android. Я не знаю, как это работает, но API Google использует его...

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

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

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

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

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