כדי להגדיר את Tradefed באמצעות Eclipse, פועלים לפי השלבים הבאים.
צריך ליצור סביבת עבודה נפרדת כדי לפתח את Trade Federation, ולא להשתמש מחדש בסביבת עבודה שכבר משמשת לפיתוח מכשירי Android.
אם צריך, אפשר להוריד את Eclipse IDE למפתחי Java מהכתובת: eclipse.org/downloads
יצירת פרויקטים
- מריצים את הפקודה make פעם אחת משורת הפקודה. הפעולה הזו תיצור ספריות חיצוניות שהפרויקטים הבאים תלויים בהן.
- מגדירים את משתנה נתיב המחלקה TRADEFED_ROOT ב-
Window > Preferences > Java > Build Path> Classpath Variables
ומפנים אותו אל שורש המקור של Tradefed - מגדירים את משתנה הנתיב TRADEFED_ROOT ב-
Window > Preferences > General > Workspace > Linked Resources
ומפנים אותו אל שורש המקור של Tradefed משתמשים באשף
File > Import...-> General > Existing Projects into workspace"
כדי לייבא את פרויקטי Java בקוד פתוח בנתיבים הבאים:prebuilts/misc/common/ddmlib\* tools/loganalysis tools/loganalysis/tests tools/tradefederation/core tools/tradefederation/core/tests tools/tradefederation/contrib tools/tradefederation/core/remote platform_testing/libraries/health/runners/longevity/host platform_testing/libraries/annotations platform_testing/libraries/health/composers/host
אופציונלי: אם רוצים לראות את קוד המקור של
ddmlib
, צריך לצרף את קוד המקור מסתעפות של כלים שלא נכללים בחבילה, כמו /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java.אם רוצים לטעון גם את פרויקטי ה-CTS harness, מייבאים:
test/suite_harness/common/util test/suite_harness/common/host-side/util test/suite_harness/common/host-side/tradefed
פורמט אוטומטי
הערה: הקבצים הנדרשים נמצאים ב-development/ide/eclipse
בעץ המקור המלא של הפלטפורמה. לכן תצטרכו לבדוק ענף של פלטפורמה כמו
android-latest-release
כדי לקבל את הקבצים האלה:
/development/android16-release/ide/eclipse/
אפשר להשתמש בקובצי העדפות ב-Eclipse כדי להגדיר אוטומטית את מעצב הקוד בהתאם למדריך הסגנון של Android. כדי לעשות את זה ב-Studio:
- עוברים אל Window > Preferences > Java > Code Style.
- בקטע Formatter, מייבאים את הקובץ
android-formatting.xml
. - בקטע סדר וארגון > ייבוא, מייבאים את הקובץ
android.importorder
.
הסרת רווחים לבנים בסוף
כדי לכפות על Eclipse להסיר את כל הרווחים הלבנים בסוף השורה:
- עוברים אל Window > Preferences -> Java -> Editor -> Save Actions.
- אחר כך פעולות נוספות -> הגדרה -> קוד -> הכרטיסייה 'ארגון' -> מעצב.
- מסמנים את התיבה Remove Trailing Whitespace (הסרת רווחים מיותרים בסוף השורה).
- לוחצים על החלה וסגירה.
בדיקת סגנון הקוד
כששולחים רשימת שינויים, יופעל באופן אוטומטי ווּקְאפ לפני ההעלאה כדי לבדוק את פורמט הקוד: google-java-format
כך תוכלו לעצב את הקוד לפי התקן המקובל.
ניפוי באגים ב-Eclipse
אם רוצים להריץ קוד TF דרך מאתר באגים ב-Eclipse, מומלץ קודם ליצור בדיקת יחידה לקוד הרלוונטי. זו הדרך הכי פשוטה ומהירה לבדוק את הפונקציונליות.
כדי לנפות באגים בבדיקת יחידה של TF, פשוט לוחצים עליה לחיצה ימנית ובוחרים באפשרות Debug As > JUnit test (ניפוי באגים בתור > בדיקת JUnit).
כדי לנפות באגים בבדיקה פונקציונלית של TF, פועלים לפי ההוראות שבקטע הקודם להרצת בדיקה פונקציונלית, אבל משתמשים בתפריט Run > Debug configurations.
כדי לנפות באגים בתוכנית TF עצמה, כשמריצים הגדרה כלשהי, פועלים לפי ההוראות שבקטע הקודם להרצת בדיקה פונקציונלית, אבל בשלב 4 מספקים את הארגומנטים של שורת הפקודה להגדרה שרוצים להריץ. כדי לנפות באגים בהגדרת ה-instrument, עוברים לתפריט Run > Debug configuration (הפעלה > הגדרת ניפוי באגים) ומגדירים את הכרטיסייה Arguments (ארגומנטים) בהגדרת ניפוי הבאגים של Eclipse ל--- package <package to run> instrument
.
ניפוי באגים מרחוק באמצעות Eclipse
כדי לנפות באגים מרחוק בסשן tradefed שהופעל משורת הפקודה tradefed.sh
:
- מריצים את tradefed.sh עם דגל הניפוי:
TF_DEBUG=1 tradefed.sh
- מחכים עד שמופיעה ההנחיה הבאה מ-JVM:
Listening for transport dt_socket at address: 10088
המשמעות היא ש-JVM ממתין לחיבור של מאתר הבאגים ביציאה10088
. - מצרפים באמצעות ניפוי באגים מרחוק של Eclipse מהתפריט הראשי: בוחרים באפשרות Run > Debug Configurations... (הפעלה > הגדרות ניפוי באגים...).
- בתיבת הדו-שיח שקופצת, בוחרים באפשרות Remote Java Application (אפליקציית Java מרוחקת) בתפריט הימני.
- לוחצים על הסמל New launch configuration (הגדרת השקה חדשה) בסרגל הפעולות.
- נותנים שם להגדרה ובוחרים באפשרות tradefederation בתור הפרויקט.
- מאכלסים את הניוד באמצעות הכתובת שסופקה קודם.
- עוברים לכרטיסייה מקור ומוסיפים את הפרויקטים tradefederation ו-google-tradefed אל נתיב החיפוש של המקור.
- לוחצים על Debug (ניפוי באגים) כדי להתחיל את סשן ניפוי הבאגים.
הבאג מתחבר לתהליך ה-JVM שממתין, ובטרמינל שבו מופעלת הפקודה tradefed.sh
מופיעה ההנחיה tf>
.
כדי להריץ את הקוד במצב ניפוי באגים, מגדירים נקודת עצירה ב-Eclipse ומפעילים את פקודת Tradefed (למשל, run <test>
) במסוף. כדי לנפות באגים בכל דבר במהלך ההפעלה של TF, אפשר להגדיר קודם את נקודת העצירה ואז לצרף את כלי ניפוי הבאגים של Eclipse.
טיפ: כדי להשתמש ביציאה חלופית, מוסיפים את TF_DEBUG_PORT=nnn
לפקודה בשלב 1 שלמעלה. אפשר אפילו להשתמש בזה בסביבת ייצור אם יש באגים מסתוריים של תקיעת המערכת שצריך לחקור: משנים את suspend=y
ל-suspend=n
ב-tradefed.sh
ומתחילים עם דגל ניפוי הבאגים. מכונת ה-JVM לא תמתין שמנקה הבאגים יצרף אותה, אבל אפשר לעשות זאת בכל שלב כל עוד התהליך עדיין פועל.
ניפוי באגים מרחוק באמצעות JDB
כדי להשתמש בכלי לניפוי באגים ב-Java (JDB), צריך לבצע שלבים דומים לאלה של Eclipse:
- מפעילים את
tradefed.sh
עם דגל ניפוי הבאגים:TF_DEBUG=1 tradefed.sh
- מחכים עד שמופיעה ההנחיה מ-JVM:
Listening for transport dt_socket at address: 10088
. מתחברים אל
jdb
. לדוגמה, מהפלט של croot:jdb -attach 10088 \ -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
מחכים לחיבור ומתחילים בניפוי הבאגים. לקבלת עזרה נוספת, מריצים את הפקודה
man jdb
.
בדיקת רמת הכיסוי של הקוד
- מתקינים את הפלאגין Eclemma.
- עוברים אל Help > Install New Software (עזרה > התקנת תוכנה חדשה) ומפנים את האשף אל: http://update.eclemma.org/
- אחרי ההתקנה, בוחרים באפשרות הבדיקה Coverage As > JUnit כדי להריץ בדיקה של כיסוי קוד.