У меня есть проект, который просто использует Android 1.5 для программирования, но с быстрым увеличением других гарнитур и некоторых замечательных функций в Android 2.2, мы хотели бы поддерживать функции, не теряя поддержку 1,5 или разветвляя новую кодовую базу. Действительно ли возможно сделать с Android SDK?
У меня действительно есть некоторый смысл "ужасного" способа сделать это, как в хранении той же кодовой базы, но иметь систему сборки, которая создает различные версии для платформ, и сохраните различные файлы Java, вокруг которых включены наш из сборки, на основе которой выбрана версия. Я надеюсь, что кто-то еще решил проблему на основе многих версий приложений на рынке, которые работают на нескольких версиях Android.
мы хотели бы поддерживать функции без потери поддержки 1.5 или создание новой кодовой базы. Это можно сделать с Android SDK?
Конечно. Эти методы существуют около десяти лет.
Вариант №1: Используйте отражение для доступа к новым классам (или новым методам существующих классов) во время выполнения. См. Здесь пример.
Вариант №2: Используйте условную загрузку класса, создав интерфейс плюс две реализации (одна для старого API, одна для нового API) и загружая правильную реализацию во время выполнения. Поскольку более новая реализация не будет загружена на старое устройство, тот факт, что новая реализация использует классы или методы, отсутствующие в старом устройстве, не представляет проблемы. См. Здесь пример.