Приложение для SD функциональности на Android - PullRequest
2 голосов
/ 10 сентября 2010

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

Я также говорю, что это действительно плохая идея для платных приложений, которые не имеют никакой лицензии.

Кто-нибудь имел с этим опыт, знал какую-либо документацию или какие-либо советы о том, что может помешать приложению быть совместимым с этой функцией?

Примечание. Я не использую защиту от копирования в своих приложениях.

Ответы [ 2 ]

7 голосов
/ 10 сентября 2010

Вы можете разрешить установку вашего приложения на SD-карту, используя атрибут манифеста android:installLocation.Это может быть установлено на preferExternal или auto, в зависимости от того, хотите ли вы порекомендовать установить его на SD-карту или просто разрешить.По умолчанию приложения не могут быть установлены на SD-карту по причинам обратной совместимости, поэтому вы должны включить эту функцию, если хотите, чтобы пользователи могли ее использовать.

С документация:

Когда ваше приложение установлено во внешнем хранилище:

  • Не влияет на производительность приложения, пока внешнее хранилище установлено наdevice.
  • Файл .apk сохраняется во внешнем хранилище, но все личные пользовательские данные, базы данных, оптимизированные файлы .dex и извлеченный собственный код сохраняются во внутренней памяти устройства.
  • Уникальный контейнер, в котором хранится ваше приложение, зашифрован случайным образом сгенерированным ключом, который может быть расшифрован только тем устройством, которое его первоначально установило.Таким образом, приложение, установленное на SD-карте, работает только для одного устройства.
  • Пользователь может переместить ваше приложение во внутреннее хранилище с помощью системных настроек.

Таким образом,вам не нужно слишком беспокоиться о защите лицензий;в функцию встроено шифрование.Вам также, как правило, не следует беспокоиться о защите лицензий, потому что любая форма защиты от копирования или DRM более вредна для честных пользователей, чем для пиратов.Пока кто-то может использовать ваше приложение, кто-то сможет его пиратствовать;почти невозможно создать нерушимую схему DRM.Если ваше приложение уже находится во внутренней памяти, скорее всего, оно уже пиратское.Однако большинство пользователей честны и будут покупать приложение на Маркете, так что от пиратства вы мало что выиграете (большинство людей, которые скачивают пиратские приложения, - те, у кого нет доступа к платным приложениям на Маркете;по-прежнему недоступен во многих странах).

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

1 голос
/ 10 сентября 2010

Вот, пожалуйста.

И задокументировано здесь.

Платформа Android теперь позволяет приложениям запрашивать установку на устройство.внешний носитель (например, SD-карта), в качестве альтернативы установке во внутреннюю память устройства.

Разработчики приложений могут указать предпочтительное место установки для своих приложений с помощью нового атрибута в файле манифеста, Android: установить местоположение.Атрибут поддерживает три значения: «internalOnly», «ferExternal »и« auto ».Во время установки система проверяет значение android: installLocation и устанавливает приложение .apk в соответствии с предпочтительным расположением, если это возможно.Если приложение запросило внешнюю установку, система устанавливает его в закрытый зашифрованный раздел на внешнем носителе.После внешней установки приложения .apk система позволяет пользователю изменить место хранения .apk и переместить его во внутреннюю память устройства, если это необходимо (и наоборот), через Управление приложениями в пользовательских настройках.

По умолчанию система устанавливает все приложения во внутреннюю память устройства, кроме тех, которые явно запрашивают внешнюю установку.Это означает, что система всегда будет устанавливать устаревшие приложения во внутреннюю память, поскольку у них нет доступа к атрибуту android: installLocation.Однако, при необходимости, можно настроить и скомпилировать устаревшее приложение так, чтобы оно устанавливалось внутренне на более старых версиях платформы и внешне на платформах Android 2.2 и более поздних.

Обратите внимание, что запрос установки на внешнем устройствеНоситель не подходит для всех приложений, особенно потому, что внешний носитель может быть съемным, а отключение / повторное подключение может нарушить работу пользователя и настройки системы.

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

...