Android контент-провайдер и приложение в одном APK? - PullRequest
2 голосов
/ 29 ноября 2011

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

Возможно, есть много вариантов, но после некоторого исследования кажется, что контент-провайдер может делать то, что я хочу. Похоже, что контент-провайдеры были разработаны для предоставления данных через границы приложения. Это нормально, но мне все равно, что поставщик контента находится в другом приложении, чем мое основное приложение. Ни одно другое приложение не заинтересует данные моего контент-провайдера, поэтому пересечение границ приложения в этом случае не поможет.

  • Является ли поставщик контента хорошим способом решения проблемы?

  • Есть ли другой вариант, который я не рассматриваю?

  • Если поставщик контента является хорошим решением, как бы я упаковал приложение и поставщиков контента в один файл .apk?

  • Можно ли это сделать в Eclipse или мне нужно использовать инструменты командной строки?

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Если вы используете данные непосредственно в ListView, например, может быть полезно создать поставщика контента.

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

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

Если вы выбрали поставщика контента, вы можете добавить его в свое основное приложение как компонент, просто объявив его в AndroidManifest.nl, и вы сможете разрабатывать и упаковывать приложение в Eclipse, как обычно.

1 голос
/ 29 ноября 2011

Контент-провайдер - хорошее решение вашей проблемы.

Вам просто нужно объявить вашего контент-провайдера в манифесте, и он будет собран с вашим apk. Если вы не объявляете своего провайдера контента общедоступным, доступ к вашим данным может получить только ваше приложение.

Хороший lib / sample для начала с провайдерами контента - это droid http://datadroid.foxykeep.com/ Он сделает все за вас.

...