Что такое запрещенные API

«Что такое запрещенные API» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android некоторые API помечены как @hide или @UnsupportedAppUsage — они считаются запрещёнными (restricted). Их использование может привести к проблемам:

  1. Нестабильность: API могут измениться или исчезнуть в будущих версиях.
  2. Совместимость: Не гарантируется работа на всех устройствах.
  3. Публичные альтернативы: Google рекомендует использовать официальные API.

Пример (не используйте!):

// Получение IMEI через скрытый API (запрещено)
TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
String imei = tm.getDeviceId(); // Deprecated и скрыт в API 26+

Проверить можно через lint или veridex. Альтернативы: идентификаторы из Settings.Secure.ANDROID_ID или Build.getSerial().