Počínajúc operačným systémom Android P, Google pomaly zavrel dvere na používanie neverejných rozhraní API. Proces sa začal volaniami metód, ktoré mali málo alebo vôbec žiadne známe použitie medzi vývojármi aplikácií, ale veci sa zmenili, keď Android Q rozšíril zoznam obmedzených rozhraní tak, aby zahŕňal väčší výber. Teraz v prípade systému Android 11 degradácia pokračuje, pretože tím systému Android pridáva do zoznamu obmedzení ešte viac neverejných rozhraní API.
Použitie súkromných rozhraní API je niekedy potrebné na vykonávanie určitých úloh s operačným systémom, ktoré neboli sprístupnené prostredníctvom súpravy SDK. Nie je to dokonalé, ale niekedy je to jediný spôsob, ako dosiahnuť požadované správanie, najmä v aplikáciách, ktoré majú nové a zaujímavé funkcie. Úlovok samozrejme spočíva v tom, že neverejné volania metód môžu byť odstránené alebo zmenené bez predchádzajúceho upozornenia, čo môže viesť k zlyhaniu aplikácií alebo neúmyselnému správaniu.
Väčšina vývojárov sa pri zostavovaní aplikácií drží oficiálnej súpravy SDK, čo vo všeobecnosti znamená, že s novými obmedzeniami sa nestretnú s mnohými problémami. Väčšina vývojárov však používa aj knižnice z iných zdrojov a nemusí byť zrejmé, či zahŕňajú volania na obmedzené metódy.
V oboch prípadoch majú vývojári niekoľko spôsobov, ako skontrolovať, či ich aplikácie nepoužívajú žiadne obmedzené API. Najjednoduchšou metódou je jednoducho pozrieť sa na upozornenie na hluk v aplikácii Android Studio, ale pre podrobnejšiu kontrolu je vhodné spustiť nástroj Veridex na APK, aby ste videli všetky jasné volania metód. Bohužiaľ, žiadna alternatíva neidentifikuje súkromné API volané prostredníctvom JNI alebo reflexie. Aby bolo možné zachytiť väčšinu z nich, vývojári musia pri uskutočňovaní obmedzeného hovoru povoliť prísny režim a zaznamenávať udalosti odoslané zo systému, alebo si musia jednoducho vytvoriť ladenie aplikácií a pozrieť sa na správy v systémovom denníku.
Spoločnosť Google rozdelila neverejné rozhrania API na čiernu listinu pre všetky, ktoré sú v súčasnosti úplne zakázané. Ide o sivý zoznam metód, ktoré sú povolené až do určitých úrovní API, ale v neskorších verziách OS sa s nimi pravdepodobne bude zaobchádzať ako s čiernymi listinami, a whitelist pre všetko, čo je oficiálne zdokumentovanou súčasťou rámca, aj keď nie je súčasťou SDK. Zoznam greylistov pre Android 11 si môžete pozrieť tu, aby ste videli zoznam momentálne obmedzených metód. Tu sú rozšírenia whitelistu pre Android 11, ktoré sa dajú bezpečne používať.
Ak vývojári narazia na niektoré rozhrania API, ktoré nemajú verejné náprotivky, existuje postup na vyžiadanie rozšírení súpravy SDK.
Aj keď tento proces, bohužiaľ, pre vývojárov aplikácií viac funguje a niekedy odstraňuje funkcie, na ktoré sa niektoré z našich obľúbených aplikácií spoliehajú, je určený na zvýšenie bezpečnosti a zabránenie náhodným zlyhaniam a chybám.