פתרון AI ל-Android

שיפור האפליקציות ל-Android בעזרת בינה מלאכותית גנרטיבית

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

בקורס הזה תלמדו איך להשתמש ב-Gemini ב-Android Studio כדי ללמוד ולפתח מהר יותר, איך להשתמש ב-Firebase כדי ליצור את שכבות האחסון והכניסה של האפליקציה, איך להשתמש ב-Gemini כדי להוסיף לאפליקציה תכונות מתקדמות של AI גנרטיבי, ואיך להשתמש בכלים כמו Firebase Remote Config,‏ Google Analytics ו-Crashlytics כדי לתמוך באפליקציה בסביבת הייצור.

שיפור משמעותי של פיתוח Android בעזרת Gemini ב-Android Studio

עכשיו קל יותר מתמיד לפתח אפליקציות ל-Android בעזרת Gemini ב-Android Studio, העוזר הדיגיטלי מבוסס ה-AI לתכנות.

Gemini ב-Android Studio משלב AI ישירות בסביבת הפיתוח המשולבת (IDE) שבה אתם משתמשים מדי יום, כדי לעזור לכם לאורך כל מחזור חיי הפיתוח של התוכנה ולפתח אפליקציות איכותיות ל-Android מהר יותר ובקלות רבה יותר. כך תוכלו ללמוד מושגים חדשים מהר יותר, ליצור אב טיפוס בקלות ולהתמקד יותר בחלקים החשובים באפליקציה.

כדי להתחיל לעבוד על אפליקציית Android, כדאי לבדוק איך Gemini ב-Android Studio יכול לשפר את תהליך הפיתוח.
אם אתם מתחילים ב-Android או באזורים ספציפיים של פיתוח ב-Android, Gemini ב-Android Studio יכול להיות כלי לימוד חשוב.

  • קבלת תשובות מיידיות לשאלות: אפשר לשאול את Gemini שאלות על מושגים בסיסיים של Android, על ממשקי API ספציפיים או על שיטות מומלצות ישירות בחלון הצ'אט של Android Studio. לדוגמה, אפשר לשאול "What is dark theme?‎" או "What's the best way to get location on Android?‎".
  • לקבל דוגמאות קוד והנחיות: Gemini יכול ליצור קטעי קוד ולספק הנחיות להטמעת תכונות שונות, כמו הוספת תמיכה במצלמה או יצירת מסד נתונים של Room. אפשר גם לבקש קוד ב-Kotlin או קוד ספציפי ל-Jetpack Compose.
  • הבנת השגיאות ופתרון בעיות: אם נתקלתם בשגיאות build או בסנכרון, תוכלו לבקש מ-Gemini הסבר והצעות לפתרון הבעיות. ‫Gemini יכול גם לעזור לנתח דוחות קריסה מ-App Quality Insights, לספק סיכומים ולהמליץ על השלבים הבאים.
לדוגמה, באפליקציה היפותטית לבישול, אפשר לבקש מ-Gemini ליצור אב טיפוס של פריסה חדשה של חלונית הכתיבה כדי להציג כרטיס מתכון. בעזרת היכולות המולטי-מודאליות של Gemini, פשוט מספקים מודל קווים (wireframe) ומבקשים מ-Gemini לצייר את הקוד של ממשק המשתמש.
הגרסה האישית של Gemini ב-Android Studio זמינה ללא עלות במהלך תקופת הבטא.

עם זאת, לפיתוח בסביבות צוות גדולות עם דרישות פרטיות וניהול מחמירות יותר, Gemini ב-Studio לעסקים מציע יתרונות חשובים נוספים, כולל תכונות משופרות של פרטיות, אבטחה והתאמה אישית של קוד – והוא זמין לשימוש באמצעות הזיכויים שלכם ב-Google Cloud.

הכלים האלה, יחד עם Gemini Code Assist, מאפשרים לצוותים לנצל את העוצמה של ה-AI בביטחון, תוך התמקדות בצרכים חיוניים של פרטיות, אבטחה וניהול.

אבני הבניין של Firebase לאפליקציה

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

Firebase מפשטת את תהליך פיתוח האפליקציות ל-Android על ידי מתן אבני הבניין החיוניות האלה, ומבטלת את הצורך בהטמעה של קצה עורפי משלכם.
לדוגמה, אם אתם מפתחים אפליקציה להכנת מתכונים, אתם צריכים לשמור מתכונים, תפריטי ארוחות ורשימות של מרכיבים מעבר למכשיר (למשל, למקרה שהמשתמש עובר לטלפון אחר). אפשר לשמור את הנתונים האלה ב-Cloud Firestore.

Cloud Firestore הוא מסד נתונים בענן מסוג NoSQL שניתן להתאמה, שזמין ב-Firebase וב-Google Cloud. הוא מאפשר סנכרון נתונים בזמן אמת בין אפליקציות לקוח באמצעות מאזינים בזמן אמת, ויש לו תמיכה אופליין לנייד ולאינטרנט, כדי להבטיח ביצועים מהירים של האפליקציה ללא קשר לזמינות הרשת. הוא משתלב בצורה חלקה עם מוצרים אחרים של Firebase ו-Google Cloud, כולל Cloud Functions.

אימות משתמשים חיוני כדי לאפשר למשתמשים שעוברים למכשיר אחר לגשת לנתונים שלהם – ולוודא שאנשים אחרים לא יכולים לגשת לנתונים שלהם.

אימות ב-Firebase הוא כלי רב-תכליתי שמפשט את תהליך ההוספה של אימות משתמשים לאפליקציות ל-Android. היא מספקת שירותי קצה עורפי ו-SDK עם ספריות UI מוכנות שתומכות בשיטות אימות שונות, כולל כניסה באמצעות אימייל/סיסמה, אימות באמצעות מספר טלפון ושילוב עם ספקי זהויות מאוחדות פופולריים כמו Google,‏ Facebook ו-Twitter.
חשוב מאוד לעקוב אחרי שגיאות וקריסת אפליקציות כדי לוודא שהאפליקציות שלכם יציבות ומצליחות – אפליקציה שמקרסת תגרום למשתמשים שלכם תסכול והם יבטלו את ההתקנה שלה.

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

גם ל-Cloud Firestore וגם לאימות ב-Firebase יש רמות נדיבות ללא עלות. עם זאת, אם האפליקציה שלכם זקוקה למכסות גדולות יותר או לתכונות מתקדמות יותר מהשירותים האלה, תצטרכו להירשם למינוי בתשלום. אבל אל דאגה – אתם יכולים להשתמש בזיכויים ב-Cloud כדי לכסות את העלויות האלה. בנוסף, השימוש ב-Crashlytics הוא בחינם, לא משנה כמה אתם משתמשים בו.

מידע על הפתרונות האחרים של Firebase זמין באתר של Firebase.
scope.launch {
  val response = model.generateContent(
    "Create a shopping list with $cuisineStyle ingredients")
}
לדוגמה, אם מדובר באפליקציית מתכונים, Gemini 2.0 Flash יכול ליצור רשימת קניות של מרכיבים לבישול ארוחה בסגנון קולינרי ספציפי. אפשר אפילו לבקש מהמודל ליצור מחרוזת JSON שאפשר לנתח בקלות באפליקציה כדי להציג אותה בממשק המשתמש. כדי ליצור את הרשימה, פשוט קוראים לפונקציה generateContent()‎ עם הנחיה בטקסט.

מידע נוסף זמין במדריך למפתחים של Android.

AI גנרטיבי ב-Android

יש כמה דרכים לשלב בינה מלאכותית גנרטיבית באפליקציה שלנו לבישול לאנדרואיד. לפניכם סקירה כללית קצרה של כל אחת מהאפשרויות:
Gemini Nano הוא המודל ממשפחת Gemini שעבר אופטימיזציה לצורך הפעלה במכשיר. הוא משולב ישירות במערכת Android OS דרך AICore. אפשר להשתמש בו כדי לספק חוויות של AI גנרטיבי בלי צורך בחיבור לרשת או בשליחת נתונים לענן.

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

מידע נוסף על הארכיטקטורה הטכנית של Gemini Nano זמין במסמכי התיעוד של Android.

כדי להתנסות ב-Gemini Nano באפליקציה שלכם, תוכלו לעיין בשלב הבא בנושא Gemini Nano במכשיר באמצעות Google AI Edge SDK הניסיוני.
בדרך כלל, מודלים של בינה מלאכותית גנרטיבית שעברו אופטימיזציה לצורך הפעלה בענן מתקדמים יותר ממודלים של AI במכשיר.

מפתחי Android יכולים להשתמש ב-Vertex AI ב-Firebase כדי להטמיע במהירות יכולות של AI גנרטיבי באפליקציית Android שלהם, באמצעות המודלים Gemini Pro ו-Flash למשימות של יצירת טקסט, ו-Imagen למשימות של יצירת תמונות.

משפחת המודלים של AI מסוג Gemini Pro ו-Flash היא מולטימודלית ויכולה לטפל במגוון רחב של משימות. הם מקבלים קלט של תמונות, אודיו וסרטונים ויוצרים פלט טקסט שאפשר לעצב בפורמטים JSON,‏ XML ו-CSV. המודלים החדשים ביותר של Gemini יכולים אפילו ליצור פלט מרובה מצבים – כמו אודיו ותמונות!

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

כמו כן, אתם יכולים להשתמש בזיכויים ב-Google Cloud כדי לכסות את העלויות של הקריאות האלה למודלים של Gemini.

כדי ללמוד איך להשתמש במודלים של Gemini שמתארחים בענן באפליקציה, אפשר לעיין בשלב הבא בנושא Gemini דרך Vertex AI ב-Firebase.
Imagen 3 הוא המודל החדש של Google ליצירת תמונות. אפשר לגשת אליו דרך Vertex AI ב-Firebase, כך שתוכלו להוסיף יכולות יצירת תמונות לאפליקציה ל-Android במהירות ובקלות.

לדוגמה, באפליקציה להכנת ארוחות אפשר להשתמש במודל Imagen 3 כדי ליצור איורים של מתכונים.

אפשר לכסות את העלות באמצעות הזיכוי ב-Google Cloud.

כדי ללמוד איך להשתמש ב-Imagen 3 באפליקציה, אפשר לעיין בשלב 'שימוש ב-Imagen 3 ליצירת תמונות' שבהמשך.
אפשר גם להוסיף יכולות של AI גנרטיבי באמצעות שילוב בקצה העורפי:

  • Genkit היא מסגרת בקוד פתוח שמפשטת את הפיתוח, הפריסה והמעקב אחרי אפליקציות מבוססות-AI.
  • לצרכים מתקדמים יותר של MLOps, Vertex AI של Google Cloud הציע שירותים מנוהלים לחלוטין וכן מבחר עשיר של מודלים דרך Vertex AI model Garden. אפשר גם להשתמש בקרדיטים ב-Google Cloud כדי לכסות את העלויות של השירותים האלה.


אם אתם רוצים להריץ שגיאות AI במכשיר מעבר ל-Gemini Nano, תוכלו גם להתנסות ב-LiteRT וב-MediaPipe:
  • LiteRT (לשעבר TFLite) הוא סביבת זמן ריצה עתירת ביצועים של Google ל-AI במכשיר, שנועדה להריץ מודלים של למידת מכונה בצורה יעילה ישירות במכשירים.
  • MediaPipe היא מסגרת קוד פתוח שמאפשרת למפתחים ליצור צינורות עיבוד נתונים של למידת מכונה לעיבוד נתוני מולטימדיה, כמו וידאו ואודיו, בזמן אמת.


מידע נוסף על המוצרים של Android GenAI זמין בקטע AI במסמכי התיעוד של Android.
Google AI Edge SDK מאפשר למפתחי אפליקציות ל-Android לשלב את יכולות ה-AI הגנרטיבי של Gemini Nano במכשיר ולנסות אותן כדי לשפר את האפליקציות שלהם. כך מתחילים:
  • הצטרפות לקבוצת Google‏ aicore-experimental
  • מצטרפים לתוכנית הבדיקה של Android AICore
    אחרי שתשלימו את השלבים האלה, שם האפליקציה AICore בחנות Play (בקטע 'ניהול האפליקציות והמכשיר') אמור להשתנות מ-'Android AICore' ל-'Android AICore (בטא)'.
  • פועלים לפי השלבים האלה כדי לוודא שהקובצי ה-APK והקובצי הבינאריים יורדים כראוי למכשיר.
  • לאחר מכן מעדכנים את הגדרות Gradle של האפליקציה על ידי הוספת התלות הבאה: implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
    ומוודאים שהגדרתם את יעד ה-SDK המינימלי ל-31.
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
בשלב הבא תוכלו להגדיר את המודל כדי לשלוט בתשובות שלו. לשם כך, צריך לספק את ההקשר ולהגדיר את הפרמטרים הבאים (אופציונלי):

  • טמפרטורה: קובעת את רמת האקראיות. ככל שהערכים גבוהים יותר, כך התוצאה תהיה מגוונת יותר.
  • Top K: מציין את מספר הטוקנים עם הדירוג הגבוה ביותר שיש להביא בחשבון ליצירת הפלט.
  • מספר המועמדים: מגדיר את המספר המקסימלי של התשובות שיוחזר.
  • Max Output Tokens: מגדיר את האורך המקסימלי של התשובה.
val generationConfig = generationConfig {
  context = ApplicationProvider.getApplicationContext()
  temperature = 0.2f
  topK = 16
  maxOutputTokens = 256
}
יוצרים פונקציה אופציונלית downloadCallback. פונקציית הקריאה החוזרת הזו משמשת להורדת מודלים. הוא גם מחזיר הודעות שאפשר להשתמש בהן לצורך ניפוי באגים. יוצרים את האובייקט GenerativeModel באמצעות הגדרות היצירה וההורדה האופציונליות שיצרתם בעבר.
val downloadConfig = DownloadConfig(downloadCallback)
val generativeModel = GenerativeModel(
  generationConfig = generationConfig,
  downloadConfig = downloadConfig // optional
)
לסיום, מעבירים את ההנחיה למודל כדי להפעיל את ההסקה. חשוב לוודא ש-GenerativeModel.generateContent() נמצא בהיקף המתאים של פונקציית ה-coroutine, כי זוהי פונקציית השהיה.

בהקשר של אפליקציה לדוגמה לבישול ארוחות, Gemini Nano יכול לספק השראה לארוחות על ידי הצעה של סוגים שונים של מטבחים ומנות שונות מהיסטוריית הארוחות.
scope.launch {
  val input = "Suggest different types of cuisines and easy to cook dishes that are not $recentMealList"
  val response = generativeModel.generateContent(input)
  print(response.text)
}
המודל Gemini Nano מוגבל ל-12,000 טוקני קלט לכל היותר. מידע נוסף על גישה ל-Gemini Nano במסגרת תוכנית הניסוי זמין בקטע Gemini Nano במסמכי העזרה של Android.

Gemini דרך Vertex AI ב-Firebase

בעזרת Vertex AI ב-Firebase תוכלו ליצור תכונות מבוססות-AI גנרטיבי באמצעות מודלים של Gemini Cloud, תוך ניצול היתרונות של הפריסה והניהול השוטפים של סביבת Firebase.

dependencies {
...
// Import the BoM for the Firebase platform
implementation(platform("com.google.firebase:firebase-bom:"))

// Add the dependency for the Vertex AI in Firebase library
// When using the BoM, you don't specify versions in Firebase
// library dependencies
implementation("com.google.firebase:firebase-vertexai")
}
כדי להתחיל, כדאי להתנסות בהנחיות ב-Vertex AI Studio. זהו ממשק אינטראקטיבי לעיצוב פרומפטים וליצירת אב טיפוס. אתם יכולים להעלות קבצים כדי לבדוק הנחיות עם טקסט ותמונות, ולשמור הנחיה כדי לחזור אליה מאוחר יותר.

כשתהיו מוכנים לבצע קריאה ל-Gemini API מהאפליקציה, תצטרכו להגדיר את Firebase ואת ה-SDK לפי ההוראות שמפורטות במדריך לתחילת העבודה עם Vertex AI ב-Firebase.

לאחר מכן מוסיפים את יחסי התלות של Gradle לפרויקט:

val generativeModel = Firebase.vertexAI
  .generativeModel(
  "gemini-2.0-flash",
  generationConfig = generationConfig {
        responseMimeType = "application/json"
        responseSchema = jsonSchema
  }
    )
עכשיו אפשר להפעיל את Gemini API מקוד Kotlin. קודם צריך לאתחל את שירות Vertex AI וליצור מופע של GenerativeModel:
scope.launch {
  val response = model.generateContent("
    Create a shopping list with $cuisineStyle ingredients")
}
לדוגמה, אם מדובר באפליקציית מתכונים, Gemini 2.0 Flash יכול ליצור רשימת קניות של מרכיבים לבישול ארוחה בסגנון קולינרי ספציפי. אפשר אפילו לבקש מהמודל ליצור מחרוזת JSON שאפשר לנתח בקלות באפליקציה כדי להציג אותה בממשק המשתמש. כדי ליצור את הרשימה, פשוט קוראים לפונקציה generateContent()‎ עם הנחיה בטקסט.

מידע נוסף זמין במדריך למפתחים של Android.

Imagen 3 ליצירת תמונות

אפשר לגשת ל-Imagen 3 דרך Vertex AI ב-Firebase, וכך לשלב את יצירת התמונות באפליקציות ל-Android בצורה חלקה. Imagen 3 הוא המודל המתקדם ביותר של Google ליצירת תמונות. הוא יוצר תמונות באיכות גבוהה עם פרטים מדויקים, מינימום פגמים ואפקטים מציאותיים של תאורה, ומציב סטנדרט חדש ביצירת תמונות.

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

תמונה שנוצרה על ידי Imagen 3 עם ההנחיה: איור בסגנון קריקטורה של תצוגה ממעוף גבוה של משטח מטבח עם מרכיבים יפים לארוחה ים תיכונית.
dependencies {
    implementation(platform("com.google.firebase:firebase-bom:33.10.0"))

    implementation("com.google.firebase:firebase-vertexai")
}
השילוב של Imagen 3 דומה לגישה למודל Gemini דרך Vertex AI ב-Firebase.

תחילה מוסיפים את יחסי התלות של Gradle לפרויקט Android:
val imageModel = Firebase.vertexAI.imagenModel(
modelName = "imagen-3.0-generate-001",
generationConfig = ImagenGenerationConfig(
  imageFormat = ImagenImageFormat.jpeg(compresssionQuality = 75),
  addWatermark = true,
  numberOfImages = 1,
  aspectRatio = ImagenAspectRatio.SQUARE_1x1
)
לאחר מכן, בקוד Kotlin, יוצרים מופע של ImageModel על ידי העברת שם המודל, ואם רוצים, גם הגדרת מודל:
val imageResponse = imageModel.generateImages(
prompt = "A cartoon style illustration of a top overview of a kitchen countertop
  with beautiful ingredients for a $cuisineStyle meal."
)
לבסוף, יוצרים את התמונה באמצעות קריאה ל-generateImages() עם הנחיית טקסט:
val image = imageResponse.images.first()
val uiImage = image.asBitmap()
מאחזרים את התמונה שנוצרה מ-`imageResponse` ומציגים אותה כקובץ bitmap:
מידע נוסף על השימוש ב-Imagen 3 זמין בבלוג למפתחי Android ובמסמכי התיעוד למפתחי Android.

הכנה לקראת ייצור באמצעות Firebase

אחרי שמטמיעים את התכונות של ה-AI הכללי באפליקציה, יש כמה שלבים קריטיים שצריך לבצע לפני הפריסה של האפליקציה בסביבת הייצור:
  • כדי למנוע ניצול לרעה של ממשקי API, כדאי להטמיע את Firebase App Check עם Play Integrity.
  • משתמשים ב- Firebase Remote Config כדי לבצע הגדרות בשליטת השרת ולעדכן באופן דינמי את גרסת המודל של ה-AI ואת המודל עצמו.
  • פיתוח מנגנוני משוב באמצעות Google Analytics כדי להעריך את ההשפעה ולקבל משוב ממשתמשים על התשובות של ה-AI.
כדאי גם לזכור את פרטיות המשתמשים ואת השימוש האחראי ב-AI, ולהיות שקופים עם המשתמשים לגבי התנהגות בלתי צפויה פוטנציאלית של המודלים. בפוסט הבא בבלוג מוסבר בהרחבה על מוכנות לייצור באמצעות Vertex AI ב-Firebase.