Želite kodirati na daljavo v Android Studiu? Oglejte si JetBrains Projector, najboljši način za zagon JetBrains IntelliJ IDE v kateri koli napravi.
JetBrains je podjetje, ki stoji za nekaterimi najbolj priljubljenimi IDE-ji, vključno z IntelliJ IDEA, PyCharm in PhpStorm. Tudi Android Studio, nekakšen Googlov interni IDE za razvoj Androida, temelji na IntelliJ.
Čeprav so IDE IntelliJ priljubljeni z razlogom (so dobro), včasih so lahko nekoliko težki. IntelliJ in Android Studio lahko na primer zavzameta veliko virov že samo zato, ker sta odprta. In če nekaj sestavljate, bodo uporabili še več. Prav tako (še) ne morete zares izvajati stvari JetBrains na mobilnih napravah, ker JetBrains nima lahko dostopnih gradenj ARM.
Kaj se torej zgodi, če nimate zmogljivega računalnika ali pa sploh nimate računalnika? Običajno bi tukaj iskali druge IDE-je, ki delujejo na ARM. Toda JetBrains ima nekako rešitev in imenuje se JetBrains Projector.
Kaj je projektor?
Verjetno ste že slišali za oddaljeno namizje ali VNC. Omogoča vam grafično interakcijo z računalnikom prek lokalnega omrežja ali celo interneta. Projektor JetBrains deluje podobno kot oddaljeno namizje, vendar brez nekaterih pomanjkljivosti.
Če želite uporabljati projektor JetBrains, potrebujete računalnik nekje v internetu, da ga gostite. To je lahko primerek AWS ali domači strežnik. Nato se lahko z njim povežete iz katerega koli podprtega brskalnika, vključno z mobilnim Chromom in Firefoxom.
Toda namesto prikaza celotnega namizja in pošiljanja video vira tega nazaj povezanemu odjemalcu, Projektor JetBrains pošlje informacije, potrebne za odjemalca, da prikaže IDE, kot da bi prikazoval lokalno. To pomeni, da ni nobenega stiskanja ali skaliranja ločljivosti, zato je IDE videti skoraj izvirno.
Poleg tega JetBrains Projector ni omejen samo na uradne JetBrains IDE. Dokler imate IDE, ki temelji na IDE iz JetBrains, ga lahko uporabljate z JetBrains Projector. To vključuje Android Studio.
Zakaj projektor?
Največji razlog, da bi morda želeli razvijati na daljavo, je tisto, o čemer sem govoril v uvodu: Kaj pa, če nimate zmogljivega računalnika, ki temelji na x86? Lahko kupite polzmogljivega posebej za razvojno delo ali pa zavrtite strežnik v oblaku in uporabite projektor JetBrains.
Uporabno je lahko tudi, če želite samo razbremeniti zahteve po virih. Na primer, imam precej zmogljiv igralni prenosnik z i7-9750H in 32 GB RAM-a. To je dovolj tudi za velike projekte, s katerimi se ukvarjam. Če pa želim poleg razvoja narediti še kaj drugega, kar zahteva tudi veliko virov, npr gledanje YouTuba, igraš igro? Potem se stvari začnejo podirati.
Vendar imam strežnik Ryzen 7 5800X z 32 GB RAM-a v njem. Zato sem na to namestil projektor JetBrains. Zdaj lahko samo odprem novo okno Chroma in se z njim povežem iz svojega prenosnika, ne da bi me skrbelo žongliranje z viri. Strežnik se prav tako gradi veliko hitreje kot moj prenosnik, tako da je v tem primeru zmagovalka.
Kako je z uporabo projektorja?
JetBrains Projector naj bi gostoval na računalniku Linux. To ne pomeni, da ga ne morete zagnati v macOS ali Windows z WSL, vendar lahko zaradi tega naletite na čudne težave.
Če ga želite nastaviti, se morate le odpraviti na Repo za namestitev projektorja GitHub in sledite tamkajšnjim navodilom. Vodili vas bodo skozi namestitev odvisnosti in nastavitev IDE. Obstaja celo nekaj korakov za odpravljanje težav z WSL, če jih potrebujete.
Nato se lahko preprosto povežete z naslovom strežnika s pravilnimi vrati in žetonom (če ste ga nastavili) in zdaj imate IDE, ki teče v vaši napravi brez kakršnih koli napihnjenosti.
Razvoj za Android
Sem razvijalec za Android, tako da čeprav bi lahko uporabil IntelliJ IDEA za razvoj, Android Studio običajno deluje bolje. JetBrains Projector sicer podpira IDE-je tretjih oseb, vendar je zdaj tako preprosto, kot da jih prenesete in namestite z vgrajenim vmesnikom ukazne vrstice. Še vedno pa je precej preprosto.
Če želite uporabljati Android Studio s projektorjem JetBrains Projector, morate le prenesti in izvleči Android Studio na smiselno mesto. Nato ga lahko ročno dodate v projektor prek ukazne vrstice, tako da podate pot.
Pri razvoju za Android in projektorju obstaja še ena težava: izvajanje aplikacij. Brez česarkoli dodatnega lahko kodirate aplikacije in si ogledujete predoglede v Projectorju, vendar ne morete uporabiti emulatorja ali se povezati z resnično napravo, da bi dejansko izvajali aplikacije in odpravljali napake. Ali lahko?
Skoraj tako, kot bi Google pričakoval, da se bo zgodil takšen scenarij, ker se ADB lahko poveže z oddaljenim strežnikom prek interneta. Vse, kar potrebujete, je tunel SSH od odjemalca do strežnika Projector. Android Studio na projektorju sem nastavil tako, da ne poskuša upravljati ADB in uporablja vrata 5038. Nato preprosto uporabim neke vrste odjemalca SSH (OpenSSH, plink itd.), da ustvarim tunel, ki posreduje strežnik ADB, ki deluje lokalno na vratih 5037, na strežnik na vratih 5038. enostavno!
Če želite več podrobnosti o tem, kako vzpostaviti delovanje tuneliranja Android Studio in SSH, si oglejte to Dokument GitHub avtorja Joaquim Verges.
Ena opomba o Android Studiu in drugih programih IDE tretjih oseb, ki temeljijo na JetBrains: ne morete jih posodobiti z zaslona projektorja. Na daljavo se boste morali povezati neposredno s strežnikom in jih od tam posodobiti. Prepričajte se, da je ustrezni primerek projektorja ustavljen, preden to storite.
Razvoj za Android Android
Ker JetBrains Projector deluje v brskalniku in se lahko povežete iz nečesa podobnega telefonu Android, sem kot povsem naključen primer želel nekaj poskusiti.
Android 11 je predstavil možnost omogoči brezžično ADB neposredno iz naprave. Medtem ko so nekateri proizvajalci to nastavitev izpostavili že pred tem, ni na voljo za vse naprave s certifikatom Google, če uporabljajo Android 11 ali novejši. Čeprav je brezžično odpravljanje napak namenjeno uporabi iz računalnika, ni nujno, da je.
Aplikacije, kot so Shizuku pokažite, da je v sistemu Android 11 mogoče vzpostaviti povezavo z ADB z vašo napravo... iz vaše naprave, ne da bi sploh pomislili na uporabo računalnika. Medtem ko Shizuku uporablja to, da aplikacijam omogoči izvajanje povišanih operacij, mislim, da verjetno vidite, kam to pelje.
Tako sem naredil aplikacijo! Ne vem, ali bom to kdaj objavil, a je precej preprosto. V njem imam knjižnico SSH skupaj z dvojiško datoteko ARM64 ADB. Za povezavo z napravo, ki jo uporabljam, uporabljam binarno datoteko ADB, nato pa s knjižnico SSH ustvarim tunel za posredovanje iz svoje naprave v strežnik Projector. In končno, uporabljam ga za shranjevanje in zagon URL-jev projektorjev.
Bam, razvoj za Android... iz Androida! Kadarkoli me ni doma, vendar se želim ukvarjati z razvojem Androida, lahko preprosto vzamem svojega Samsung Galaxy Tab S7. Imam tipkovnico Bluetooth in miško Bluetooth (opomba: če uporabljate projektor, boste res želite uporabiti miško ali sledilno ploščico. Z vnosom na dotik se ne obnese dobro), tako da lahko razvijam in odpravljam napake, ne da bi bilo treba zamenjati napravo in ne da bi moral s seboj vlačiti veliko težji prenosnik.
Težave
Projektor JetBrains je še vedno v precej zgodnjem razvoju, zato ni popoln.
- Včasih je pri odzivanju na stvari, kot sta pomikanje in vlečenje, malo zaostaja, in kontrolniki lahko postanejo šibki.
- Naključno, ko si ogledujete kodo knjižnice (bodisi dekompilirano ali v izvornem pogledu), teža pisave postane zelo velika in vse zaostaja. Morda je bilo to popravljeno v času pisanja tega.
- Nekateri vtičniki ne bodo delovali pravilno. Ker to ni neposreden videotok, vtičniki, kot so vdelani brskalniki, preprosto ne bodo prikazali ničesar.
- Podpore za strežnik X ni in je verjetno tudi ne bo. To lahko oteži razvoj namiznih in brskalnikskih aplikacij, vendar lahko vedno uporabite tunel SSH s posredovanjem X in lokalni strežnik X, če ga res potrebujete.
- Včasih se vmesnik zaklene in morate osvežiti stran ali celo znova zagnati strežniško storitev, da ponovno deluje.
In še več je.
Toda ali je vse to prelomno? Zame zagotovo ne. Popolnoma mi ustreza nekoliko manj uglajena izkušnja (navsezadnje uporabljam Android Studio Canary). če to pomeni, da lahko vse kompilacijsko delo prenesem na drug računalnik in celo razvijem za svojo tablico iz svojega tablični računalnik.
Kljub težavam mi je projektor JetBrains še vedno zelo všeč. Omogoča razvoj iz mobilnih naprav, premakne obremenitev virov z lokalnega računalnika na oddaljenega in je prav tako zelo kul.
Vem, da drugi IDE-ji, kot je Visual Studio, omogočajo prenos prevajanja na oddaljeni računalnik, vendar to še vedno zahteva, da imate IDE nameščen in zagnan lokalno.
Osebno sem zelo navdušen, da vidim, kam gre projektor JetBrains od tukaj, ker je že zdaj precej neverjetno. Upajmo, da jim bo uspelo odpraviti nekatere težave, ki sem jih opisal zgoraj, vendar bi moralo biti projektor že zdaj varno za uporabo v projektih, pripravljenih za produkcijo.
Če želite projektor JetBrains preizkusiti sami, tukaj je spet povezava do namestitvenega programa in vodnika za začetno namestitev. Če želite nastaviti Android Studio v projektorju, evo spet tista povezava, prav tako.