Come programmare in Android Studio da qualsiasi dispositivo con JetBrains Projector

Desideri programmare in remoto in Android Studio? Scopri JetBrains Projector, il modo migliore per eseguire IntelliJ IDE di JetBrains su qualsiasi dispositivo.

JetBrains è la società dietro alcuni degli IDE più popolari, tra cui IntelliJ IDEA, PyCharm e PhpStorm. Anche Android Studio, una sorta di IDE interno di Google per lo sviluppo Android, è basato su IntelliJ.

Sebbene gli IDE di IntelliJ siano popolari per un motivo (sono Bene), a volte possono risultare un po' pesanti. IntelliJ e Android Studio possono assorbire molte risorse semplicemente essendo aperti, ad esempio. E se stai compilando qualcosa, ne useranno ancora di più. Inoltre, non puoi (ancora) eseguire realmente materiale JetBrains su dispositivi mobili, poiché JetBrains non dispone di build ARM facilmente accessibili.

Quindi cosa succede se non hai un computer potente o non hai nemmeno un computer? Normalmente, è qui che dovresti cercare altri IDE che funzionano su ARM. Ma JetBrains ha una soluzione e si chiama JetBrains Projector.

Cos'è un proiettore?

Probabilmente hai già sentito parlare di desktop remoto o VNC. Ti consente di interagire graficamente con un computer su una rete locale o anche su Internet. JetBrains Projector funziona un po' come un desktop remoto, ma senza alcuni svantaggi.

Per utilizzare JetBrains Projector, è necessario un computer da qualche parte su Internet per ospitarlo. Potrebbe trattarsi di un'istanza AWS o di un server domestico. Puoi quindi connetterti ad esso da qualsiasi browser supportato, inclusi Chrome e Firefox per dispositivi mobili.

Ma invece di visualizzare un intero desktop e inviarne un feed video a un client connesso, JetBrains Projector invia le informazioni necessarie affinché il client possa visualizzare un IDE come se lo stesse visualizzando localmente. Ciò significa che non c'è alcuna compressione o ridimensionamento della risoluzione, quindi l'IDE sembra quasi nativo.

Inoltre, JetBrains Projector non si limita solo agli IDE JetBrains ufficiali. Finché disponi di un IDE strettamente basato su quello di JetBrains, puoi utilizzarlo con JetBrains Projector. Ciò include Android Studio.

Perché un proiettore?

Il motivo principale per cui potresti voler eseguire lo sviluppo remoto è ciò di cui ho parlato nell'introduzione: cosa succede se non disponi di un potente computer basato su x86? Potresti acquistarne uno semi-potente appositamente per il lavoro di sviluppo, oppure potresti avviare un server cloud e utilizzare JetBrains Projector.

Può anche essere utile se vuoi semplicemente scaricare i requisiti delle risorse. Ad esempio, ho un laptop da gioco piuttosto potente con un i7-9750H e 32 GB di RAM. È abbastanza anche per i grandi progetti di cui mi occupo. Ma se voglio fare qualcos'altro oltre allo sviluppo, anche questo richiede un uso intensivo di risorse, ad esempio guardando YouTube, giocare un gioco? Poi le cose iniziano ad andare a pezzi.

Ma ho un server Ryzen 7 5800X con 32 GB di RAM. Quindi ho installato JetBrains Projector su quello. Ora posso semplicemente aprire una nuova finestra di Chrome e collegarmi ad essa dal mio laptop senza preoccuparmi di destreggiarmi tra le risorse. Inoltre, il server si costruisce molto più velocemente del mio laptop, quindi è una situazione vantaggiosa per tutti.

Com'è usare un proiettore?

JetBrains Projector è pensato per essere ospitato su una macchina Linux. Ciò non significa che non puoi eseguirlo su macOS o su Windows con WSL, ma potresti riscontrare alcuni problemi strani a causa di ciò.

Per configurarlo, tutto ciò che devi fare è andare su Repository GitHub del programma di installazione del proiettore e seguire le istruzioni lì. Ti guideranno attraverso l'installazione delle dipendenze e la configurazione di un IDE. Ci sono anche alcuni passaggi per la risoluzione dei problemi WSL se ne hai bisogno.

Quindi puoi semplicemente connetterti all'indirizzo del tuo server utilizzando la porta e il token corretti (se ne imposti uno) e ora hai un IDE in esecuzione sul tuo dispositivo senza alcun ingombro.

Sviluppo Android

Sono uno sviluppatore Android, quindi anche se potrei utilizzare IntelliJ IDEA per lo sviluppo, Android Studio tende a funzionare meglio. Sebbene JetBrains Projector supporti IDE di terze parti, ora è semplice come utilizzare l'interfaccia della riga di comando integrata per scaricarli e installarli. È ancora piuttosto semplice, però.

Per utilizzare Android Studio con JetBrains Projector, tutto ciò che devi fare è scaricare ed estrarre Android Studio in un posto sensato. Quindi puoi aggiungerlo manualmente a Projector tramite la riga di comando specificando il percorso.

C'è anche un altro problema con lo sviluppo Android e Projector: l'esecuzione di app. Senza nulla in più, puoi codificare app e visualizzare anteprime in Projector, ma non puoi utilizzare un emulatore o connetterti a un dispositivo reale per eseguire effettivamente ed eseguire il debug delle app. O puoi?

È quasi come se Google si aspettasse che si verificasse questo tipo di scenario perché ADB può connettersi a un server remoto tramite Internet. Tutto ciò che serve è un tunnel SSH dal client al server Projector. Ho impostato Android Studio sul proiettore per non provare a gestire ADB e per utilizzare la porta 5038. Quindi utilizzo semplicemente una sorta di client SSH (OpenSSH, plink, ecc.) per creare un tunnel che inoltra il server ADB in esecuzione localmente sulla porta 5037 al server sulla porta 5038. Facile!

Tutto ciò di cui hai bisogno è un tunnel SSH per un corretto sviluppo Android.

Se desideri maggiori dettagli su come far funzionare Android Studio e il tunneling SSH, dai un'occhiata a questo Documento GitHub di Joaquim Verges.

Una nota su Android Studio e altri IDE basati su JetBrains di terze parti: non è possibile aggiornarli dallo schermo del proiettore. Dovrai accedere direttamente al server remoto e aggiornarli da lì. Assicurati che l'istanza del proiettore corrispondente sia arrestata prima di farlo.

Sviluppo Android Android

Dato che JetBrains Projector funziona in un browser e puoi connetterti da qualcosa come un telefono Android, come esempio completamente casuale, volevo provare qualcosa.

Android 11 ha introdotto la possibilità di abilitare ADB wireless direttamente dal dispositivo. Sebbene alcuni produttori abbiano esposto l'impostazione prima di allora, non è disponibile per tutti i dispositivi certificati da Google purché utilizzino Android 11 o versioni successive. Sebbene il debug wireless sia pensato per essere utilizzato da un computer, non è necessario che lo sia.

App come Shizuku dimostrare che su Android 11 è possibile connettersi con ADB al proprio dispositivo...dal proprio dispositivo, senza nemmeno pensare di utilizzare un computer. Sebbene Shizuku lo utilizzi per consentire alle app di eseguire operazioni elevate, penso che probabilmente puoi vedere dove sta andando.

Quindi ho creato un'app! Non so se lo renderò mai pubblico, ma è piuttosto semplice. Ho una libreria SSH al suo interno insieme a un binario ADB ARM64. Utilizzo il binario ADB per connettermi al dispositivo che sto utilizzando, quindi utilizzo la libreria SSH per creare un tunnel di inoltro dal mio dispositivo al server Projector. E infine, lo utilizzo per archiviare e avviare gli URL del proiettore.

Bam, sviluppo per Android...da Android! Ogni volta che non sono a casa ma voglio lavorare sullo sviluppo di Android, posso semplicemente estrarre il mio SamsungGalaxy Tab S7. Ho una tastiera Bluetooth e un mouse Bluetooth (nota a margine: se usi il proiettore, lo farai Veramente desideri utilizzare un mouse o un trackpad. Non funziona bene con l'input touch), quindi posso sviluppare ed eseguire il debug senza dover cambiare dispositivo e senza dover portarmi dietro un laptop molto più pesante.

I problemi

JetBrains Projector è ancora in fase di sviluppo piuttosto iniziale, quindi non è perfetto.

  1. A volte è un po' lento quando si risponde a cose come lo scorrimento e il trascinamento, e i controlli possono diventare instabili.
  2. Casualmente, quando si visualizza il codice della libreria (decompilato o in vista sorgente), il peso del carattere diventa davvero pesante e tutto rallenta. Tuttavia, questo problema potrebbe essere stato risolto al momento della stesura di questo articolo.
  3. Alcuni plugin non funzioneranno correttamente. Poiché non si tratta di un flusso video diretto, i plugin come i browser incorporati semplicemente non visualizzeranno nulla.
  4. Non c'è supporto per il server X e probabilmente non ce ne sarà. Ciò può rendere complicato lo sviluppo di app desktop e browser, ma puoi sempre utilizzare un tunnel SSH con inoltro X e un server X locale se ne hai davvero bisogno.
  5. A volte l'interfaccia si blocca ed è necessario aggiornare la pagina o addirittura riavviare il servizio server per farlo funzionare di nuovo.

E c'è di più.

Ma tutto questo è un rompicapo? Certamente non per me. Mi trovo perfettamente bene con un'esperienza leggermente meno raffinata (dopotutto uso Android Studio Canary), soprattutto se ciò significa che posso scaricare tutto il lavoro di compilazione su un altro computer e persino sviluppare per il mio tablet dal mio tavoletta.

Android Studio in esecuzione su un Samsung Galaxy Tab S7 tramite JetBrains Projector

Nonostante i suoi problemi, mi piace ancora molto JetBrains Projector. Rende possibile lo sviluppo da dispositivi mobili, sposta il carico delle risorse da un computer locale a uno remoto ed è anche davvero fantastico.

So che altri IDE, come Visual Studio, ti consentono di scaricare la compilazione su un computer remoto, ma ciò richiede comunque che l'IDE sia installato e in esecuzione localmente.

Personalmente sono davvero entusiasta di vedere dove andrà JetBrains Projector perché è già piuttosto incredibile in questo momento. Si spera che riescano a risolvere alcuni dei problemi che ho descritto sopra, ma anche adesso Projector dovrebbe essere sicuro da usare per progetti pronti per la produzione.

Se vuoi provare tu stesso il proiettore JetBrains, ecco di nuovo il collegamento alla guida di installazione e alla configurazione iniziale. Se desideri configurare Android Studio nel proiettore, ecco di nuovo quel collegamento, anche.