2011-12-28 2 views
1

Я пытался понять это на некоторое время, и я уверен, что видел что-то на этом раньше, чем в блоге Android dev или SO, но сейчас он убегает от меня. Мне было интересно, как лучше всего настроить различные уровни API с помощью одного APK, если это возможно.Ориентация на несколько API-интерфейсов в одном APK

Например, я хотел бы иметь возможность использовать новые функции Ice Cream Sandwich и шаблоны пользовательского интерфейса, но также хочу поддерживать Пряники и ниже. Лучшим решением было бы создание разных проектов с аналогичной базой кода, но переписывание конкретных функций для использования конкретных функций и размещение multiple APKs на рынке или я мог бы использовать форму отражения для масштабирования?

Любая помощь была бы принята с благодарностью, спасибо! В основном, я хотел бы знать, являются ли несколько АПК плохими или если мне будет лучше с одним APK.

ответ

3

Это каноническое блог для обратной совместимости: http://android-developers.blogspot.com/2009/04/backward-compatibility-for-android.html

ICS -> Gingerbread может усложниться, если вы используете пользовательские темы или хотите использовать фрагменты.

Я нахожусь в процессе написания статьи для developer.android.com, который входит в более подробно об этом, но короткая версия:

  • Создание Рез/значения-v11 и res/values. В папке v11 должны храниться темы, которые наследуются от android.theme.Holo, а папка non-v11 должна содержать темы, которые наследуются от android.theme. Если вы не используете пользовательские темы, вы можете пропустить этот шаг - настройка targetSdkLevel> = 11 сделает для вас все волшебство.

  • Используйте пакет поддержки для обеспечения Fragment поддержки/Грузчик на предварительных Honeycomb устройств: http://developer.android.com/sdk/compatibility-library.html

+0

Спасибо за ресурсы! Главное, что мне интересно, это шаблон ActionBar, и я не вижу этого в пакетах совместимости, к сожалению. Означает ли это, что мне придется использовать пользовательскую реализацию ActionBar для pre-Honeycomb? Я нашел [wrapper] (http://actionbarsherlock.com/), который, я думаю, может помочь, но возможно ли вернуть обратно ActionBar? – SpencerElliott

+0

Да, к сожалению, ActionBar не является частью пакета совместимости по разным причинам. Взгляните на GreenDroid, ActionBarSherlock или code.google.com/p/iosched для общедоступных реализаций ActionBar, совместимых с HC-совместимыми. (И имейте в виду, что если вы ничего не сделаете, элементы панели действий просто будут помещены в меню опций. Для некоторых приложений этого может быть достаточно.) –

+0

Спасибо за ссылку на GreenDroid. Посмотрев пример приложения, похоже, именно это я и ищу! – SpencerElliott

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