תוספי SDK

המודול של תוספי SDK קובע את רמת ה-SDK של התוסף במכשיר, שמספק ממשקי API לאפליקציות כדי לשלוח שאילתות לגבי רמת ה-SDK של התוסף. המודול הזה שניתן לעדכן, כלומר הוא יכול לקבל עדכונים לגבי פונקציונליות שלא מחזור הגרסאות של Android.

תוספי SDK אחראים על:

  • קביעת רמת ה-SDK של התוסף במכשיר.
  • מתן ממשקי API לאפליקציות לשליחת שאילתות לגבי רמת ה-SDK של התוסף.
  • (החל מ-Android 12) קביעת הערכים של BOOTCLASSPATH, DEX2OATBOOTCLASSPATH וגם משתני סביבה SYSTEMSERVERCLASSPATH.

פורמט המודול

המודול של תוספי SDK (com.android.sdkext) נמצא ב- פורמט APEX וזמין למכשירים עם Android מגרסה 11 ואילך.

פורמט החבילה

המודול של תוספי SDK (com.google.android.sdkext) נמצא ב- הפורמט APEX וגם מכיל את הרכיבים הבאים:

  • (החל מ-Android 12) bin/derive_classpath: A קוד בינארי מקורי שרץ בשלב מוקדם באתחול המכשיר תהליך האימות. הוא קורא קובצי תצורה של classpath בודדים מהמערכת, וגם יחידות אחרות, ממזגות אותם ומגדירות את ההגדרה של CLASSPATH במשתני סביבה.

  • bin/derive_sdk: קובץ בינארי מקורי שפועל בשלב מוקדם בתהליך ההפעלה של המכשיר וקורא את המטא-נתונים של מודולים אחרים כדי להגדיר מאפייני מערכת שקשורים SDK של תוסף (לדוגמה, build.version.extensions.r).

  • javalib/framework-sdkextension.jar: הקובץ נמצא בנתיב האתחול ש חושף ממשקי API לאפליקציות כדי לשלוח שאילתות לגבי רמת ה-SDK של התוסף.

גזירה של רמת ה-SDK של התוסף

התוכנה derive_sdk קוראת מטא-נתונים שמאוחסנים כקובצי Protobuf בינאריים בקובץ נתיב משנה etc/sdkinfo.binarypb בתוך כל מודול APEX. לפרטים על Protobuf את המבנה שלו, protobuf חדש.

רמת ה-SDK של התוסף לקריאת

המודול 'תוספי SDK' חושף SdkExtensions מחלקה של Java בחבילה android.os.ext. שימוש בgetExtensionVersion(int) לקריאת הגרסה של תוסף SDK (לדוגמה, getExtensionVersion(Build.VERSION_CODES.R)).

גזירה של נתיבי כיתה

השירות derive_classpath קורא וממזג קובצי תצורה נפרדים ב- /system/etc/classpaths/ וגם /apex/*/etc/classpaths/ כל מערך הגדרות אישיות הודעת Protobuf מאת classpaths.proto בפורמט בינארי פרוטו. אלגוריתם המיזוג המדויק שקובע את הסדר של רשומות ה-classpath derive_classpath.cpp ועשוי להשתנות עם הזמן.