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

时间:2017-05-25 01:43:52

标签: react-native react-native-android

我想按需手动强制重新加载我的React Native应用程序而不会实际摇动设备。 (我正在接受腕管。)

我知道Live Reload / Hot Reload可用。我正在寻找按需命令行解决方案。

8 个答案:

答案 0 :(得分:116)

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

adb shell input text "RR"

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

adb shell命令有许多有用的功能,其中许多都在这里描述:

ADB Shell Input Events

打开开发人员菜单:

adb shell input keyevent 82

答案 1 :(得分:10)

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

adb shell input keyevent KEYCODE_MENU

我使用真实设备(不是模拟器)进行开发,通过adb发送“double-R”不起作用(它只显示键盘并输入2个R)。

答案 2 :(得分:10)

只是在这里张贴它,以防您不知道这个窍门

长按Android设备中的菜单按钮。然后您将获得此菜单

点击重新加载选项,您就很好了

答案 3 :(得分:4)

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

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

然后您就可以拨打电话

yarn android-shake

如果您正在寻找ios,请在此link

上查看我的答案

答案 4 :(得分:2)

一种技巧是,如果您使用的是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。您可以使用它来访问其他命令,例如热重载,调试器,检查器等。

答案 5 :(得分: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打开开发人员菜单

答案 6 :(得分:0)

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

答案 7 :(得分:0)

如果您使用的是Mac操作系统,并且使用Hammerspoon,则可以在您的myRecyclerView.setItemViewCacheSize(200); myRecyclerView.setDrawingCacheEnabled(true); myRecyclerView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH); 文件中放入以下代码:

~/.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) 命令不会加载您的ENV(这样做会使运行命令的速度变慢),因此请确保在终端中运行os.execute以找出到达{{的确切路径1}}是。 (在我的情况下是which adb)。

现在,您可以使用adb重新加载您的应用程序,并使用/Users/peter/Library/Android/sdk/platform-tools/adb来显示开发菜单,而无需担心从您喜欢的编辑器中退出cmd-tab!