web-dev-qa-db-ja.com

ReactネイティブアプリをAndroidデバイスにコマンドライン経由で手動でリロードします

デバイスを物理的に揺さぶることなく、オンデマンドで手動でReactネイティブアプリのリロードを強制したいのですが。 (手根管を取得しています。)

ライブリロード/ホットリロードが利用可能であることを知っています。オンデマンドのコマンドラインソリューションを探しています。

60
brettlaforge

Cmd行を使用して、Androidデバイスにコマンドを送信できます。

adb Shell input text "RR"

このコマンドは、Androidデバイスに文字「R」を2回入力するように指示します。これは、AndroidでリロードするReact Nativeコマンドです。

adb Shellコマンドには多くの便利な機能があり、その多くについてここで説明します。

ADBシェル入力イベント

開発者メニューを開くには:

adb Shell input keyevent 82
141
brettlaforge

このトリックを知らなかった場合に備えて、ここに投稿してください

メニューボタンを長押し Androidデバイス。次に、このメニューを取得します

リロードオプションをタップで準備完了

15
vighnesh s

次のコマンドを使用します。アプリはリロードされませんが、デバイスのデベロッパーメニューが表示されるため、[リロード]オプションを押すことができます。

adb Shell input keyevent KEYCODE_MENU

私は実際のデバイス(エミュレーターではない)で開発し、adbを介して "double-R"を送信しても機能しません(キーボードを表示し、2つのRを入力するだけです)。

11
Xavier

Package.jsonに次のスクリプトを追加します。

    "Android-shake": "adb Shell input keyevent 82"

その後、あなたは呼び出すことができます

yarn Android-shake

IOSを探しているなら、これについての私の答えをチェックアウトしてください link

7
Francois Nadeau

UNIXを使用している場合は、このコマンドを〜/ .bashrcプロファイルに追加するのがコツです。

  1. お気に入りのエディター(例:Ubuntuのnano)を使用して、nano ~/.bashrcと入力します
  2. ファイルの終わりにalias rnreload='adb Shell input text "RR"'を書き込みます
  3. それを保存してアクティブにするためにsource ~/.bashrcを実行します。
  4. 必要なときはいつでも、端末でrnreloadと入力するだけです。

次回コンピュータにアクセスするときは、すでに完了しているはずです。

また、他のエイリアスを追加する可能性もあります:Androidを「揺さぶる」alias rnshake='adb Shell input keyevent 82'。これを使用して、Hot Reloading、Debugger、Inspectorなどの他のコマンドにアクセスできます。

3
Filipe

キーボードショートカットでメニューをリロードして開くための自動ホットキースクリプトを作成しました。

   ^+r::  run, %comspec% /c adb Shell input text "RR",,hide  
   ^+e::  run, %comspec% /c adb Shell input keyevent 82,,hide

ctrl + shift + rを押してctrl + shift + eをリロードし、開発メニューを開きます

1
Yarden Hochman

Macで Hammerspoon を使用している場合、~/.hammerspoon/init.luaファイルに次のコードを挿入できます。

hyper = {'ctrl', 'alt', 'cmd'}
placid = {'ctrl', 'cmd'}

-- React native reload JS on connected device
hs.hotkey.bind(placid, 'R', function()
  os.execute('/Users/peter/Library/Android/sdk/platform-tools/adb Shell input text "RR"')
end)

-- React native show dev menu on connected device
hs.hotkey.bind(hyper, 'R', function()
  os.execute('/Users/peter/Library/Android/sdk/platform-tools/adb Shell input keyevent 82')
end)

os.executeコマンドはENVをロードしません(そうすると、コマンドの実行が非常に遅くなります)。端末でwhich adbを実行して、adbへの正確なパスを確認してください。です。 (私の場合は/Users/peter/Library/Android/sdk/platform-tools/adbでした)。

これで、ctrl+cmd+Rを使用してアプリをリロードし、ctrl+option+cmd+Rを使用して、お気に入りのエディターからcmd-tabに煩わされることなく、devメニューを表示できます。

0
HendrikPetertje

デバイスの場合、メニューが表示されるよりもデバイスを振るだけなので、[再読み込み]をクリックします。

0
Asma_Kh