通过命令行手动在Android设备上重新加载React Native应用


72

我想按需手动强制重新加载我的React Native应用程序,而无需物理摇动设备。(我要去腕管。)

我知道可以使用实时刷新/热刷新。我正在寻找按需命令行解决方案。

Answers:


180

使用cmd行,您可以将命令发送到Android设备。

adb shell input text "RR"

此命令告诉Android设备键入两次字符“ R”,这是要在Android上重新加载的React Native命令。

adb shell命令具有许多有用的功能,其中许多功能在此处介绍:

ADB Shell输入事件

要打开开发者菜单:

adb shell input keyevent 82

3
对于第一个命令有问题的任何人(在诸如文本输入不能无法集中的情况下),可以选择adb shell "input keyevent 82 && input keyevent 66 && input keyevent 66"。它在开发人员菜单中手动点击“重新加载”
Jonny

如果您同时运行2台设备,并且不允许您运行任何adb简单的命令,则可以执行以下操作:adb -s <device nane> shell input text "RR"
Rondev

22

如果您不知道此技巧,只需在此处发布

长按Android设备中的菜单按钮。然后你会得到这个菜单

点击重新加载选项,您就可以开始了


4
我的Android手机没有菜单按钮。我的设备有其他选择吗?
Kiran Chenna '18

4
只需摇动设备即可。好就好。它将显示您的重新加载选项。如果没有,再次用力摇动。
Osman Gani Khan Masum

“如何在不摇晃设备的情况下重新加载?” @OsmanGaniKhanMasum:“只需摇动设备即可。”
Slbox

您可以仅通过设置启用“硬重载”。这很容易。
Osman Gani Khan Masum

15

我使用以下命令。它不会重新加载应用程序,但是会在设备上弹出开发者菜单,因此我可以按“重新加载”选项:

adb shell input keyevent KEYCODE_MENU

我使用真实设备(而不是仿真器)进行开发,并且通过adb发送“ double-R”不起作用(它仅显示键盘并键入2 Rs)。


2
这很有趣,因为我也在真实设备上进行开发,并且“ double-R”确实重新加载了应用程序。如果键盘已经打开,它将打印“ RR”,但是如果键盘已经关闭,它将重新加载。也许我的回答太笼统了,并且无法在所有设备上使用?
brettlaforge

@brettlaforge我是本地人的新手,但我可能会猜测某些应用可能对按键感到贪婪,而不仅仅是不同的设备。您的答案对我在Android上有效,谢谢!
Reed Spool

13

将以下脚本添加到package.json中:

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

这样您就可以打电话了

yarn android-shake

如果您正在寻找ios,请在此链接上查看我的答案


5

一种技巧是在使用UNIX的情况下,将此命令添加到〜/ .bashrc配置文件中。

  1. 使用您喜欢的编辑器(例如:Ubuntu上的nano)并输入 nano ~/.bashrc
  2. 在文件末尾写 alias rnreload='adb shell input text "RR"'
  3. 保存并运行source ~/.bashrc以激活它。
  4. 现在,只要您需要,只需rnreload在终端上键入即可。

下次输入计算机时,应该已经完成​​了。

另外,还可以添加其他别名:alias rnshake='adb shell input keyevent 82'“摇动” android。您可以使用它来访问其他命令,例如热重载,调试器,检查器等。


1

制作了一个自动热键脚本,使用键盘快捷键重新加载并打开菜单。

   ^+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

如果您使用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!


0

对于设备,您只需要摇动设备即可看到一个菜单,因此请单击“重新加载”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.