Я возвращаюсь к работе над приложением, над которым я работал некоторое время назад, когда у меня было все, что было построено на Android 2.2 Froyo.
Я обновил свой SDK для новейших API и заметил, что функции ClipboardManager, которые я использовал, устарели. Я обновил код, чтобы использовать новую модель ClipData, и попробовал ее на своем телефоне Froyo, и, конечно же, я получил NoClassDefFoundError в новом коде.
Я посмотрел вокруг SO и не нашел реальных обсуждений общей стратегии поддержки обратной совместимости.
Я не совсем уверен, как я должен справиться с этой и другими ситуациями, когда API отличается, потому что я хочу, чтобы пользователи всех версий могли использовать мое приложение.
Должен ли я делать чек следующим образом?
if(version == old){
use old API;
} else {
use new API;
}
Если это так, у меня есть устаревший код в моем классе, и Eclipse будет предупреждать о нем навсегда.
С другой стороны, я мог бы просто построить против старой версии API и надеяться, что новые версии справятся с этим в порядке. Но тогда я рискую строить против багги или низкопроизводительного кода, когда доступна лучшая альтернатива.
Каков наилучший способ справиться с этим?