Android, сохраняющий несколько МБ данных приложения безопасно (без ошибок и без ошибок) и осторожно (не заполняя хранилище)?

1

Мое приложение для Android интенсивно интенсивно работает с изображениями. Из соображений спецификации нескольких телефонов мое приложение оптимизирует все изображения до меньших размеров и упрощает обработку размеров для требующих их устройств.

В настоящее время они хранятся в папке

/data/data/com.myapp.example/files

Однако я чувствую, что есть два важных соображения:

Прежде всего, после первоначальной "настройки" приложение займет примерно 10 МБ дополнительного пространства. Как я могу сделать это как небольшую проблему, насколько это возможно для пользователя? Я не рассматривал вывод их на SD-карту, потому что они являются лицензированным материалом, и SD полностью небезопасен. (хотя я полностью понимаю, что это каталог данных из корневых устройств). Каким будет решение этой проблемы?

Мое второе соображение заключается в том, что мне нужно знать, достаточно ли свободного места на устройстве пользователя, прежде чем я начну его использовать, есть ли способ узнать, прежде чем начать процесс?

Теги:
security
storage
space

2 ответа

0
Лучший ответ

Почему бы не сохранить файлы на SDCard и не зашифровать их с помощью какого-нибудь сильного алгоритма? Как вы говорите, данные так же надежно, как и SDCard...

Чтобы проверить доступное пространство для заданного пути, используйте класс StatFs.


Изменить 11/04/2011:

вы должны сделать несколько тестов, чтобы проверить, будет ли дешифрование данных слишком медленным или нет. У вас может быть хороший сюрприз. Также проверьте TEA и Blowfish алгоритмы, которые кажутся быть одним из самых быстрых "сильных" алгоритмов. Или просто зашифруйте свои данные, используя очень простой алгоритм, который предотвратит прямое копирование изображений (но не будет сопротивляться лучшим хакерам).

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


Редактировать 12/04/2011:

Вам нужно всего 10 МБ сразу? Не загружается ли материал в память? Сбой приложения с OutOfMemoryException, если вы загружаете свои данные при запуске приложения (и/или в фоновом режиме) и сохраняете его загруженным в течение срока службы приложения?

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

  • 0
    Спасибо за информацию StatFs. Что касается шифрования, мне нужно иметь возможность загружать эти изображения на лету, очень быстро, проблема с шифрованием заключается в том, что он делает их ресурсоемкими для расшифровки. Это полубезопасное временное местоположение, к которому я могу расшифровать их во время выполнения?
  • 0
    См отредактированный ответ
Показать ещё 5 комментариев
0
  • "Как можно меньше" - ну, если вам требуется 10 МБ данных, тогда вам потребуется 10 МБ данных. Там мало что можно сделать, чтобы уменьшить его, кроме сжатия данных. Конечно, если не все эти данные необходимы, вы можете рассмотреть возможность разделения данных на отдельные модули и либо предлагать их на рынке в виде плагинов, либо позволить пользователю выбрать, какие данные необходимы при запуске, а затем загрузить его ваш собственный сервер.

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

  • Что бы вы ни делали, не забудьте включить опцию "установить в SD" в своем приложении.

  • 0
    EboMike, вы должны проверить свою цитату на номер 1, она не только неточная, но и неверно истолкована. Я сказал: «Сделайте это как можно меньшей проблемой». Данные являются фиксированными, и пользователю все это нужно, нет меньшего размера, чем сжатие, как вы говорите, и это нежелательно. Можете ли вы предложить метод, который не был бы ресурсоемким для загрузки на лету, если бы я использовал вариант 2. А что касается 3, не волнуйтесь, я тоже потребитель Android, первое, что я гарантировал, было то, что его можно установить на SD.
  • 0
    Извините за это, было поздно :) Но все там еще стоит - сожмите, если возможно, сделайте модульным, если некоторым пользователям все это не нужно, зашифруйте и перейдите на SD.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню