Хранить большие данные локально или онлайн для приложения Android? - PullRequest
7 голосов
/ 21 сентября 2011

Первая публикация и первая работа на Android, так что будьте спокойны, если я нарушаю какие-либо правила :)

В любом случае, я только начал создавать приложение для Android и пытаюсь создать простую игру викторины. Я планирую сделать много вопросов (надеюсь, около 5000+ вопросов). Никаких манипуляций с данными, просто читайте вопросы и представляйте их пользователю. Теперь я сталкиваюсь с дилеммой в том, как хранить вопросы.

У меня есть два варианта:

1.) Объедините вопросы с приложением: Возможно, сохраните информацию в SQLite. Первоначально для демонстрационных целей я поместил вопросы в XML-файл, но я быстро понял, насколько он будет неэффективным, когда вопросы начнут накапливаться. Во-первых, меня беспокоит, не откроет ли такой огромный XML-файл память Android. Во-вторых, меня беспокоит размер приложения, если оно содержит более 5000 вопросов. Я прочитал здесь о плюсах XML против SQLite. В этом примере у пользователя 70000 записей, так что, может быть, моих 5000 вопросов будет достаточно?

OR

2.) Размещайте вопросы на сервере: Я считаю, что положительным моментом является то, что приложению не нужно связывать огромное количество вопросов и не нужно беспокоиться о логике открытие и сборка вопросов. Он просто попадет на страницу PHP и в зависимости от отправленных параметров страница PHP вернет вопросы в формате XML. Недостатком является то, что пользователь должен быть в сети (чтобы получить вопросы), чтобы играть в игру, а мой сервер должен быть в рабочем состоянии 24/7.

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

Спасибо, любая помощь будет принята с благодарностью!

Ответы [ 2 ]

8 голосов
/ 21 сентября 2011

С точки зрения маркетинга, я думаю, что правильный подход - это # ​​1. Просто глядя на верхний список приложений, он заполнен приложениями, которые работают в автономном режиме. Я не знаю, почему большинство людей не упоминают этот важный критерий, когда говорят о маркетинговых приложениях ... особенно в Android, где у многих людей нет плана данных. Кроме того, приложение-пустяк звучит так, как будто кто-то, вероятно, будет использовать его во время поездок на поезде, а не как чат в Facebook, который он будет использовать, когда находится в сети.

С технической точки зрения хранение более 5000 вопросов на самом деле не займет много места. Там это приложение под названием «MyFitnessPal». В базе данных SQlite хранится около 30 000 продуктов с информацией о питании. Так что не переоценивайте, сколько места займет.

Преимущество использования # 2 состоит в том, что если вопросы или ответы часто меняются, вы можете использовать этот подход.

2 голосов
/ 21 сентября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...