วิธีเขียนโค้ดใน Android Studio จากอุปกรณ์ใด ๆ ด้วย JetBrains Projector

click fraud protection

กำลังมองหาโค้ดจากระยะไกลใน Android Studio หรือไม่? ลองใช้ JetBrains Projector วิธีที่ดีที่สุดในการรัน IntelliJ IDE ของ JetBrains บนอุปกรณ์ใดๆ

JetBrains เป็นบริษัทที่อยู่เบื้องหลัง IDE ที่ได้รับความนิยมสูงสุดบางส่วน รวมถึง IntelliJ IDEA, PyCharm และ PhpStorm แม้แต่ Android Studio ซึ่งเป็น IDE ภายในองค์กรของ Google สำหรับการพัฒนา Android ก็ยังใช้ IntelliJ

ในขณะที่ IDE ของ IntelliJ นั้นได้รับความนิยมด้วยเหตุผลบางประการ ดี) อาจหนักเล็กน้อยในบางครั้ง IntelliJ และ Android Studio สามารถใช้ทรัพยากรได้มากมายเพียงแค่เปิดไว้ เป็นต้น และถ้าคุณกำลังรวบรวมอะไรบางอย่าง พวกมันก็จะยิ่งใช้มากขึ้นไปอีก คุณยัง (ยัง) ไม่สามารถรันสิ่งต่าง ๆ ของ JetBrains บนอุปกรณ์มือถือได้จริง ๆ เนื่องจาก JetBrains ไม่มีบิวด์ ARM ที่เข้าถึงได้ง่าย

แล้วจะเกิดอะไรขึ้นถ้าคุณไม่มีคอมพิวเตอร์ที่ทรงพลัง หรือคุณไม่มีคอมพิวเตอร์ด้วยซ้ำ? โดยปกติแล้ว ที่นี่จะเป็นที่ที่คุณจะมองหา IDE อื่นๆ ที่ทำงานบน ARM ได้ แต่ JetBrains ก็มีวิธีแก้ปัญหา และเรียกว่า JetBrains Projector

โปรเจ็กเตอร์คืออะไร?

คุณคงเคยได้ยินเกี่ยวกับเดสก์ท็อประยะไกลหรือ VNC มาก่อน ช่วยให้คุณสามารถโต้ตอบแบบกราฟิกกับคอมพิวเตอร์ผ่านเครือข่ายท้องถิ่นหรือแม้แต่อินเทอร์เน็ต JetBrains Projector ทำงานเหมือนกับเดสก์ท็อประยะไกล แต่ไม่มีข้อเสียบางประการ

หากต้องการใช้ JetBrains Projector คุณต้องมีคอมพิวเตอร์บนอินเทอร์เน็ตเพื่อโฮสต์ นี่อาจเป็นอินสแตนซ์ AWS หรือโฮมเซิร์ฟเวอร์ จากนั้นคุณสามารถเชื่อมต่อได้จากเบราว์เซอร์ที่รองรับ รวมถึง Chrome และ Firefox บนมือถือ

แต่แทนที่จะแสดงทั้งเดสก์ท็อปและส่งฟีดวิดีโอกลับไปยังไคลเอ็นต์ที่เชื่อมต่อ JetBrains Projector ส่งข้อมูลที่จำเป็นสำหรับไคลเอนต์เพื่อแสดง IDE ราวกับว่ากำลังแสดงอยู่ ในท้องถิ่น ซึ่งหมายความว่าไม่มีการบีบอัดหรือปรับขนาดความละเอียด ดังนั้น IDE จึงดูเกือบจะเป็นธรรมชาติ

นอกจากนี้ JetBrains Projector ไม่ได้จำกัดอยู่เพียง JetBrains IDE อย่างเป็นทางการเท่านั้น ตราบใดที่คุณมี IDE ที่อิงจาก JetBrains อย่างใกล้ชิด คุณก็สามารถใช้มันกับ JetBrains Projector ได้ ซึ่งรวมถึง Android Studio

ทำไมต้องโปรเจ็กเตอร์?

เหตุผลหลักที่สุดที่คุณอาจต้องการพัฒนาจากระยะไกลคือสิ่งที่ฉันได้พูดถึงไปแล้วในบทนำ: จะเกิดอะไรขึ้นถ้าคุณไม่มีคอมพิวเตอร์ที่ใช้ x86 ที่ทรงพลัง? คุณสามารถซื้อเครื่องกึ่งทรงพลังสำหรับงานพัฒนาโดยเฉพาะ หรือคุณสามารถหมุนเซิร์ฟเวอร์คลาวด์และใช้ JetBrains Projector

นอกจากนี้ยังมีประโยชน์หากคุณต้องการลดความต้องการทรัพยากรอีกด้วย ตัวอย่างเช่น ฉันมีแล็ปท็อปสำหรับเล่นเกมที่ทรงพลังซึ่งมี i7-9750H และ RAM ขนาด 32GB นั่นเพียงพอสำหรับโครงการขนาดใหญ่ที่ฉันจัดการด้วย แต่ถ้าฉันต้องการทำอย่างอื่นนอกเหนือจากการพัฒนาที่ต้องใช้ทรัพยากรมากเช่นกัน กำลังดู YouTube, เล่นเกมเหรอ? จากนั้นสิ่งต่าง ๆ ก็เริ่มแตกสลาย

แต่ฉันมีเซิร์ฟเวอร์ Ryzen 7 5800X พร้อม RAM ขนาด 32GB ดังนั้นฉันจึงติดตั้ง JetBrains Projector ลงไป ตอนนี้ฉันสามารถเปิดหน้าต่าง Chrome ใหม่และเชื่อมต่อจากแล็ปท็อปของฉันได้โดยไม่ต้องกังวลกับทรัพยากรที่วุ่นวาย เซิร์ฟเวอร์ยังสร้างได้เร็วกว่าแล็ปท็อปของฉันมาก ดังนั้นจึงเป็นสถานการณ์ที่ได้ประโยชน์ทั้งสองฝ่าย

การใช้โปรเจคเตอร์เป็นอย่างไร?

JetBrains Projector ออกแบบมาเพื่อโฮสต์บนเครื่อง Linux ไม่ได้หมายความว่าคุณไม่สามารถรันบน macOS หรือ Windows ด้วย WSL ได้ แต่คุณอาจพบปัญหาแปลก ๆ บางอย่างด้วยเหตุนี้

ในการตั้งค่า สิ่งที่คุณต้องทำคือตรงไปที่ โปรแกรมติดตั้งโปรเจ็กเตอร์ GitHub repo และปฏิบัติตามคำแนะนำที่นั่น พวกเขาจะแนะนำคุณตลอดขั้นตอนการติดตั้งการขึ้นต่อกันและการตั้งค่า IDE มีขั้นตอนการแก้ไขปัญหา WSL บางขั้นตอนหากคุณต้องการ

จากนั้นคุณก็สามารถเชื่อมต่อกับที่อยู่เซิร์ฟเวอร์ของคุณโดยใช้พอร์ตและโทเค็นที่ถูกต้อง (หากคุณตั้งค่าไว้) และตอนนี้คุณมี IDE ที่ทำงานบนอุปกรณ์ของคุณโดยไม่มีการขยายตัวใดๆ

การพัฒนาหุ่นยนต์

ฉันเป็นนักพัฒนา Android ดังนั้นแม้ว่าฉันจะสามารถใช้ IntelliJ IDEA เพื่อการพัฒนาได้ แต่ Android Studio ก็มีแนวโน้มที่จะทำงานได้ดีกว่า แม้ว่า JetBrains Projector จะรองรับ IDE ของบริษัทอื่น แต่ตอนนี้ก็ทำได้ง่ายเพียงแค่ใช้อินเทอร์เฟซบรรทัดคำสั่งในตัวเพื่อดาวน์โหลดและติดตั้ง มันยังคงค่อนข้างง่ายแม้ว่า

หากต้องการใช้ Android Studio กับ JetBrains Projector สิ่งที่คุณต้องทำคือดาวน์โหลดและแตกไฟล์ Android Studio ในที่ที่เหมาะสม จากนั้นคุณสามารถเพิ่มลงในโปรเจ็กเตอร์ได้ด้วยตนเองผ่านทางบรรทัดคำสั่งโดยระบุเส้นทาง

นอกจากนี้ยังมีปัญหาอีกประการหนึ่งเกี่ยวกับการพัฒนา Android และโปรเจคเตอร์: การเรียกใช้แอป คุณสามารถเขียนโค้ดแอปและดูตัวอย่างใน Projector ได้โดยไม่ต้องมีอะไรเพิ่มเติม แต่คุณไม่สามารถใช้โปรแกรมจำลองหรือเชื่อมต่อกับอุปกรณ์จริงเพื่อเรียกใช้และแก้ไขข้อบกพร่องของแอปได้ หรือคุณสามารถ?

เกือบจะเหมือนกับที่ Google คาดหวังว่าสถานการณ์ประเภทนี้จะเกิดขึ้นเนื่องจาก ADB สามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลผ่านทางอินเทอร์เน็ตได้ สิ่งที่ต้องมีคืออุโมงค์ SSH จากไคลเอนต์ไปยังเซิร์ฟเวอร์โปรเจคเตอร์ ฉันตั้งค่า Android Studio บนโปรเจ็กเตอร์ไม่ให้พยายามจัดการ ADB และใช้พอร์ต 5038 จากนั้นฉันก็ใช้ไคลเอนต์ SSH บางประเภท (OpenSSH, plink ฯลฯ ) เพื่อสร้างทันเนลที่ส่งต่อเซิร์ฟเวอร์ ADB ที่ทำงานบนพอร์ต 5037 ไปยังเซิร์ฟเวอร์บนพอร์ต 5038 ง่าย!

สิ่งที่คุณต้องมีคืออุโมงค์ SSH เพื่อการพัฒนา Android ที่เหมาะสม

หากคุณต้องการรายละเอียดเพิ่มเติมเกี่ยวกับวิธีทำให้ Android Studio และ SSH tunneling ทำงาน ลองดูสิ่งนี้ เอกสาร GitHub โดย Joaquim Verges.

หมายเหตุหนึ่งเกี่ยวกับ Android Studio และ IDE ที่ใช้ JetBrains บุคคลที่สามอื่น ๆ: คุณไม่สามารถอัปเดตได้จากหน้าจอโปรเจ็กเตอร์ คุณจะต้องรีโมตเข้าสู่เซิร์ฟเวอร์โดยตรงและอัปเดตจากที่นั่น ตรวจสอบให้แน่ใจว่าอินสแตนซ์โปรเจ็กเตอร์ที่เกี่ยวข้องหยุดทำงานก่อนที่คุณจะดำเนินการ

การพัฒนาระบบปฏิบัติการ Android

เนื่องจาก JetBrains Projector ทำงานในเบราว์เซอร์ และคุณสามารถเชื่อมต่อจากโทรศัพท์ Android ได้ เพื่อเป็นตัวอย่างแบบสุ่ม ฉันจึงอยากลองอะไรบางอย่าง

Android 11 เปิดตัวความสามารถในการ เปิดใช้งาน ADB ไร้สาย โดยตรงจากอุปกรณ์ แม้ว่าผู้ผลิตบางรายจะเปิดเผยการตั้งค่านี้ก่อนหน้านั้น แต่ก็ไม่สามารถใช้งานได้กับอุปกรณ์ที่ผ่านการรับรองจาก Google บางรุ่นตราบใดที่ยังใช้ Android 11 หรือใหม่กว่า แม้ว่าการแก้ไขข้อบกพร่องแบบไร้สายจะใช้จากคอมพิวเตอร์ แต่ก็ไม่จำเป็นต้องเป็นเช่นนั้น

แอพอย่าง ชิซูกุ แสดงให้เห็นว่าเป็นไปได้บน Android 11 ที่จะเชื่อมต่อกับ ADB กับอุปกรณ์ของคุณ...จากอุปกรณ์ของคุณโดยไม่ต้องคำนึงถึงการใช้คอมพิวเตอร์ด้วยซ้ำ แม้ว่า Shizuku จะใช้สิ่งนี้เพื่อให้แอปดำเนินการระดับสูงได้ แต่ฉันคิดว่าคุณคงจะพอเห็นได้ว่าสิ่งนี้กำลังดำเนินไปอย่างไร

ฉันก็เลยสร้างแอพขึ้นมา! ฉันไม่รู้ว่าฉันจะเปิดเผยต่อสาธารณะหรือไม่ แต่มันค่อนข้างง่าย ฉันมีไลบรารี SSH อยู่ในนั้นพร้อมกับไบนารี ARM64 ADB ฉันใช้ไบนารี ADB เพื่อเชื่อมต่อกับอุปกรณ์ที่ฉันใช้ จากนั้นฉันใช้ไลบรารี SSH เพื่อสร้างช่องทางการส่งต่อจากอุปกรณ์ของฉันไปยังเซิร์ฟเวอร์โปรเจคเตอร์ และสุดท้าย ฉันใช้มันเพื่อจัดเก็บและเปิดใช้ URL ของโปรเจ็กเตอร์

แบม พัฒนาสำหรับ Android...จาก Android! ทุกครั้งที่ฉันไม่อยู่บ้านแต่ต้องการพัฒนา Android ฉันก็สามารถนำของฉันออกไปได้ ซัมซุงกาแล็กซี่แท็บ S7 ฉันมีแป้นพิมพ์บลูทูธและเมาส์บลูทูธ (หมายเหตุข้างเคียง: หากคุณใช้โปรเจ็กเตอร์ คุณจะต้องใช้ จริงหรือ ต้องการใช้เมาส์หรือแทร็กแพด มันทำได้ไม่ดีกับการป้อนข้อมูลแบบสัมผัส) ดังนั้นฉันจึงสามารถพัฒนาและแก้ไขข้อบกพร่องโดยไม่จำเป็นต้องเปลี่ยนอุปกรณ์และไม่ต้องพกพาแล็ปท็อปที่หนักกว่ามาก

ปัญหา

JetBrains Projector ยังอยู่ในช่วงเริ่มต้นของการพัฒนา ดังนั้นจึงยังไม่สมบูรณ์แบบ

  1. บางครั้งการตอบสนองต่อสิ่งต่างๆ เช่น การเลื่อนและการลากอาจล่าช้าเล็กน้อย และการควบคุมอาจทำงานผิดพลาดได้
  2. โดยการสุ่ม เมื่อดูโค้ดไลบรารี (ไม่ว่าจะเป็นแบบแยกส่วนหรือในมุมมองต้นฉบับ) น้ำหนักแบบอักษรจะหนักมากและทุกอย่างจะล่าช้า แม้ว่าสิ่งนี้อาจได้รับการแก้ไขแล้วในขณะที่เขียนสิ่งนี้
  3. ปลั๊กอินบางตัวทำงานไม่ถูกต้อง เนื่องจากนี่ไม่ใช่การสตรีมวิดีโอโดยตรง ปลั๊กอินเช่นเบราว์เซอร์แบบฝังจึงไม่แสดงอะไรเลย
  4. ไม่มีการรองรับเซิร์ฟเวอร์ X และอาจจะไม่มีเลย สิ่งนี้อาจทำให้การพัฒนาแอปเดสก์ท็อปและเบราว์เซอร์เป็นเรื่องยาก แต่คุณสามารถใช้อุโมงค์ SSH ที่มีการส่งต่อ X และเซิร์ฟเวอร์ X ในเครื่องได้เสมอ หากคุณต้องการมันจริงๆ
  5. บางครั้งอินเทอร์เฟซถูกล็อคและคุณจำเป็นต้องรีเฟรชหน้าหรือแม้กระทั่งรีสตาร์ทบริการเซิร์ฟเวอร์เพื่อให้กลับมาทำงานได้อีกครั้ง

และยังมีอีกมาก

แต่ทั้งหมดนั่นเป็นตัวแจกไพ่หรือเปล่า? ไม่ใช่สำหรับฉันอย่างแน่นอน ฉันสบายดีอย่างสมบูรณ์กับประสบการณ์ขัดเกลาเล็กน้อย (ฉันใช้ Android Studio Canary) โดยเฉพาะอย่างยิ่ง ถ้ามันหมายความว่าฉันสามารถถ่ายงานการคอมไพล์ทั้งหมดไปยังคอมพิวเตอร์เครื่องอื่นและแม้แต่พัฒนาจากแท็บเล็ตของฉันจากของฉัน ยาเม็ด.

Android Studio ทำงานบน Samsung Galaxy Tab S7 ผ่าน JetBrains Projector

แม้ว่าจะมีปัญหา แต่ฉันก็ยังชอบ JetBrains Projector มาก มันทำให้การพัฒนาจากมือถือเป็นไปได้ ย้ายโหลดทรัพยากรจากเครื่องคอมพิวเตอร์ไปยังเครื่องระยะไกล และมันก็เจ๋งจริงๆ เช่นกัน

ฉันรู้ว่า IDE อื่นๆ เช่น Visual Studio ช่วยให้คุณสามารถถ่ายโอนการคอมไพล์ไปยังคอมพิวเตอร์ระยะไกลได้ แต่ยังคงต้องการให้คุณติดตั้ง IDE และทำงานในเครื่อง

โดยส่วนตัวแล้วฉันรู้สึกตื่นเต้นมากที่ได้เห็นว่า JetBrains Projector ก้าวไปจากจุดนี้อย่างไร เพราะตอนนี้มันน่าทึ่งมากแล้ว หวังว่าพวกเขาจะสามารถแก้ไขปัญหาบางอย่างที่ฉันอธิบายไว้ข้างต้นได้ แต่ถึงตอนนี้ โปรเจ็กเตอร์ควรจะปลอดภัยที่จะใช้สำหรับโปรเจ็กต์ที่พร้อมสำหรับการผลิต

หากคุณต้องการลองใช้ JetBrains Projector ด้วยตัวคุณเอง นี่คือลิงค์อีกครั้ง ไปยังตัวติดตั้งและคู่มือการตั้งค่าเริ่มต้น หากคุณต้องการตั้งค่า Android Studio ในโปรเจคเตอร์ นี่คือลิงค์นั้นอีกครั้ง, เช่นกัน.