מתחילים לפתח אפליקציות ל-ChromeOS

מכשירי ChromeOS, כמו Chromebook, תומכים בחנות Google Play אפליקציות ל-Android. המאמר הזה מניח שיש לכם אפליקציה קיימת ל-Android שמיועדת עבור טלפונים או טאבלטים שרוצים לבצע בהם אופטימיזציה למכשירי Chromebook. כדי ללמוד את היסודות בנושא של פיתוח אפליקציות ל-Android, ראו בניית מכשיר ה-Android הראשון שלכם app.

עדכון קובץ המניפסט של האפליקציה

כדי להתחיל, יש לעדכן את קובץ המניפסט כך שיכלול רכיבי חומרה מרכזיים הבדלים בתוכנה בין מכשירי Chromebook למכשירים אחרים שבהם פועלת מערכת Android.

החל מגרסה M53 של ChromeOS, בכל האפליקציות ל-Android שלא מחייבות באופן מפורש את android.hardware.touchscreen פועלת גם במכשירי ChromeOS שתומכים תכונה android.hardware.faketouch. עם זאת, כדי להבטיח שהאפליקציה תפעל מכשירי Chromebook, מעדכנים את קובץ המניפסט כך התכונה android.hardware.touchscreen לא נדרשת, כמו שמוצג בדוגמה הבאה.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          ... >
    <!-- Some Chromebooks don't support touch. Although not essential,
         it's a good idea to explicitly include this declaration. -->
    <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
</manifest>

מכשירי חומרה שונים כוללים ערכות שונות של חיישנים יכול להיות שחלק מהחיישנים של מכשירי Chromebook לא נמצאים במכשירים ניידים עם Android, כמו GPS ומדי תאוצה. עם זאת, במקרים מסוימים הפונקציונליות של החיישן מסופק בדרך אחרת. לדוגמה, ייתכן ש-Chromebook לא יש חיישני GPS, אבל הם מספקים נתוני מיקום בהתבסס על חיבורי Wi-Fi. כדי לקבל מידע נוסף, יש לעיין בסקירה הכללית של החיישנים על החיישנים שפלטפורמת Android תומכת בהם.

אם רוצים שהאפליקציה תפעל במכשירי Chromebook ללא קשר לזמינות החיישנים, מעדכנים את קובץ המניפסט כך שלא יהיה צורך בחיישנים.

תכונות תוכנה מסוימות לא נתמכות במכשירי Chromebook. לדוגמה, אפליקציות לספק רכיבי IME מותאמים אישית, ווידג'טים של אפליקציות, טפטים מונפשים ומרכזי אפליקציות נתמך ואי אפשר להתקין אותם במכשירי Chromebook. לרשימה מלאה של לתכונות תוכנה שלא נתמכות במכשירי Chromebook. מידע נוסף זמין בקטע לא תואמות תכונות תוכנה.

עדכון ה-SDK של היעד

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

בדיקת דרישות הרשת

במכשירי Chromebook, כל מערכת ההפעלה של Android פועלת בקונטיינר, בדומה ל-Docker או ל-LXC. המשמעות היא שאין ל-Android גישה ישירה ל-LAN של המערכת גרפי. במקום זאת, תנועת IPv4 עוברת דרך שכבה פנימית של רשת תרגום כתובות (NAT), ותעבורת נתונים של IPv6 unicast מנותבת דרך צעד.

חיבורי unicast יוצאים מאפליקציית Android לאינטרנט בעיקר לעבוד כפי שהם. באופן כללי, חיבורים נכנסים חסומים. Multicast או שידור חבילות מ-Android לא מועברות ל-LAN דרך חומת האש.

פרט להגבלה של Multicast, מערכת ChromeOS מפעילה שירות מעבירה תנועת mDNS בין Android וממשק ה-LAN, כך שתקן ממשקי API לגילוי שירותי רשת הן הדרך המומלצת לאתר מכשירים אחרים בקטע ה-LAN. אחרי איתור מכשיר ב-LAN, אפליקציה ל-Android יכולה להשתמש בתקן TCP או UDP רגיל כדי לתקשר איתם.

חיבורי IPv4 שמקורם ב-Android משתמשים בכתובת ה-IPv4 של מארח ה-ChromeOS. באופן פנימי, האפליקציה ל-Android רואה כתובת IPv4 פרטית שהוקצתה לרשת גרפי. חיבורי IPv6 שמקורם ב-Android משתמשים בכתובת שונה ממארח ChromeOS, כי למאגר התגים של Android יש הגדרה ציבורית ייעודית כתובת IPv6.

שימוש יעיל בענן ובאחסון המקומי

מכשירי Chromebook מאפשרים למשתמשים לעבור בקלות ממכשיר אחד לאחר. אם משתמש הפסיק משתמשים ב-Chromebook אחד ומתחילים להשתמש ב-Chromebook אחר, הם צריכים רק להיכנס לחשבון. כל האפליקציות שלהם מופיעות.

בגלל התכונה הזו, יש לגבות את נתוני האפליקציה בענן כדי להפעיל את הסנכרון במכשירים שונים. עם זאת, אין להסתמך על חיבור לאינטרנט עבור האפליקציה כדי פועלות כרגיל. במקום זאת, שמירת העבודה של המשתמש באופן מקומי כשהמכשיר אופליין ולסנכרן לענן ברגע שהמכשיר חוזר למצב אונליין.

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

עדכון ספריות ה-NDK

אם באפליקציה נעשה שימוש בספריות Android NDK וגרסת היעד של ה-SDK היא 23 או חשוב לוודא ששינויי המיקום של הטקסט הוסרו גם מ-ARM וגם מ-x86 של ספריות ה-NDK, כי הן לא תואמות ל-Android 6.0 (API רמה 23) ומעלה. להשאיר את מיקומי הטקסט בספריות ה-NDK? עלולים גם לגרום לשגיאות תאימות עם מחשבי Chromebook, במיוחד כאשר פועל במכשיר בארכיטקטורת x86.

פיתוח מקרי בדיקה חדשים לאפליקציה

כדי לפתח מקרי בדיקה לאפליקציה, צריך קודם לציין את סימונים במניפסט. באופן ספציפי, כדאי להגדיר את screenOrientation אל unspecified. אם ברצונך לציין כיוון לרוחב, מומלץ להשתמש sensorLandscape כדי לוודא שהחוויה בטאבלט היא אופטימלית.

אם יש לכם צורכי גודל או כיוון מיוחדים בסביבות של מחשבים, כדאי לשקול להוסיף מטא תגים כרמזים של גודל או כיוון. כדי לכלול גודל וכיוון בטלפונים, לציין פריסה defaultHeight, defaultWidth, או minHeight במקום זאת.

אם ברצונך לקבל טיפול במכשיר ספציפי לקליטת נתונים קטגוריות, ציינו את android.hardware.type.pc כדי להשבית את הקלט מצב תאימות.

אם משתמשים ברשת מסוג כלשהו, צריך לוודא שהאפליקציה יכולה להתחבר מחדש לרשת לאחר פתרון בעיית חיבור או לאחר שהמכשיר יצא ממצב שינה מצב שינה.

מומלץ לעיין ברשימה של מקרי הבדיקה לאפליקציות ל-Android ב-Chrome OS, שאפשר להשתמש בה בתוכנית הבדיקה. מקרי הבדיקה מכסים תרחישים נפוצים שבהם אפליקציות ל-Android צריכות להיות מוכנות לקראתם אם הן צפויות לפעול במכשירי ChromeOS.

שינויים בחלונות מרובים ובכיוון

הסביבה מרובת החלונות של ChromeOS יכולה להתמיד ולזכור את המצב בעיות ברורות יותר. שימוש ב-ViewModel כדי לשמור ולשחזר את המצב במקרה הצורך.

כדי לבדוק את העקביות של המצב, ממזער את האפליקציה לזמן מה, צריך להתחיל מחדש התהליך שצורך הרבה משאבים, ושחזור האפליקציה כדי לוודא שהיא חוזרת למצב שבו השארתם אותו.

אפשר לבדוק את שינוי הגודל של חלון על ידי לחיצה על מקש המסך המלא (F4), הגדלה ו לשחזור. כדי לבדוק את האפשרות לשינוי גודל בחינם, צריך קודם להפעיל אותה באפשרויות למפתחים. ואז לבדוק שגודל האפליקציה משתנה בצורה חלקה מבלי לקרוס.

אם מכשיר ChromeOS שלך תומך בכך, צריך לעבור ממצב מחשב נייד למצב טאבלט כדי לבדוק האם הכול פועל כצפוי. צריך לסובב את המכשיר פעם אחת במצב טאבלט כדי לבדוק את השינויים בכיוון, ואז לחזור למצב מחשב נייד. חוזרים על הפעולה כמה פעמים.

מוודאים שהסרגל העליון לא גורם לשיבושים באפליקציה על ידי השבתת הרכיבים בממשק המשתמש או קלט מגע מבוסס-מיקום. במכשירי ChromeOS, צריך לוודא שהאפליקציה לא מציבה מידע חשוב באזור שורת הסטטוס.

אם אתם משתמשים במצלמה או בתכונת חומרה אחרת, כמו העט, הקפידו לוודא שהוא יפעל כראוי לאחר ביצוע שינויים בחלון ובמכשיר שתוארו קודם לכן.