Android 11 bo poostril skrite omejitve API-jev in odstranil metarefleksijo

Android 9 Pie je uvedel skrite omejitve API-ja, zdaj pa bo Android 11 te omejitve poostril in odstranil obvod meta-odseva.

Za tiste, ki ne veste, je Google predstavil precej nadležno spremembo v Androidu 9 Pie, ki zadeva navdušene razvijalce, ki želijo premakniti meje možnega v Androidu. Govorim seveda o dodajanju skritega črnega seznama API-jev. Z namenom spodbujanja stabilnosti aplikacije je Google blokiral dostop do večine skritih API-jev – API-jev, ki obstajajo v ogrodju Android, vendar niso dokumentirani v Android SDK. Do teh API-jev je bilo mogoče dostopati prek refleksije do Androida 9 Pie, trenutno pa je do njih še vedno mogoče dostopati z rešitvijo meta refleksije.

Če nimate pojma, o čem govorim, bi verjetno morali preberi članek, ki sem ga napisal pred nekaj meseci na to temo. Pojasnilo bo vse, kar morate vedeti o meta refleksiji in njenem delovanju. Na žalost je videti, da je Google opazil to rešitev (ups). V novi zavezi k AOSP je Google uvedel kodo za "utrditev" skritih preverjanj API-ja Android. To v bistvu pomeni, da meta refleksija ne bo več delovala.

Seveda to ne bo vplivalo na vse aplikacije. Tako kot pri prvotnem črnem seznamu API-jev bodo prizadete samo aplikacije, ki ciljajo na Android 11 (raven API-ja 30) ali novejši. Še vedno lahko ciljate na raven API 29 ali nižjo in uporabite meta refleksijo. S Trgovino Play postopno povečevanje minimalnih ciljnih zahtev SDK, vendar to ne bo dolgo veljavna rešitev.

Trenutno ne poznam nobene rešitve za aplikacije, ki ciljajo na API 30. Android 11 pa je še daleč, zato obstaja velika verjetnost, da bo nekdo našel način za obnovitev dostopa. Če medtem uporabljate skrite API-je, boste morda želeli vloži zahtevo za njihovo objavo v sistemu Android 11. Če ste dobri pri analizi C++ in Jave in želite poskusiti "popraviti" to majhno situacijo s črnim seznamom, poglejte ustrezno objavo.