我想按需手动强制重新加载我的React Native应用程序而不会实际摇动设备。 (我正在接受腕管。)
我知道Live Reload / Hot Reload可用。我正在寻找按需命令行解决方案。
答案 0 :(得分:116)
使用cmd行,您可以向Android设备发送命令。
adb shell input text "RR"
此命令告诉Android设备两次输入字符“R”,这是在Android上重新加载的React Native命令。
adb shell
命令有许多有用的功能,其中许多都在这里描述:
打开开发人员菜单:
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配置文件中添加此命令。
nano ~/.bashrc
alias rnreload='adb shell input text "RR"'
source ~/.bashrc
才能激活它。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!