2017-02-19 28 views
2

Я пытаюсь понять, как Android управляет устаревшими API-интерфейсами. Например, на устройстве под управлением Android 5 есть приложение, созданное с помощью targetSdk 22 (т. Е. Android 5.1). Это приложение вызывает android.provider.Browser.getAllBookmarks(), который устарел с API 23. Затем устройство обновлено до Android 6. Все концепции закладок браузера были полностью удалены на Android 6, насколько я понимаю. Итак, что будет, когда приложение будет использоваться? Как Android справляется с этой ситуацией?Как Android удаляет API-интерфейсы

+0

только для уточнения: когда устройство обновлено, вы также подразумеваете обновление targetSdk? – Androbin

+0

Нет. Я имею в виду, что есть приложение, которое никто не планирует обновлять - он останется навсегда API 22. Как он будет действовать после обновления? Это будет крушение? Будет ли провайдер возвращать пустой набор данных? Будет ли он видеть данные, которые он видел перед обновлением? – FireAphis

+1

Если он был удален по некоторым причинам безопасности, андроид ответит пустым состоянием (нулевые или пустые данные), которое не приведет к сбою вашего приложения (это было сделано до этого с введением разрешений во время выполнения). – AnixPasBesoin

ответ

0

Это может помочь: https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#fc

Android приложения обычно вперед-совместимый с новыми версиями Android платформы.

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