Ограничения Android P для интерфейсов, не относящихся к SDK - темный серый список против черного списка - PullRequest
0 голосов
/ 07 июня 2018

Developer Preview 3 вышел сегодня, и я заметил некоторые изменения, связанные с интерфейсами не-SDK:

При доступе к следующему API создаются разные журналы на DP2 и DP3

Class<?> androidIdClass = Class.forName("com.android.internal.R$id");
Integer search_close_btn = getFieldValue(androidIdClass, null, "search_close_btn");

DP2: Accessing hidden field Lcom/android/internal/R$id;->search_close_btn:I (blacklist, reflection)

Результат: NoSuchFieldException, невозможно получить доступ к полю

DP3: Accessing hidden field Lcom/android/internal/R$id;->search_close_btn:I (dark greylist, reflection)

Результат: поле доступно

Может пожалуйстакто-то объяснит, почему это поле стало доступным в DP3 и в чем разница между dark greylist и blacklist ?

1 Ответ

0 голосов
/ 23 июля 2018

Может кто-нибудь объяснить, почему это поле стало доступным в DP3?

  • Google постоянно блокирует вызовы не-SDK.Но они также открыли форум для разработчиков, где можно сообщать о проблемах, связанных с ними.Поэтому, чтобы ответить на ваш вопрос, кто-то мог создать билет на этот счет, который Google мог бы откатить.Имеет смысл?

В чем разница между темным серым списком и черным списком?

  • Черные списки - это вызовы, которые не будут работать независимо от уровня API вашего приложения.будет целевым.

  • Темные списки серого - это вызовы, которые не будут работать, если и только если ваше приложение предназначено для уровня API 28, иначе они будут работать нормально.

...