Какие существуют варианты для поддержания совместимости с Android 1.5 после реализации фрагмента

#android #android-fragments

#Android #android-фрагменты

Вопрос:

У меня есть приложение, которое некоторое время отсутствовало, что позволяет запускать приложение на устройствах с Android 1.5 и выше. Я хочу добавить фрагменты в свое приложение сейчас, но библиотека совместимости не включает поддержку Android 1.5.

Единственный известный мне вариант, позволяющий моим пользователям, у которых все еще есть Android 1.5, продолжать использовать мое приложение, — это создать и поддерживать 2 отдельных APK, один только для 1.5, а второй для 1.6 и выше. Я считаю, что это ужасный вариант, и я бы предпочел этого не делать. Есть ли какие-либо другие варианты? Если есть несколько вариантов, какой вариант был бы лучшим? Если бы у меня не было пользователей с Android 1.5, я бы с радостью отказался от него, но поскольку это не так, я все равно должен их поддерживать.

Комментарии:

1. почему вы думаете, что несколько apk — это ужасный вариант?

2. Я бы предпочел не вносить изменения в один и тот же исходный файл в двух разных местах. Если я чего-то не понимаю, это было бы по существу поддержанием 2 проектов, где большая часть кода идентична. Итак, если я внесу 10 изменений в исходный файл в проекте 1, мне придется сделать то же самое в проекте 2 (вдвое больше работы). Я бы предпочел выполнить работу один раз и на этом закончить, но я не против использования 2 APK, если это лучший вариант.

3. Я также сталкиваюсь с той же проблемой. Как вы решили эту проблему?

4. Я еще не приступил к реальной реализации этой реализации, но, вероятно, я пойду по маршруту с несколькими apk, который вы можете увидеть здесь: developer.android.com/guide/market/publishing /… . Моя кодовая база чрезвычайно велика, и я думаю, что в моем конкретном случае было бы сложнее просмотреть весь мой исходный код и делать что-то на основе 1.5 или не-1.5. Для меня будет проще иметь 1.5 сам по себе и фрагменты во всем остальном.

Ответ №1:

Вы можете проверить уровень API устройства и иметь 2 версии вашего пользовательского интерфейса (одна для cupcake, одна для других телефонов)

 if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.CUPCAKE) {
            ...Cupcake code here...
        }
  

Комментарии:

1. Спасибо Тайко. Я изучу это. Похоже, что в этом сценарии поддержка графического интерфейса будет сложной, но, надеюсь, я ошибаюсь в этом. Я узнаю больше, когда начну играть с некоторым кодом.

2. Вы не можете проверить версию sdk в 1.5 подобным образом, потому что Build. VERSION.SDK_INT — начиная с версии 1.6 и выше. Итак, в 1.5 это приведет к сбою. Вам нужно использовать Build. ВЕРСИЯ.SDK.