2010-07-22 2 views
4

Я пишу приложение, совместимое с Android 1.6, но я хотел бы дать пользователям, работающим под управлением Android 2.2, возможность перемещения установки приложения на свою SD-карту.Установить место установки для Android 1.6?

Как я могу скомпилировать мое приложение для 1.6, но все же разрешить 2.2 пользователям установить его на свой sd?

ответ

12

В манифесте:

  • В <manifest>, добавьте "android:installLocation="preferExternal"
  • Держите ток uses-sdk как "<uses-sdk android:minSdkVersion="4">"

Затем перейдите в Project> Properties> Android (слева), измените цель сборки на 2.2, и вы все настроены.

Ваш проект будет построен с использованием 2.2 (но все равно только 1.6), но устройства, работающие под управлением 1.6, просто проигнорируют ваш новый параметр «installLocation» в манифесте. Просто будьте осторожны, чтобы не добавлять какие-либо 2.2-внедренные материалы в ваш фактический код, так как компилятор больше не будет его улавливать.

+0

Хорошо. Вид боли, но я полагаю, что это нужно будет сделать. – GuyNoir

+1

Дополнительную информацию можно найти здесь: http://developer.android.com/guide/appendix/install-location.html в разделе «Обратная совместимость» –

+3

. Одна рекомендация: перед развертыванием новой версии установите целевую версию сборки обратно до 1.6 и сделать чистую сборку. Если вы получаете какие-либо ошибки компиляции, вы знаете, что вы случайно внедрили 2.2-специфические функции, и ваше приложение потерпит крах ниже 1.6. Если все в порядке, вернитесь к 2.2. – EboMike

0

Это не совсем так, как предлагает руководство разработчика. Во-первых, приложение не строить, когда INSTALLLOCATION присутствует в манифесте и целевой сборки установлено значение, отличное от 2,2:

Так что для того, чтобы проверить обратную-compatibililty, установив цель сборки до 1.6 , манифест должен быть также отредактирован.

Во-вторых, как только цель сборки установлена ​​в 2.2, я не могу выбрать эмулятор с более низким уровнем API для тестирования. Тем не менее, я все же могу вручную запустить эмулятор 1.6 и запустить приложение, но мне любопытно, появится ли мое приложение на Android Market для 1.6 устройств, если моя цель сборки равна 2,2 (хотя minSdkVersion = 4). У меня нет реального устройства для тестирования. Может ли кто-нибудь подтвердить, что это не влияет на доступность на рынке?

Наконец, это предупреждение остается:

Attribute minSdkVersion (4) is lower than the project target API level (8) 
+0

Я могу подтвердить, что доступность на рынке не затронута. Я использую описанный подход на официальных страницах разработчиков Android. Требования к рынку для моего приложения отображаются как «Android версии 1.6 или выше». Я смог обнаружить, загрузить и запустить приложение с рынка без проблем с помощью HTC Magic под управлением Android 1.6. – Philipp

Смежные вопросы