對(duì)于那些不知道的人來說,谷歌在安卓9 Pie中引入了一個(gè)相當(dāng)煩人的變化,這涉及到尋求突破安卓可能限制的發(fā)燒友開發(fā)者。當(dāng)然,我說的是增加隱藏的API黑名單。為了提高應(yīng)用程序的穩(wěn)定性,谷歌屏蔽了對(duì)大多數(shù)隱藏API的訪問,這些API存在于安卓框架中,但沒有記錄在安卓SDK中。這些API直到Android 9 Pie都可以通過反射訪問,目前仍然可以通過元反射變通方法訪問。
如果你不知道我在說什么,你可能應(yīng)該看看我?guī)讉€(gè)月前寫的關(guān)于這個(gè)話題的文章。它將解釋您需要了解的關(guān)于元反射及其工作原理的所有信息。不幸的是,谷歌似乎注意到了這個(gè)解決方案(噓)。在對(duì)AOSP的新承諾中,谷歌引入了“加強(qiáng)”安卓隱藏應(yīng)用編程接口檢查的代碼。這基本上意味著元反射將不再起作用。
當(dāng)然,這不會(huì)影響所有應(yīng)用程序。就像原來的API黑名單一樣,只有針對(duì)Android 11(API等級(jí)30)以上的應(yīng)用才會(huì)受到影響。您仍然可以指定29或更低的API級(jí)別,并使用元反射。但是,隨著Play商店逐漸提高最低目標(biāo)SDK要求,這將不是一個(gè)長(zhǎng)期有效的解決方案。
目前還不知道API 30應(yīng)用有什么變通辦法。不過安卓11還有很長(zhǎng)的路要走,很有可能會(huì)有人想辦法恢復(fù)訪問權(quán)限。同時(shí),如果你正在使用一個(gè)隱藏的應(yīng)用編程接口,你可能需要提交一個(gè)請(qǐng)求,讓它在安卓11中公開。如果你擅長(zhǎng)分析C和Java,想“修復(fù)這個(gè)小黑名單的情況,看看相關(guān)提交?!?