מחפש לקודד מרחוק ב-Android Studio? בדוק את JetBrains Projector, הדרך הטובה ביותר להפעיל את IntelliJ IDE של JetBrains בכל מכשיר.
JetBrains היא החברה מאחורי כמה מה-IDEs הפופולריים ביותר, כולל IntelliJ IDEA, PyCharm ו- PhpStorm. אפילו אנדרואיד סטודיו, ה-IDE הפנימי של גוגל לפיתוח אנדרואיד, מבוסס על IntelliJ.
בעוד שה-IDEs של IntelliJ פופולריים מסיבה מסוימת (הם טוֹב), הם יכולים להיות מעט כבדים לפעמים. IntelliJ ו-Android Studio יכולים לתפוס משאבים רבים רק מעצם היותם פתוחים, למשל. ואם אתה מחבר משהו, הם הולכים להשתמש אפילו יותר. אתה גם לא באמת יכול (עדיין) להריץ דברים של JetBrains במכשירים ניידים, מכיוון של-JetBrains אין רכיבי ARM נגישים בקלות.
אז מה קורה אם אין לך מחשב חזק, או אפילו אין לך מחשב? בדרך כלל, זה יהיה המקום שבו תחפשו IDEs אחרים שכן עובדים על ARM. אבל ל-JetBrains יש פתרון, והוא נקרא JetBrains Projector.
מה זה מקרן?
בטח שמעתם על שולחן עבודה מרוחק או VNC בעבר. זה מאפשר לך לקיים אינטראקציה גרפית עם מחשב דרך רשת מקומית או אפילו אינטרנט. JetBrains Projector עובד קצת כמו שולחן עבודה מרוחק, אבל בלי כמה מהחסרונות.
כדי להשתמש במקרן JetBrains, אתה צריך מחשב איפשהו באינטרנט כדי לארח אותו. זה יכול להיות מופע AWS או שרת ביתי. לאחר מכן תוכל להתחבר אליו מכל דפדפן נתמך, כולל Chrome ו-Firefox ניידים.
אבל במקום להציג שולחן עבודה שלם ולשלוח עדכון וידאו שלו בחזרה ללקוח מחובר, JetBrains Projector שולח את המידע הדרוש ללקוח כדי להציג IDE כאילו הוא מוצג באופן מקומי. זה אומר שאין קנה מידה של דחיסה או רזולוציה, כך שה-IDE נראה כמעט מקורי.
כמו כן, JetBrains Projector אינו מוגבל רק ל-IDEs הרשמיים של JetBrains. כל עוד יש לך IDE שמבוסס באופן הדוק על אחד מ-JetBrains, אתה יכול להשתמש בו עם JetBrains Projector. זה כולל אנדרואיד סטודיו.
למה מקרן?
הסיבה הגדולה ביותר שאולי תרצה לעשות פיתוח מרחוק היא מה שדיברתי עליה בהקדמה: מה אם אין לך מחשב חזק מבוסס x86? אתה יכול לקנות אחד חזק למחצה במיוחד לעבודות פיתוח, או שאתה יכול לסובב שרת ענן ולהשתמש במקרן JetBrains.
זה יכול להיות שימושי גם אם אתה רק רוצה להוריד את דרישות המשאבים. לדוגמה, יש לי מחשב נייד גיימינג די חזק עם i7-9750H ו-32GB של זיכרון RAM. זה מספיק אפילו לפרויקטים הגדולים שאני עוסק בהם. אבל אם אני רוצה לעשות משהו אחר בנוסף לפיתוח זה גם עתיר משאבים, כמו צופה ביוטיוב, משחק משחק? ואז דברים מתחילים להתפרק.
אבל יש לי שרת Ryzen 7 5800X עם 32GB של זיכרון RAM בתוכו. אז התקנתי על זה JetBrains Projector. עכשיו אני יכול פשוט לפתוח חלון Chrome חדש ולהתחבר אליו מהמחשב הנייד שלי בלי לדאוג להטוטנות במשאבים. השרת גם בונה הרבה יותר מהר מהמחשב הנייד שלי, אז זה מצב של win-win.
איך השימוש במקרן?
JetBrains Projector נועד להתארח במחשב לינוקס. זה לא אומר שאתה לא יכול להפעיל אותו ב-macOS או ב-Windows עם WSL, אבל אתה עלול להיתקל בכמה בעיות מוזרות בגלל זה.
כדי להגדיר אותו, כל מה שאתה צריך לעשות הוא לגשת אל מתקין מקרנים ריפו של GitHub ופעל לפי ההוראות שם. הם ידריכו אותך בהתקנת התלות והגדרת IDE. יש אפילו כמה שלבי פתרון בעיות WSL אם אתה צריך אותם.
אז אתה יכול פשוט להתחבר לכתובת השרת שלך באמצעות היציאה והאסימון הנכונים (אם אתה מגדיר כזה), ועכשיו יש לך IDE שרץ במכשיר שלך ללא כל הנפיחות.
פיתוח אנדרואיד
אני מפתח אנדרואיד, אז בעוד שיכולתי להשתמש ב-IntelliJ IDEA לפיתוח, אנדרואיד סטודיו נוטה לעבוד טוב יותר. בעוד JetBrains Projector אכן תומך ב-IDE של צד שלישי, כעת זה פשוט כמו שימוש בממשק שורת הפקודה המובנה כדי להוריד ולהתקין אותם. עם זאת, זה עדיין די פשוט.
כדי להשתמש ב-Android Studio עם JetBrains Projector, כל מה שאתה צריך לעשות הוא להוריד ולחלץ את Android Studio במקום הגיוני. לאחר מכן תוכל להוסיף אותו באופן ידני למקרן דרך שורת הפקודה על ידי ציון הנתיב.
יש גם בעיה נוספת בפיתוח אנדרואיד ובמקרן: הפעלת אפליקציות. ללא שום דבר נוסף, אתה יכול לקודד אפליקציות ולצפות בתצוגות מקדימות ב-Projector, אך אינך יכול להשתמש באמולטור או להתחבר למכשיר אמיתי כדי להפעיל ולאפות באגים באפליקציות. או שאתה יכול?
זה כמעט כמו שגוגל ציפתה שתרחיש כזה יקרה מכיוון ש-ADB יכול להתחבר לשרת מרוחק דרך האינטרנט. כל מה שצריך הוא מנהרת SSH מהלקוח לשרת המקרן. הגדרתי את Android Studio במקרן כך שלא ינסה לנהל את ADB ולהשתמש ביציאה 5038. אז אני פשוט משתמש באיזה לקוח SSH (OpenSSH, plink וכו') כדי ליצור מנהרה שמעבירה את שרת ADB הפועל באופן מקומי ביציאה 5037 לשרת ביציאה 5038. קַל!
אם אתה רוצה פרטים נוספים על איך לגרום ל-Android Studio ולמנהור SSH לעבוד, בדוק את זה מסמך GitHub מאת Joaquim Verges.
הערה אחת לגבי Android Studio ו-IDEs אחרים מבוססי JetBrains של צד שלישי: לא ניתן לעדכן אותם ממסך המקרן. תצטרך להיכנס ישירות לשרת מרחוק ולעדכן אותם משם. ודא שמופע המקרן המתאים נעצר לפני שתעשה זאת.
פיתוח אנדרואיד לאנדרואיד
מכיוון ש-JetBrains Projector פועל בדפדפן, ואתה יכול להתחבר ממשהו כמו טלפון אנדרואיד, כדוגמה אקראית לחלוטין, רציתי לנסות משהו.
אנדרואיד 11 הציגה את היכולת אפשר ADB אלחוטי ישירות מהמכשיר. בעוד שחלק מהיצרנים חשפו את ההגדרה לפני כן, היא לא זמינה עבור כל המכשירים שאושרו על ידי Google כל עוד הם ב-Android 11 ואילך. אמנם ניפוי באגים אלחוטי נועד לשמש ממחשב, אבל זה לא חייב להיות.
אפליקציות כמו שיזוקו הדגימו שאפשר ב-Android 11 להתחבר עם ADB למכשיר שלכם...מהמכשיר שלכם, אפילו בלי לחשוב על שימוש במחשב. בעוד שיזוקו משתמש בזה כדי לאפשר לאפליקציות להפעיל פעולות גבוהות, אני חושב שאתה כנראה יכול לראות לאן זה הולך.
אז הכנתי אפליקציה! אני לא יודע אם אי פעם אפרסם את זה ברבים, אבל זה די פשוט. יש לי ספריית SSH יחד עם ARM64 ADB בינארי. אני משתמש בבינארי ADB כדי להתחבר למכשיר שבו אני משתמש, ואז אני משתמש בספריית SSH כדי ליצור מנהרת העברה מהמכשיר שלי לשרת המקרן. ולבסוף, אני משתמש בו כדי לאחסן ולהפעיל כתובות URL של מקרן.
Bam, מפתחת לאנדרואיד...מאנדרואיד! בכל פעם שאני לא בבית אבל אני רוצה לקבל קצת עבודת פיתוח של אנדרואיד, אני יכול פשוט להוציא את שלי Samsung Galaxy Tab S7. יש לי מקלדת בלוטות' ועכבר בלוטות' (הערה: אם אתה משתמש במקרן, אתה בֶּאֱמֶת רוצה להשתמש בעכבר או משטח עקיבה. זה לא מסתדר עם קלט מגע), אז אני יכול לפתח ולבצע ניפוי באגים בלי צורך להחליף התקנים ובלי לסחוב מחשב נייד הרבה יותר כבד.
בעיות
JetBrains Projector עדיין בפיתוח די מוקדם, כך שהוא לא מושלם.
- לפעמים זה קצת מפגר כשמגיבים לדברים כמו גלילה וגרירה, והפקדים יכולים להשתבש.
- באופן אקראי, כאשר צופים בקוד הספרייה (או מפורק או בתצוגת מקור), משקל הגופן נהיה ממש כבד והכל משתגר. עם זאת, ייתכן שזה תוקן נכון לכתיבת שורות אלה.
- תוספים מסוימים לא יפעלו כראוי. מכיוון שזה לא זרם וידאו ישיר, תוספים כמו הדפדפנים המשובצים פשוט לא יציגו כלום.
- אין תמיכה בשרת X, וכנראה שלא תהיה כזו. זה יכול להקשות על פיתוח אפליקציות שולחן עבודה ודפדפן, אבל אתה תמיד יכול להשתמש במנהרת SSH עם העברת X ושרת X מקומי אם אתה באמת צריך את זה.
- לפעמים הממשק ננעל ואתה צריך לרענן את הדף או אפילו להפעיל מחדש את שירות השרת כדי לגרום לו לעבוד שוב.
ויש עוד.
אבל האם כל זה פורץ עסקות? בטח לא בשבילי. אני בסדר גמור עם חוויה קצת פחות מלוטשת (אני משתמש ב-Android Studio Canary, אחרי הכל), במיוחד אם זה אומר שאני יכול להוריד את כל עבודת הקומפילציה למחשב אחר ואפילו לפתח לטאבלט שלי מהמחשב שלי לוּחַ.
אפילו עם הבעיות שלו, אני עדיין מאוד אוהב את JetBrains Projector. זה מאפשר פיתוח ממובייל, זה מעביר עומס משאבים ממחשב מקומי למחשב מרוחק, וזה גם פשוט ממש מגניב.
אני יודע ש-IDEs אחרים, כמו Visual Studio, מאפשרים לך להוריד קומפילציה למחשב מרוחק, אבל זה עדיין מחייב אותך להתקין את ה-IDE ולהפעיל אותו באופן מקומי.
אני אישית ממש נרגש לראות לאן JetBrains Projector הולך מכאן כי זה כבר די מדהים כרגע. אני מקווה שהם יוכלו לתקן כמה מהבעיות שתיארתי לעיל, אבל אפילו עכשיו, Projector אמור להיות בטוח לשימוש עבור פרויקטים מוכנים לייצור.
אם אתה רוצה לנסות את מקרן JetBrains בעצמך, הנה הקישור שוב למתקין ולמדריך ההתקנה הראשוני. אם אתה רוצה להגדיר את Android Studio במקרן, הנה הקישור הזה שוב, גם כן.