Получение данных из облака с помощью Android - PullRequest
2 голосов
/ 07 января 2012

Я пишу приложение для социальной сети Android.Я создал веб-сервис .Net с базой данных в Microsoft Azure, и я планирую вызвать этот веб-сервис, чтобы получать данные из облака и отображать их для пользователя.Аналогично Facebook.

Теперь я имею в виду два подхода, и я не уверен, какой из них реализовать.Подходы следующие:

  1. «Каждый раз, когда загружается действие, вызывайте веб-службу и перезагружайте все данные». Это, конечно, самый простой подход, но так ли этоправо?Я имею в виду, у меня около 30 видов деятельности, и половина из них загружает данные, а другая половина публикует.Насколько я вижу, такой подход может быть проблемой, потому что это может замедлить работу приложения.Это может также увеличить мой счет облака с таким большим количеством запросов.И я не знаю, правильно ли это каждый раз перезагружать.
  2. "Звоните в веб-службу каждые 10 минут, сохраняйте все данные в базе данных SQLite и обновляйте данные только в том случае, если их было больше 10минут или, возможно, даже иметь кнопку обновления. " Этот подход, вероятно, лучше, но я не уверен, стоит ли даже писать так много кода.

Ты мне нуженсовет при выборе правильной техники.Номер 2 выглядит хорошо, но что, если есть что-то, чего я не знаю, и я пишу весь этот дополнительный код без причины.

Пожалуйста, помогите мне здесь.Если есть даже лучший подход, пожалуйста, скажите мне.

1 Ответ

1 голос
/ 07 января 2012

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

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

  1. , когда данные необходимо обработать (найти, запросить и т. Д.) Или если данных много.

  2. Файл (-ы), иногда полезный, если вы работаете с форматированными данными, такими как xml или json, поскольку вы можете поддерживать структуру.Вы можете использовать встроенное кэширование Android , чтобы помочь в управлении хранилищем.

  3. Предпочтения, когда данные представляют собой простые типы (и строки), и их не так много.Это.

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

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

ОБНОВЛЕНИЕ из комментариев

Из ограниченной информации, доступной о вашем проекте, я бы предложил использовать базу данных в качестве хранилища данных (если есть), так как вы этого не хотитекэшируйте полные SOAP-сообщения в файлах, а количество записей 40+ может затруднить управление хранилищем предпочтений.

Однако, как я упоминал ранее, вам нужно учитывать сложность.При использовании базы данных вам придется создать метод построения (возможно, какой-то ORM), отдельный для десериализации объектов SOAP, поскольку технически у вас будет 2 отдельных постоянных формата данных.

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

Несколько других моментов, которые стоит упомянуть при рассмотрении такого родакеширование.

  • Как вы будете управлять кешем, его размером и целостностью данных.
  • Когда вы будете кешировать, как только вы удалите сериализацию объектов SOAP?когда вы закончили с данными?и т. д.
  • Как будет решаться, когда использовать кеш и когда подключаться к сети?
...