Правило состоит в том, что вы всегда строите с последним SDK, но используйте значение android:minSdkVersion
атрибута <uses-sdk>
, чтобы указать самый низкий уровень API, который может поддерживать ваше приложение.
Обратите внимание, что этот атрибут является лишь подсказкой для установщика, и Маркет ... установка его на 4 (для 1.6) не будет означать, что ваше приложение может магически работать на 1.6.Вы сами должны придумать хорошие запасные варианты, если более современные API недоступны (или соответствующим образом поднять minSdkVersion, если приложение не может работать без них).
Если ваше приложение может работать на 1.6 без 2.x API, тонужно быть уверенным, что использование 2.x API сделано из класса, который не будет загружен в 2.x.Вот пример:
import android.view.Display;
// Class for wrapping APIs only available in
// API level 8 and up. (i.e. 2.2, a.k.a. Froyo)
class ApiLevel8Only {
public static int getDisplayRotation(Display display) {
return display.getRotation();
}
}
Этот вызов getRotation () вызовет принудительное закрытие на 1.6.Чтобы избежать этого, вы проверяете текущую версию до ссылки на класс API-оболочки :
if (Integer.parseInt(Build.VERSION.SDK) >= 8) {
ApiLevel8Only.getDisplayRotation(...);
}
Надеюсь, что это имеет смысл.