Ответ 1
Цитирование документации:
Вообще говоря, интерфейсы SDK - это те, которые описаны в индексе пакета Android Framework.
Не все в структуре представлено в документации. Классы, методы, поля и те, которые отмечены знаком @hide
в исходном коде, доступны во время выполнения, но не являются частью SDK и не отображаются в документации. К этим предметам можно обращаться только по нетрадиционным средствам, таким как отражение.
Это то, что Android P начинает запрещать.
В течение многих лет я советовал разработчикам не получать доступ к таким вещам, потому что они ненадежны. На любом Android-устройстве может не быть скрытого материала из-за изменений, основанных на версии Android или производителя устройства/модификации модема. Теперь Google собирается усилить этот совет более твердо, по крайней мере в некоторых случаях.
специально, что делает не SDK когда-то лучше
Они не "лучше". Однако они могут предлагать доступ к некоторым функциям, которые недоступны в SDK по той или иной причине (например, API еще не установлен).