JetBrains プロジェクターを使用して任意のデバイスから Android Studio でコーディングする方法

click fraud protection

Android Studio でリモートでコーディングしたいと考えていますか? JetBrains の IntelliJ IDE をあらゆるデバイスで実行するための最良の方法である JetBrains Projector をチェックしてください。

JetBrains は、IntelliJ IDEA、PyCharm、PhpStorm などの最も人気のある IDE を開発している会社です。 Android 開発用の Google の社内 IDE のような Android Studio でさえ、IntelliJ に基づいています。

IntelliJ の IDE が人気があるのには理由があります ( 良い)、少し重くなる場合があります。 たとえば、IntelliJ と Android Studio は、開いているだけで多くのリソースを消費する可能性があります。 そして、何かをコンパイルする場合は、さらに多くのものが使用されるでしょう。 また、JetBrains には簡単にアクセスできる ARM ビルドがないため、実際にモバイル デバイスで JetBrains のものを実行することは (まだ) できません。

では、強力なコンピューターを持っていない場合、またはコンピューターさえ持っていない場合はどうなるでしょうか? 通常、ここで ARM 上で動作する他の IDE を探すことになります。 しかし、JetBrains には一種の解決策があり、それは JetBrains Projector と呼ばれています。

プロジェクターとは何ですか?

おそらく、リモート デスクトップまたは VNC について聞いたことがあるでしょう。 これを使用すると、ローカル ネットワークまたはインターネットを介してコンピュータとグラフィカルに対話できます。 JetBrains Projector はリモート デスクトップと少し似ていますが、いくつかの欠点はありません。

JetBrains プロジェクターを使用するには、それをホストするコンピューターがインターネット上のどこかに必要です。 これは、AWS インスタンスまたはホーム サーバーである可能性があります。 その後、モバイル Chrome や Firefox など、サポートされているブラウザから接続できるようになります。

ただし、デスクトップ全体を表示して、そのビデオ フィードを接続されているクライアントに送り返すのではなく、 JetBrains プロジェクターは、クライアントが IDE を表示しているかのように、IDE を表示するために必要な情報を送信します。 地元で。 これは、圧縮や解像度のスケーリングがないことを意味するため、IDE はほぼネイティブに見えます。

また、JetBrains Projector は公式の JetBrains IDE だけに限定されません。 JetBrains の IDE に厳密に基づいた IDE を持っている限り、それを JetBrains Projector で使用できます。 これには Android Studio も含まれます。

なぜプロジェクターなのか?

リモート開発を行う最大の理由は、冒頭でお話しした「強力な x86 ベースのコンピューターがない場合はどうすればよいでしょうか?」ということです。 開発作業専用に半強力なものを購入することもできますし、クラウド サーバーを起動して JetBrains Projector を使用することもできます。

リソース要件を軽減したいだけの場合にも役立ちます。 たとえば、私は i7-9750H と 32 GB の RAM を搭載した非常に強力なゲーム用ラップトップを持っています。 私が扱う大規模なプロジェクトでもこれで十分です。 しかし、開発に加えてリソースを大量に消費する何か他のこともやりたい場合は、次のようになります。 YouTubeを見る、 ゲームをしている? その後、物事は崩壊し始めます。

しかし、私は32GBのRAMを搭載したRyzen 7 5800Xサーバーを持っています。 そこで、JetBrains Projectorをそこにインストールしました。 これで、リソースのやりくりを気にすることなく、新しい Chrome ウィンドウを開いてラップトップからそれに接続できるようになりました。 また、サーバーは私のラップトップよりもはるかに高速に構築できるため、双方にとって有利な状況です。

プロジェクターの使い方はどうですか?

JetBrains Projector は、Linux マシンでホストされることを目的としています。 これは、macOS または Windows で WSL を使用して実行できないという意味ではありませんが、そのために奇妙な問題が発生する可能性があります。

セットアップするには、次の場所にアクセスするだけです。 プロジェクター インストーラー GitHub リポジトリ そこにある指示に従ってください。 依存関係のインストールと IDE のセットアップについて説明します。 必要に応じて、WSL のトラブルシューティング手順もいくつかあります。

その後、正しいポートとトークン (設定している場合) を使用してサーバー アドレスに接続するだけで、肥大化することなくデバイス上で IDE を実行できるようになります。

Android開発

私は Android 開発者なので、IntelliJ IDEA を開発に使用することもできますが、Android Studio の方がうまく機能する傾向があります。 JetBrains Projector はサードパーティの IDE をサポートしていますが、組み込みのコマンドライン インターフェイスを使用してダウンロードしてインストールするのと同じくらい簡単になりました。 それでもかなりシンプルです。

JetBrains Projector で Android Studio を使用するには、Android Studio を適切な場所にダウンロードして抽出するだけです。 その後、コマンド ラインからパスを指定して手動でプロジェクターに追加できます。

Android 開発と Projector には、アプリの実行という別の問題もあります。 何も追加せずに、Projector でアプリをコーディングしたりプレビューを表示したりすることはできますが、エミュレーターを使用したり、実際のデバイスに接続してアプリを実際に実行したりデバッグしたりすることはできません。 それともできますか?

ADB はインターネット経由でリモート サーバーに接続できるため、Google はこの種のシナリオが起こることを予想していたかのようです。 必要なのは、クライアントからプロジェクター サーバーへの SSH トンネルだけです。 プロジェクターの Android Studio を、ADB の管理を試行せず、ポート 5038 を使用するように設定しました。 次に、ある種の SSH クライアント (OpenSSH、plink など) を使用して、ポート 5037 でローカルに実行されている ADB サーバーをポート 5038 のサーバーに転送するトンネルを作成します。 簡単!

適切な Android 開発に必要なのは、SSH トンネルだけです。

Android Studio と SSH トンネリングを機能させる方法の詳細が必要な場合は、これを確認してください。 GitHub ドキュメント ジョアキン・ベルジェス著。

Android Studio およびその他のサードパーティ製 JetBrains ベースの IDE に関する注意点: プロジェクター画面からは更新できません。 サーバーに直接リモート接続し、そこから更新する必要があります。 実行する前に、対応するプロジェクター インスタンスが停止していることを確認してください。

Android Android開発

JetBrains Projector はブラウザ上で動作し、Android スマートフォンなどからも接続できるので、まったくランダムな例ですが、何か試してみたかったのです。

Android 11 では、次の機能が導入されました。 ワイヤレス ADB を有効にする デバイスから直接。 一部のメーカーはそれ以前に設定を公開していましたが、Android 11 以降を搭載している限り、すべての Google 認定デバイスで利用できるわけではありません。 ワイヤレス デバッグはコンピューターから使用することを目的としていますが、必ずしもそうである必要はありません。

のようなアプリ しずく Android 11 では、コンピューターの使用を意識せずに、デバイスから ADB を使用してデバイスに接続できることを示しています。 Shizuku はこれを使用してアプリに昇格された操作を実行させますが、これがどのような方向に向かうのかはおそらくおわかりいただけると思います。

ということでアプリを作りました! 公開するかどうかはわかりませんが、非常に簡単です。 ARM64 ADB バイナリとともに SSH ライブラリが入っています。 ADB バイナリを使用して使用しているデバイスに接続し、SSH ライブラリを使用してデバイスからプロジェクター サーバーへの転送トンネルを作成します。 最後に、これを使用してプロジェクターの URL を保存および起動します。

Bam、Android 向けに開発中...Android から! 家にいないけど Android 開発の仕事をしたいときはいつでも、すぐに持ち出すことができます。 サムスンギャラクシータブS7。 Bluetooth キーボードと Bluetooth マウスを持っています (補足: プロジェクターを使用している場合は、 本当に マウスまたはトラックパッドを使用したい。 タッチ入力はうまく機能しないため)、デバイスを切り替える必要がなく、より重いラップトップを持ち歩く必要もなく、開発とデバッグができます。

問題点

JetBrains Projector はまだ開発初期段階にあるため、完璧ではありません。

  1. スクロールやドラッグなどの反応に少し遅れが生じ、コントロールが不安定になることがあります。
  2. ランダムに、ライブラリ コード (逆コンパイルまたはソース ビュー) を表示すると、フォントのウェイトが非常に重くなり、すべてが遅れます。 ただし、これを書いている時点では修正されている可能性があります。
  3. 一部のプラグインは正しく動作しません。 これは直接のビデオ ストリームではないため、埋め込みブラウザなどのプラグインでは何も表示されません。
  4. X サーバーのサポートはありませんし、今後もサポートされない可能性があります。 これにより、デスクトップ アプリやブラウザ アプリの開発が難しくなる可能性がありますが、本当に必要な場合は、X 転送とローカル X サーバーを備えた SSH トンネルをいつでも使用できます。
  5. 場合によっては、インターフェイスがロックアップし、ページを更新するか、サーバー サービスを再起動して再度動作させる必要がある場合があります。

さらにあります。

しかし、それはすべて取引の妨げになるのでしょうか? 確かに私には当てはまりません。 多少洗練されていないエクスペリエンスでもまったく問題ありません (結局のところ、私は Android Studio Canary を使用しています)。 それが意味するのであれば、すべてのコンパイル作業を別のコンピューターにオフロードし、タブレット用に開発することもできます。 タブレット。

JetBrains プロジェクター経由で Samsung Galaxy Tab S7 上で実行されている Android Studio

問題はありますが、私は今でも JetBrains Projector が大好きです。 これにより、モバイルからの開発が可能になり、リソースの負荷がローカル コンピューターからリモート コンピューターに移動され、また非常に優れています。

Visual Studio などの他の IDE ではコンパイルをリモート コンピューターにオフロードできることは知っていますが、その場合でも IDE をローカルにインストールして実行する必要があります。

JetBrains Projector は現時点ですでに非常に素晴らしいものになっているため、個人的には今後の展開に非常に興奮しています。 うまくいけば、上で説明した問題のいくつかは解決されるでしょうが、現時点でも、Projector は本番環境のプロジェクトに安全に使用できるはずです。

JetBrains プロジェクターを自分で試してみたい場合は、 ここにもう一度リンクがあります インストーラーと初期セットアップガイドへ。 プロジェクターで Android Studio をセットアップする場合は、 ここにもう一度そのリンクがあります、 同じように。