2012-01-25 2 views
17

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

Существует Android compatibility library и backwards compatible Action Bar, но я искал более конкретное решение для переноса приложений после ICS на телефоны до ICS.

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

+1

Связанная статья не является специфичной для ICS. Просто общее предупреждение следовать Android соглашения при кодировании для Android. –

+1

Что конкретно означает «более конкретное решение»? – CommonsWare

+0

Итак ... Являются ли ваши собственные совместимые библиотеки и инструменты Google, которые они предоставляют вам, недостаточно конкретны для вас? Вы ожидаете, что они не сработают или что? –

ответ

21

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

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


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

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

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

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


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

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

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

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

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

Спасибо за подробный пост. Вы связались с 3 статьями, с которыми я уже связался в своем вопросе. У меня все еще возникают проблемы с ActionBar. Как получить раскол ActionBar для отображения на устройствах до ICS? –

+1

Я не знаю ответа на этот вопрос - по моему сообщению я использовал фрагменты, но не панель действий, на устройствах до ICS. – Tom

+0

Лучшее решение IMHO - ActioBarSherlock. поддерживает от 2.x до 4.x, который охватывает все !!! – Paschalis

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