Android Studio'da uzaktan kod yazmak mı istiyorsunuz? JetBrains'in IntelliJ IDE'sini herhangi bir cihazda çalıştırmanın en iyi yolu olan JetBrains Projektörüne göz atın.
JetBrains, IntelliJ IDEA, PyCharm ve PhpStorm gibi en popüler IDE'lerden bazılarının arkasındaki şirkettir. Google'ın Android geliştirme için şirket içi IDE'si olan Android Studio bile IntelliJ'i temel alıyor.
IntelliJ'in IDE'lerinin popüler olmasının bir nedeni var (onlar iyi), bazen biraz ağır olabilirler. Örneğin IntelliJ ve Android Studio, yalnızca açık olduklarında çok fazla kaynak tüketebilir. Ve eğer bir şey derliyorsanız, daha da fazlasını kullanacaklar. Ayrıca JetBrains'in kolayca erişilebilen ARM yapılarına sahip olmaması nedeniyle JetBrains işlemlerini mobil cihazlarda (henüz) gerçekten çalıştıramazsınız.
Peki güçlü bir bilgisayarınız yoksa, hatta bir bilgisayarınız bile yoksa ne olur? Normalde ARM üzerinde çalışan diğer IDE'leri arayacağınız yer burasıdır. Ancak JetBrains'in bir çözümü var ve buna JetBrains Projektörü deniyor.
Projektör nedir?
Muhtemelen daha önce uzak masaüstünü veya VNC'yi duymuşsunuzdur. Yerel bir ağ ve hatta internet üzerinden bir bilgisayarla grafiksel olarak etkileşime girmenizi sağlar. JetBrains Projektörü biraz uzak masaüstü gibi çalışır ancak bazı dezavantajları yoktur.
JetBrains Projektörü kullanmak için, İnternet üzerinde bir yerde onu barındıracak bir bilgisayara ihtiyacınız vardır. Bu bir AWS örneği veya ev sunucusu olabilir. Daha sonra mobil Chrome ve Firefox da dahil olmak üzere desteklenen herhangi bir tarayıcıdan bağlanabilirsiniz.
Ancak masaüstünün tamamını görüntülemek ve bunun video akışını bağlı bir istemciye geri göndermek yerine, JetBrains Projektörü, istemcinin bir IDE'yi görüntülüyormuşçasına görüntülemesi için gereken bilgileri gönderir. yerel olarak. Bu, herhangi bir sıkıştırma veya çözünürlük ölçeklendirmesinin olmadığı anlamına gelir; dolayısıyla IDE neredeyse yerel görünür.
Ayrıca JetBrains Projector yalnızca resmi JetBrains IDE'leriyle sınırlı değildir. JetBrains'inkine yakın bir IDE'ye sahip olduğunuz sürece, onu JetBrains Projektör ile kullanabilirsiniz. Buna Android Studio da dahildir.
Neden projektör?
Uzaktan geliştirme yapmak istemenizin en büyük nedeni, girişte bahsettiğim şeydir: Peki ya güçlü bir x86 tabanlı bilgisayarınız yoksa? Özellikle geliştirme çalışmaları için yarı güçlü bir tane satın alabilir veya bir bulut sunucusunu çalıştırıp JetBrains Projektörünü kullanabilirsiniz.
Yalnızca kaynak gereksinimlerini boşaltmak istiyorsanız da yararlı olabilir. Mesela i7-9750H ve 32GB RAM'e sahip oldukça güçlü bir oyun dizüstü bilgisayarım var. Bu, uğraştığım büyük projeler için bile fazlasıyla yeterli. Ancak geliştirmenin yanı sıra kaynak yoğun olan başka bir şey yapmak istersem, örneğin YouTube'u izlemek, oyun oynamak? Daha sonra işler dağılmaya başlar.
Ancak içinde 32 GB RAM bulunan bir Ryzen 7 5800X sunucum var. Bunun üzerine JetBrains Projector'ı kurdum. Artık yeni bir Chrome penceresi açıp, kaynaklarla uğraşma endişesi duymadan dizüstü bilgisayarımdan ona bağlanabiliyorum. Sunucu ayrıca dizüstü bilgisayarımdan çok daha hızlı oluşuyor, dolayısıyla bu bir kazan-kazan durumu.
Projektör nasıl kullanılır?
JetBrains Projektörünün bir Linux makinesinde barındırılması amaçlanmıştır. Bu, onu macOS'ta veya Windows'ta WSL ile çalıştıramayacağınız anlamına gelmez, ancak bu nedenle bazı tuhaf sorunlarla karşılaşabilirsiniz.
Kurulumu yapmak için tek yapmanız gereken Projektör Yükleyicisi GitHub deposu ve oradaki talimatları izleyin. Bağımlılıkların kurulması ve bir IDE kurulumunun yapılması konusunda size yol gösterecekler. İhtiyacınız olursa bazı WSL sorun giderme adımları bile vardır.
Daha sonra doğru bağlantı noktasını ve belirteci (eğer ayarladıysanız) kullanarak sunucu adresinize bağlanabilirsiniz ve artık cihazınızda herhangi bir şişkinlik olmadan çalışan bir IDE'ye sahip olursunuz.
Android Geliştirme
Ben bir Android geliştiricisiyim, dolayısıyla geliştirme için IntelliJ IDEA'yı kullanabilsem de Android Studio daha iyi çalışma eğiliminde. JetBrains Projector üçüncü taraf IDE'leri desteklese de, bunları indirmek ve yüklemek artık yerleşik komut satırı arayüzünü kullanmak kadar basit. Yine de oldukça basit.
Android Studio'yu JetBrains Projector ile kullanmak için tek yapmanız gereken Android Studio'yu indirip uygun bir yere çıkarmaktır. Daha sonra yolu belirterek komut satırı aracılığıyla Projektör'e manuel olarak ekleyebilirsiniz.
Android geliştirme ve Projektör ile ilgili başka bir sorun daha var: uygulamaları çalıştırmak. Ekstra bir şey olmadan, Projector'da uygulamaları kodlayabilir ve önizlemeleri görüntüleyebilirsiniz, ancak uygulamaları gerçekten çalıştırmak ve hata ayıklamak için bir öykünücü kullanamaz veya gerçek bir cihaza bağlanamazsınız. Yoksa yapabilir misin?
ADB İnternet üzerinden uzak bir sunucuya bağlanabildiği için Google'ın bu tür bir senaryonun gerçekleşmesini beklediği neredeyse söylenebilir. Tek gereken, istemciden Projektör sunucusuna bir SSH tünelidir. Projektördeki Android Studio'yu ADB'yi yönetmeye çalışmayacak ve 5038 numaralı bağlantı noktasını kullanacak şekilde ayarladım. Daha sonra, 5037 numaralı bağlantı noktasında yerel olarak çalışan ADB sunucusunu 5038 numaralı bağlantı noktasındaki sunucuya ileten bir tünel oluşturmak için yalnızca bir tür SSH istemcisi (OpenSSH, plink vb.) kullanıyorum. Kolay!
Android Studio ve SSH tünellemenin nasıl çalıştırılacağı hakkında daha fazla ayrıntı istiyorsanız buna göz atın GitHub belgesi Joaquim Verges'in yazısı.
Android Studio ve diğer üçüncü taraf JetBrains tabanlı IDE'ler hakkında bir not: Bunları Projektör ekranından güncelleyemezsiniz. Doğrudan sunucuya uzaktan bağlanmanız ve bunları oradan güncellemeniz gerekir. Bunu yapmadan önce ilgili Projektör örneğinin durdurulduğundan emin olun.
Android Android Geliştirme
JetBrains Projektörü bir tarayıcıda çalıştığından ve Android telefon gibi bir şeyden bağlanabildiğinizden, tamamen rastgele bir örnek olarak, bir şey denemek istedim.
Android 11 şu özelliği tanıttı: kablosuz ADB'yi etkinleştir doğrudan cihazdan. Bazı üreticiler bu ayarı daha önce kullanıma sunmuş olsa da, bu özellik, Android 11 veya sonraki sürümlere sahip oldukları sürece tüm Google sertifikalı cihazlarda mevcut değildir. Kablosuz hata ayıklamanın bir bilgisayardan kullanılması amaçlanmış olsa da, böyle olması gerekmez.
Şuna benzer uygulamalar Şizuku Android 11'de, bilgisayar kullanmayı düşünmeden bile cihazınızdan ADB ile cihazınıza bağlanmanın mümkün olduğunu gösterin. Shizuku bunu uygulamaların yükseltilmiş işlemleri yürütmesine izin vermek için kullanırken, bunun nereye varacağını muhtemelen görebileceğinizi düşünüyorum.
Bu yüzden bir uygulama yaptım! Bunu halka açıklayabilir miyim bilmiyorum ama oldukça basit. İçinde bir ARM64 ADB ikili dosyasıyla birlikte bir SSH kitaplığım var. Kullandığım cihaza bağlanmak için ADB ikili programını kullanıyorum, ardından cihazımdan Projektör sunucusuna bir yönlendirme tüneli oluşturmak için SSH kitaplığını kullanıyorum. Son olarak projektör URL'lerini depolamak ve başlatmak için kullanıyorum.
Bam, Android için geliştiriyor...Android'den! Ne zaman evde olmasam da Android geliştirme çalışmaları yapmak istersem, Samsung Galaxy Tab S7. Bir Bluetooth klavyem ve bir Bluetooth farem var (dip not: Projektör kullanıyorsanız, Gerçekten Fare veya izleme dörtgeni kullanmak istiyorsanız. Dokunmatik girişle pek iyi olmuyor), bu yüzden cihazları değiştirmeye gerek kalmadan ve çok daha ağır bir dizüstü bilgisayarı yanımda taşımaya gerek kalmadan geliştirme ve hata ayıklama yapabiliyorum.
Sorunlar
JetBrains Projector henüz oldukça erken bir geliştirme aşamasında olduğundan mükemmel değil.
- Bazen kaydırma ve sürükleme gibi işlemlere yanıt verirken biraz yavaş olabiliyor ve kontroller sorunlu olabiliyor.
- Rastgele olarak, kitaplık kodunu görüntülerken (derlenmiş veya kaynak görünümde), yazı tipi ağırlığı gerçekten ağırlaşıyor ve her şey gecikiyor. Ancak bu, bunu yazarken düzeltilmiş olabilir.
- Bazı eklentiler düzgün çalışmayacaktır. Bu doğrudan bir video akışı olmadığından, yerleşik tarayıcılar gibi eklentiler hiçbir şey görüntülemez.
- X sunucu desteği yok ve muhtemelen olmayacak. Bu, masaüstü ve tarayıcı uygulamaları geliştirmeyi zorlaştırabilir, ancak gerçekten ihtiyacınız varsa her zaman X yönlendirmeli bir SSH tüneli ve yerel bir X sunucusu kullanabilirsiniz.
- Bazen arayüz kilitlenir ve sayfayı yenilemeniz, hatta tekrar çalışması için sunucu hizmetini yeniden başlatmanız gerekir.
Ve dahası da var.
Ama bütün bunlar anlaşmayı bozuyor mu? Kesinlikle benim için değil. Biraz daha az gösterişli bir deneyim konusunda gayet iyiyim (sonuçta Android Studio Canary kullanıyorum), özellikle eğer bu, tüm derleme işini başka bir bilgisayara aktarabileceğim ve hatta tabletim için geliştirme yapabileceğim anlamına geliyorsa tablet.
Sorunlarına rağmen JetBrains Projektörü gerçekten çok seviyorum. Mobil cihazlardan geliştirmeyi mümkün kılıyor, kaynak yükünü yerel bir bilgisayardan uzaktaki bir bilgisayara taşıyor ve aynı zamanda gerçekten harika.
Visual Studio gibi diğer IDE'lerin derlemeyi uzaktaki bir bilgisayara aktarmanıza izin verdiğini biliyorum, ancak bu yine de IDE'nin yerel olarak kurulu ve çalışır durumda olmasını gerektiriyor.
JetBrains Projektörünün buradan nereye gideceğini görmek beni şahsen gerçekten heyecanlandırıyor çünkü şu anda zaten oldukça inanılmaz. Umarım yukarıda anlattığım sorunlardan bazılarını çözebileceklerdir, ancak şimdi bile Projector'ın üretime hazır projeler için kullanılması güvenli olmalıdır.
JetBrains Projektörünü kendiniz denemek istiyorsanız, işte link yine kurulumcuya ve ilk kurulum kılavuzuna başvurun. Projector'da Android Studio'yu kurmak istiyorsanız, işte yine o link, ilave olarak.