Android 11 karmistab peidetud API piiranguid ja eemaldab metapeegelduse

Android 9 Pie tutvustas peidetud API piiranguid ja nüüd karmistab Android 11 neid piiranguid metapeegelduse möödaviigu eemaldamiseks.

Neile, kes ei tea, tutvustas Google Android 9 Pie üsna tüütu muudatuse, mis puudutab entusiastlikke arendajaid, kes soovivad nihutada Androidi võimalike piire. Ma räägin muidugi peidetud API musta nimekirja lisamisest. Rakenduste stabiilsuse edendamise eesmärgil blokeeris Google juurdepääsu enamikele peidetud API-dele – API-dele, mis on Androidi raamistikus olemas, kuid mis on Androidi SDK-s dokumenteerimata. Nendele API-dele pääses juurde peegelduse kaudu kuni versioonini Android 9 Pie ja praegu pääseb neile juurde ka metapeegelduse lahenduse abil.

Kui te ei tea, millest ma räägin, peaksite seda ilmselt tegema loe minu kirjutatud artiklit paar kuud tagasi sellel teemal. See selgitab kõike, mida peate teadma metapeegelduse ja selle toimimise kohta. Kahjuks näib, et Google märkas seda lahendust (oih). Uues kohustuses AOSP-le on Google kasutusele võtnud koodi Androidi peidetud API-kontrollide "karastamiseks". See tähendab põhimõtteliselt, et metapeegeldus enam ei tööta.

Loomulikult ei mõjuta see kõiki rakendusi. Nii nagu algse API musta nimekirja puhul, mõjutab see ainult rakendusi, mis sihivad Android 11 (API tase 30) või uuemat versiooni. Saate siiski sihtida API taset 29 või madalamat ja kasutada metapeegeldust. Play poega järjest suurenevad minimaalsed siht-SDK nõuded, aga see ei ole kauaks kehtiv lahendus.

Praegu ei tea ma API 30 sihtivate rakenduste jaoks ühtegi lahendust. Android 11 on siiski kaugel, seega on suur võimalus, et keegi leiab võimaluse juurdepääsu taastamiseks. Vahepeal, kui kasutate peidetud API-sid, võite seda teha esitada taotlus nende avalikustamiseks Android 11-s. Kui oskate hästi C++ ja Java analüüsida ning soovite selle väikese musta nimekirja olukorra parandamisel vaeva näha, vaadake asjakohast kohustust.