אנדרואיד 14 מתכוננת להפוך את החוויה לטובה עוד יותר עבור משתמשי חנויות אפליקציות של צד שלישי הודות לממשקי API חדשים.
Google Play היא ללא ספק חנות האפליקציות הפופולרית ביותר בקרב משתמשי אנדרואיד, אך יש שיטענו שהיא לא זכתה במקום הראשון שלה בצורה הוגנת. גוגל נבדקה על ידי סוכנויות רגולטוריות וגופים מחוקקים ברחבי העולם בגלל זה כיצד היא שומרת על הדומיננטיות שלה בחנות האפליקציות, ואין סימנים שהלחץ הזה יתרופף בכל עת בקרוב. זו אולי הסיבה שגוגל לוקחת יוזמה להציג תכונות חדשות אנדרואיד 14 המשפרים את החוויה למשתמשים בחנויות אפליקציות של צד שלישי.
רוב חנויות האפליקציות של צד שלישי באנדרואיד לא ממש תחרותיות עם Google Play, וזה לא רק בגלל בחירת האפליקציות שלהן. בעוד שחנויות אפליקציות מותקנות מראש של צד ראשון תמיד היו יכולות לבצע עדכוני אפליקציות אוטומטיים, חנויות אפליקציות של צד שלישי הצליחו לבצע עדכונים ללא השגחה רק לאחרונה. גוגל הוסיפה ממשק API באנדרואיד 12 המאפשר לחנויות אפליקציות של צד שלישי לעדכן אפליקציות ללא צורך בפעולת משתמש, מה שמפחית את החיכוך של באמצעות חנות אפליקציות של צד שלישי.
עם זאת, זה עדיין הותיר את חנויות האפליקציות של צד שלישי בחסרון משמעותי בכל הנוגע לפונקציונליות, מכיוון שלא יכלו לדעת בקלות
מתי זה יהיה בטוח לבצע עדכון אוטומטי. זה מה שגוגל מנסה לפתור באנדרואיד 14 עם API חדש שמאפשר לחנויות אפליקציות של צד שלישי לבצע "עדכונים עדינים".עדכונים עדינים
אנדרואיד 14 הוסיפה API חדש המאפשר לחנויות אפליקציות של צד שלישי לבדוק אם תנאים מסוימים מתקיימים לפני שהם מתחילים לעדכן אפליקציה אוטומטית. ה מתקין חבילות. InstallConstraints API "יכול לשמש את חנויות האפליקציות כדי לספק עדכונים אוטומטיים מבלי לשבש את חווית המשתמש (המכונה עדכון עדין) - לדוגמה, חנות אפליקציות עשויה לדחות עדכונים כאשר היא תגלה שהאפליקציה לעדכן מקיימת אינטראקציה עם מִשׁתַמֵשׁ."
ממשק API חדש זה מאפשר לחנויות אפליקציות של צד שלישי לבדוק אם לאפליקציה שהם מתכוננים לעדכן יש שירות חזית פעיל (isRequireAppNotForeground), מקיים אינטראקציה עם המשתמש בדרך כלשהי (isRequireAppNotInteracting), או נמצא על המסך (isRequireAppNotTopVisible). חנויות אפליקציות של צד שלישי יכולות גם לבדוק אם המכשיר נמצא במצב נמנום (isRequireDeviceIdle) או בשיחת טלפון (isRequireNotInCall).
בעוד שה-API מאפשר לציין אילו תנאים לבדוק, התיעוד ממליץ להשתמש באילוצים המוגדרים מראש כפי שהמערכת יודעת הכי טוב איך לעשות את זה." זה הגיוני בהתחשב בעובדה שלגוגל היה מספיק זמן לפתח את הדרך הטובה ביותר להתמודד עם עדכונים אוטומטיים בחנות האפליקציות שלה. השימוש בהגדרה מראש מועיל גם הוא, כפי שצוין בתיעוד, מכיוון שהדיוק והיעילות של עדכונים עדינים עשויים להשתפר במהדורות עתידיות אם גוגל תוסיף עוד אילוצים ל-API.
כל תנאי שמתקין Package. ה-API של InstallConstaints מאפשר לבדוק כבר עכשיו דרך ממשקי API קיימים, אבל העובדה שהמערכת תטפל בבדיקות האלה היא הרבה יותר קלה ופחות פולשנית. לדוגמה, חנויות אפליקציות של צד שלישי שרוצות לבדוק אם נעשה שימוש פעיל באפליקציה שהם מעדכנים על ידי המשתמש יצטרך להשתמש כרגע ב-API כמו UsageStats או AccessibilityService, שניהם רגישים הרשאות. עם זאת, אם הם ישתמשו ב-API החדש של Android 14, הם לא יצטרכו את ההרשאות הללו כדי לבצע את עבודתם.
עדכן בעלות
הפעלת "עדכונים עדינים" אינה השיפור היחיד באנדרואיד 14 עבור חנויות אפליקציות של צד שלישי. יש גם מנגנון חדש של "עדכון בעלות" המאפשר לחנויות אפליקציות של צד שלישי להפוך למקור הבלעדי של עדכונים אוטומטיים עתידיים לאפליקציה שהתקינו לראשונה. זה אומר שאם אתה משתמש בחנות אפליקציות של צד שלישי מכיוון שהאפליקציות הזמינות דרכה נבדקות על ידי ה קהילה, למשל, אז עדכון לא מפוקח שזמין דרך חנויות אפליקציות אחרות לא יידחף אוטומטית אל המכשיר שלך.
נכון לעכשיו, כשאתה מתקין אפליקציה דרך חנות אפליקציות של צד שלישי, אין שום דבר שמונע מחנות אפליקציות של צד ראשון לעדכן את האפליקציה הזו. בעוד שממשק API לעדכונים ללא השגחה של אנדרואיד 12 מאפשר רק לחנויות אפליקציות של צד שלישי לעדכן בשקט אפליקציות שהתקינו לראשונה, חנויות אפליקציות של צד ראשון אינן מושפעות מכיוון שהן מחזיקות בזכויות היתר. INSTALL_PACKAGES רְשׁוּת.
חנויות אפליקציות של צד שלישי באנדרואיד 14 יכולות להשתמש בחדש setRequestUpdateOwnership שיטה ב מתקין חבילות. SessionParamsעם זאת, לספר למערכת שהם תובעים בעלות על עדכונים על האפליקציה שהם עומדים להתקין. ברגע שאכיפת בעלות על עדכונים מופעלת עבור אפליקציה, כל חנויות האפליקציות האחרות - אפילו אלה עם הרשאת INSTALL_PACKAGES - זקוקות לפעולה מהמשתמש כדי לעדכן את האפליקציה. ניתן להפעיל בעלות על עדכונים רק במהלך ההתקנה הראשונית של אפליקציה, אז חנות אפליקציות אחרת לא יוכל להשתלט על עדכונים אלא אם האפליקציה המדוברת תוסר ותותקן מחדש ממנה חנות. חנויות אפליקציות יכולות לבדוק אם בעלות על עדכונים מופעלת עבור אפליקציה, ואם כן, איזו אפליקציה היא הבעלים של העדכון, באמצעות האפליקציה החדשה InstallSourceInfo#getUpdateOwnerPackageName() ממשק API.
חנויות אפליקציות של צד שלישי חייבות להחזיק את החדש ENFORCE_UPDATE_OWNERSHIP הרשאה להשתמש ב-API לאכיפת בעלות על עדכונים, אך מכיוון שלרשאה זו יש רמת הגנה של "רגיל", היא תינתן על ידי המערכת בזמן ההתקנה. עם זאת, נותר לראות אם Google Play תבדוק את השימוש בהרשאה/ממשק API זה.
אישור מראש להתקנה
ה-API החדש האחרון של Android 14 שרציתי להדגיש הוא מתקין חבילות. Session#requestUserPreapproval. API זה מאפשר לחנויות אפליקציות של צד שלישי לבקש אישור משתמשים לפני שהם מבצעים הפעלת התקנה. אני מתאר לעצמי שזה יהיה שימושי עבור חנויות אפליקציות של צד שלישי שרוצות בכוונה להנחות את המשתמש לפני עדכון אפליקציה ברקע.
לדוגמה, דמיינו חנות אפליקציות ממוקדת אבטחה רוצה ליידע את המשתמש שלה כאשר עדכון אפליקציה מוסיף הרשאות חדשות; במקום לעדכן אוטומטית את האפליקציה הזו, ובכך להעניק את ההרשאה הזו באופן אוטומטי אם רמת ההגנה שלה היא "רגילה", חנות האפליקציות יכולה לבקש מהמשתמש לפני ביצוע העדכון. נכון לעכשיו, אם משתמש אינו נוכח במהלך עדכון אוטומטי, חנות האפליקציות של צד שלישי תצטרך לעקוב אחר הפעלת ההתקנה ולבקש ממנו מאוחר יותר. API זה מפשט את התהליך הזה.
אנדרואיד 14 תציג המון תכונות חדשות וממשקי API כאשר הוא ישוחרר לציבור מאוחר יותר השנה. למרות שממשקי ה-API החדשים הללו אינם מוסתרים כמו חלק מהשינויים האחרים שזיהינו, אין ערובה שממשקי ה-API הללו יהיו זמינים למפתחים במהדורה היציבה. הסיבה לכך היא שהקפאת ה-API לא תתרחש עד ש-Android 14 יגיע ל"יציבות פלטפורמה" עם בטא 3 ביוני 2023, ואנחנו רק ב-DP1 כרגע. אנו נפקח עין על מהדורות עתידיות של Android 14 DP וביטא כדי לראות אם ממשקי ה-API הללו נשארים או אם מתווספים ממשקי API חדשים רלוונטיים לחנויות אפליקציות של צד שלישי.