Как сделать приложения для Android 4.0 обратно совместимыми? - PullRequest
17 голосов
/ 26 января 2012

Android 4.0 (ICS) имеет множество новых рекомендаций по пользовательскому интерфейсу , которые просто великолепны.Проблема в том, что в будущем я не уверен, как создать приложение для Android 4.0 и убедиться, что приложение выглядит одинаково / похоже на устройствах под управлением Android 2.2 и 2.3.

Есть Библиотека совместимости Android и обратно совместимая панель действий , но я искал более конкретное решение для переноса приложений после ICS на телефоны до ICS.

Яна правильном пути?У кого-нибудь есть мысли?

1 Ответ

21 голосов
/ 28 января 2012

Вот несколько предложений.

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


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

Включить использование фрагментов через Пакет поддержки (также известный как библиотека совместимости). Это довольно просто, и я не столкнулся с какими-либо проблемами при этом. Просто убедитесь, что ваш импорт выглядит так:

import android.**support.v4**.app.Fragment;

чтобы получить их из пакета поддержки, а не напрямую вызывать собственные API-интерфейсы ICS.


В-третьих, включите панель действий ICS / HC, используя темы, как описано в документации. Обратите внимание, что это не дает вашему приложению панель действий на платформах, предшествующих Honeycomb. Для этого вам либо нужно использовать что-то вроде ActionBarSherlock или ActionBarCompat образец. Оба являются хорошими решениями, но они увеличивают сложность вашего приложения. В текущей версии пакета поддержки нет панели действий, и это, по-видимому, связано с техническими проблемами, но я подозреваю, что они пытаются решить эти проблемы.

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

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

Наконец, обратите внимание, что вам нужно будет использовать последний SDK, чтобы вы могли ссылаться на такие элементы, как голографическая тема (для панели действий ICS) и элемент showAsAction="ifRoom", поэтому ваш манифест будет содержать что-то вроде:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
...