Перезагрузите приложение React Native на устройстве Android вручную через командную строку

Я бы хотел вручную принудительно перенаправить приложение "Обновление моего приложения React Native" без физического встряхивания устройства. (Я получаю кистевой туннель.)

Я знаю, что Live Reload/Hot Reload доступны. Я ищу решение командной строки по запросу.

Ответ 1

С помощью строки cmd вы можете отправить команду на устройство Android.

adb shell input text "RR"

Эта команда сообщает устройству Android ввести символ "R" дважды, который является командой React Native для перезагрузки на Android.

Команда adb shell имеет много полезных функций, многие из которых описаны здесь:

События ввода-вывода в ADB

Чтобы открыть меню разработчика:

adb shell input keyevent 82

Ответ 2

Я использую следующую команду. Он не перезагружает приложение, но вызывает меню разработчика на устройстве, поэтому я могу нажать кнопку "Обновить":

adb shell input keyevent KEYCODE_MENU

Я разрабатываю с помощью реального устройства (а не эмулятора), и отправка "double-R" через adb не работает (он просто показывает клавиатуру и типы 2 Rs).

Ответ 3

Просто разместите его здесь, если вы не знаете этого трюка

нажмите кнопку меню в устройстве Android. Тогда вы получите это меню

коснитесь опции перезагрузки, и вы хорошо пойдете

Ответ 4

Добавьте следующий скрипт в ваш package.json:

    "android-shake": "adb shell input keyevent 82"

Тогда вы сможете позвонить

yarn android-shake

Если вы ищете IOS, проверьте мой ответ по этой ссылке

Ответ 5

Один из способов - добавить эту команду в профиль ~/.bashrc, если вы используете unix.

  1. используйте ваш любимый редактор (например, nano в Ubuntu) и наберите nano ~/.bashrc
  2. в конце файла напишите alias rnreload='adb shell input text "RR"'
  3. сохраните его и запустите source ~/.bashrc, чтобы активировать его.
  4. Теперь, когда вам нужно, просто наберите на терминале rnreload.

В следующий раз, когда вы войдете в свой компьютер, это должно быть уже сделано.

Также есть возможность добавить другой псевдоним: alias rnshake='adb shell input keyevent 82' который "встряхивает" android. Вы можете использовать его для доступа к другим командам, таким как "Горячая перезагрузка", "Отладчик", "Инспектор" и т.д.

Ответ 6

Создал сценарий autohotkey для перезагрузки и открытия меню с помощью сочетаний клавиш.

   ^+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, чтобы открыть меню dev

Ответ 7

для физического устройства вы можете встряхнуть ваше устройство для In In Developer Menu оттуда вы можете получить доступ к параметрам, чтобы перезагрузить и сделать другие вещи

для доступа к эмулятору Ctrl + m В App Developer Menu оттуда вы можете перезагрузить или просто нажмите R + R

Ответ 8

Для устройства вам просто нужно потрясти ваше устройство, после чего появится меню, поэтому нажмите "Перезагрузить".

Ответ 9

To reload react-native build on ios Simulator press "command + R"
To reload react-native build on android emulator press "command + M"
To reload react-native build on android device just shake the device.

Ответ 10

Если вы работаете на Mac и используете Hammerspoon, вы можете добавить следующий ~/.hammerspoon/init.lua кода в файл ~/.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 в вашем терминале запущен which adb чтобы определить точный путь к adb. (в моем случае это был /Users/peter/Library/Android/sdk/platform-tools/adb).

Теперь вы можете перезагрузить свое приложение, используя ctrl+cmd+R и показать меню разработчика, используя ctrl+option+cmd+R где угодно и даже не потрудившись выйти на cmd-tab из вашего любимого редактора!