Android 11 გაამკაცრებს ფარული API შეზღუდვებს და ამოიღებს მეტარეფლექსიას

Android 9 Pie-მა შემოიღო ფარული API შეზღუდვები და ახლა, Android 11 გაამკაცრებს ამ შეზღუდვებს მეტარეფლექსიის შემოვლითი გვერდის მოსაშორებლად.

მათთვის, ვინც არ იცით, Google-მა შემოიტანა საკმაოდ შემაშფოთებელი ცვლილება Android 9 Pie-ში, რომელიც ეხება ენთუზიასტ დეველოპერებს, რომლებიც ცდილობენ გადალახონ საზღვრები, რაც შესაძლებელია Android-ში. მე ვსაუბრობ, რა თქმა უნდა, ფარული API შავი სიის დამატებაზე. აპლიკაციის სტაბილურობის ხელშეწყობის მიზნით, Google-მა დაბლოკა წვდომა ყველაზე ფარულ API-ებზე - API-ებზე, რომლებიც არსებობს Android-ის ჩარჩოში, მაგრამ არადოკუმენტირებულია Android SDK-ში. ამ API-ებზე წვდომა შეიძლებოდა რეფლექსიის საშუალებით Android 9 Pie-მდე და ამჟამად მათი წვდომა მაინც შესაძლებელია მეტა ასახვის გამოსავლის გამოყენებით.

თუ წარმოდგენა არ გაქვთ რაზე ვსაუბრობ, ალბათ უნდა წაიკითხე ჩემი დაწერილი სტატია რამდენიმე თვის წინ ამ თემაზე. ის აგიხსნით ყველაფერს, რაც უნდა იცოდეთ მეტა ასახვისა და მისი მუშაობის შესახებ. სამწუხაროდ, როგორც ჩანს, Google-მა გაითვალისწინა ეს გამოსავალი (უი). AOSP-ის ახალ ვალდებულებაში, Google-მა შემოიღო კოდი Android-ის ფარული API შემოწმების „გამკაცრებისთვის“. ეს ძირითადად ნიშნავს, რომ მეტა ასახვა აღარ იმუშავებს.

რა თქმა უნდა, ეს არ იმოქმედებს ყველა აპლიკაციაზე. ისევე, როგორც ორიგინალური API შავი სიის შემთხვევაში, დაზარალდება მხოლოდ Android 11 (API დონე 30) ან უფრო ახალი აპლიკაციები. თქვენ კვლავ შეგიძლიათ დამიზნოთ API დონე 29 ან უფრო დაბალი და გამოიყენოთ მეტა ასახვა. Play Store-თან ერთად თანდათან იზრდება მინიმალური სამიზნე SDK მოთხოვნებითუმცა, ეს არ იქნება ხანგრძლივი გამოსავალი.

ამ დროისთვის, მე არ ვიცი რაიმე გამოსავალი აპებისთვის, რომლებიც მიზნად ისახავს API 30-ს. თუმცა, Android 11 შორს არის, ასე რომ, დიდი შანსია, რომ ვინმემ იპოვოს წვდომის აღდგენის გზა. იმავდროულად, თუ თქვენ იყენებთ ფარულ API-ებს, შეიძლება გინდოდეთ შეიტანოს მოთხოვნა მათი გასაჯაროებისთვის Android 11-ში. თუ კარგად აანალიზებთ C++-ს და Java-ს და გინდათ, რომ „გამოასწოროთ“ ეს პატარა შავ სიაში სიტუაცია, გადახედეთ შესაბამის ვალდებულებას.