2014-10-03 3 views
0

Я разрабатываю приложение для блокнота, которое может хранить простые текстовые файлы и контрольные списки. В настоящее время я поддерживаю отдельный файл (например, info.txt), который поддерживает информацию о том, является ли данный файл простым текстовым файлом или контрольным списком, и на основе этого я предоставляю свой интерфейс (для перечисления всех файлов или открытия файла), чтобы показать, что файл в моем приложении. Однако я не очень доволен этим подходом, потому что медленный и, похоже, не очень хорошо масштабируется.Android: Метаданные о файле

Есть ли лучший способ добавить «метаданные» (например, если это простой текст или cheklist, теги и т. Д.) О файле в android?

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

+0

Вы изучили [SharedPreferences] для Android (http://developer.android.com/reference/android/content/SharedPreferences.html)? Существует хороший вопрос [здесь] (http://stackoverflow.com/questions/3624280/how-to-use-sharedpreferences-in-android-to-store-fetch-and-edit-values) об этом. –

+0

Да, Ян. SharedPreferences перешла мне в голову. Интересно, это лучший подход, особенно если я хочу начать добавлять «теги» к файлам. Не уверен, что поиск будет масштабироваться. будет ли он работать хорошо, если я хочу искать все файлы с определенным тегом. Существует также SQL-Lite (я никогда не использовал это раньше) ... Не знаю, как это работает – user3268403

+0

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

ответ

0

Есть несколько способов storing persistent data in Android.

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

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

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