Поддержка 3.0 и более низких уровней в одном проекте - PullRequest
2 голосов
/ 18 марта 2011
  1. У меня есть приложение уровня 9 на Android, и я хочу знать, могу ли я использовать новые функции уровня 11 (Android 3.0) в том же проекте?
  2. Для версии планшета 3.0 мои макеты будут содержать фрагменты. Как я могу использовать эти фрагменты и позволить версии 9-го уровня успешно создавать и работать?
  3. Можно ли определить разные макеты для разных уровней API (в res / layout)?
  4. Если я оставлю 2 версии, одну для планшета, другую для телефона, могу ли я добавить ее на рынок Android с тем же именем пакета?

Ответы [ 2 ]

3 голосов
/ 18 марта 2011

У меня есть приложение уровня 9 на Android, и я хочу знать, могу ли я использовать новые функции уровня 11 (Android 3.0) в том же проекте?

Да, черезрефлексия или условная загрузка классов, как предложено г-ном Уиллисом. Вот пример приложения , которое демонстрирует это для панели действий, также новой для API уровня 11.

Для версии 3.0 для планшетов мои макеты будут содержать фрагменты.Как использовать эти фрагменты и обеспечить успешную сборку и запуск версии 9-го уровня?

Использование библиотеки совместимости Android .

Могу ли яопределить разные макеты для разных уровней API (в res / layout)?

Да, через суффикс набора ресурсов -vNN (например, res/layout-v11).Тем не менее, вы должны попытаться свести к минимуму это.

Если я оставлю 2 версии, одну для планшета, другую для телефонов, могу ли я добавить это на рынок Android с тем же именем пакета?

0 голосов
/ 18 марта 2011

Этот вопрос и ответы кажутся полезными.

В официальной документации также рассматриваются решения в Обратная совместимость для приложений .

Попробуйте: http://android -developers.blogspot.com / 2009/04 / backward-compatibility-for-android.html

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

Что касается макетов, попробуйте проверить Поддержка нескольких размеров экрана .Существуют разные размеры макетов, например layout-xlarge, которые вы можете использовать.

Если я оставлю 2 версии, одну для планшета, другую для телефона, могу ли я добавить ее на рынок Android с тем же пакетомname?

Вы не можете использовать одно и то же имя пакета для двух разных приложений.

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

...