我如何在 Android 模拟器中 "shake" 一个 Android 设备调出开发菜单来调试我的 React Native 应用程序
How do I "shake" an Android device within the Android emulator to bring up the dev menu to debug my React Native app
我正在开发一个跨平台的 React Native 移动应用程序。我在开发时正在编写 console.log 语句。当我在默认 Android 模拟器中 运行 Android 应用程序时,我想在 Chrome 中看到这些日志记录语句。根据Facebook's docs我只需要"shake the device"。我如何在 Android 模拟器中执行此操作?
To access the in-app developer menu:
On iOS shake the device or press control + ⌘ + z in the simulator.
On Android shake the device or press hardware menu button (available on older >devices and in most of the emulators, e.g. in genymotion you can press ⌘ + m to >simulate hardware menu button click)
在 Android 模拟器的应用程序中,在 macOS 上按 Command + M 或 Ctrl + M 在 Linux 和 Windows.
如果您使用的是 Android Studio 2.0 附带的新模拟器,菜单键的键盘快捷键现在是 Cmd+M,就像在 Genymotion 中一样。
或者,您始终可以在终端中使用 adb
发送菜单按钮:
adb shell input keyevent KEYCODE_MENU
另请注意,菜单按钮快捷方式并非严格要求,它只是 ReactActivity
Java class 提供的默认行为(如果您使用 react-native init
创建了您的项目)。这是 ReactActivity.java
中 onKeyUp
的相关代码:
if (keyCode == KeyEvent.KEYCODE_MENU) {
mReactInstanceManager.showDevOptionsDialog();
return true;
}
如果您要将 React Native 添加到现有应用程序 (documentation here) 而您没有使用 ReactActivity
,则需要以类似的方式连接菜单按钮。您还可以通过任何其他机制调用 ReactInstanceManager.showDevOptionsDialog
。例如,在我正在开发的应用程序中,我添加了一个用于调出菜单的仅限开发人员的操作栏菜单项,因为我发现这比在物理设备上工作时摇动设备更方便。
在模拟器中使用 React Native 运行ning,
按 ctrl+m(Linux,我想 Windows 和 ⌘ 是一样的+m 对于 Mac OS X)
或 运行 终端中的以下内容:
adb shell input keyevent 82
'Ctrl + m' 适用于 Android 模拟器中的 Windows,以调出 React-Native 开发者菜单。
无法在任何地方找到该记录。
找到我的路,猜到剩下的......真可惜。
顺便说一句:OP:你没有提到 OS 你在看什么。
'Command + M' OSX 对我有用。
在 linux 上 ctrl+m 应该有效,但不能解决问题单击 (...)(它的扩展控件)然后关闭 window.now 您可以打开按 ctrl+m 的菜单。然后:
单击 (...)(其扩展控件)
关闭扩展控件
ctrl+m
在 MAC 上使用 command + m(cmd + M)
。还有 make sure that you are accessing your application while you try to access the Debug Menu
即您的应用程序必须 运行 否则 Cmd + M
将只是 return 通常的普通 phone 菜单。
对于 Linux,您单击模拟器旁边的三个点“...”,在虚拟传感器上选中 "Move",然后尝试快速移动 x、y 或 z 坐标。
我在 Mac OS 所以当我按下 Command 时,它会启用缩放选项。
这是我的解决方案
- 打开配置 window [...] 按钮
- 转到
Settings
选项卡 ->General
选项卡 -> Send keyboard shortcuts to
字段
- 如图所示将值改为
Virtual device"
然后将焦点放在模拟器上并按 Command + M,出现开发菜单。
这可能不是直接的解决方案,但我创建了一个库,允许您在开发模式下使用 3 根手指触摸而不是摇动打开开发菜单
https://github.com/pie6k/react-native-dev-menu-on-touch
您只需将您的应用包装在里面:
从 'react-native-dev-menu-on-touch' 导入 DevMenuOnTouch;
// 或:从 'react-native-dev-menu-on-touch'
导入 {DevMenuOnTouch}
class YourRootApp extends Component {
render() {
return (
<DevMenuOnTouch>
<YourApp />
</DevMenuOnTouch>
);
}
}
当你必须在真实设备上调试并且你旁边有同事时,它真的很有用。
我正在尝试通过 adb install -r -d <app-release>.apk
发布 版本
确保您是 运行 调试 构建,然后菜单将通过快捷方式或 CLI 工作。
在开发 React Native 应用程序时,我们经常玩终端
所以我在 package.json 文件
的脚本中添加了一个脚本
"menu": "adb shell input keyevent 82"
然后我点击了 $ yarn menu
用于在模拟器上显示菜单
它会通过 ADB 将键码 82 转发给模拟器
不是最佳方式,但我喜欢它并想分享它。
如果你想从终端模拟 1 秒摇动,你可以执行以下命令:
adb emu sensor set acceleration 100:100:100; sleep 1; adb emu sensor set acceleration 0:0:0
我正在开发一个跨平台的 React Native 移动应用程序。我在开发时正在编写 console.log 语句。当我在默认 Android 模拟器中 运行 Android 应用程序时,我想在 Chrome 中看到这些日志记录语句。根据Facebook's docs我只需要"shake the device"。我如何在 Android 模拟器中执行此操作?
To access the in-app developer menu:
On iOS shake the device or press control + ⌘ + z in the simulator. On Android shake the device or press hardware menu button (available on older >devices and in most of the emulators, e.g. in genymotion you can press ⌘ + m to >simulate hardware menu button click)
在 Android 模拟器的应用程序中,在 macOS 上按 Command + M 或 Ctrl + M 在 Linux 和 Windows.
如果您使用的是 Android Studio 2.0 附带的新模拟器,菜单键的键盘快捷键现在是 Cmd+M,就像在 Genymotion 中一样。
或者,您始终可以在终端中使用 adb
发送菜单按钮:
adb shell input keyevent KEYCODE_MENU
另请注意,菜单按钮快捷方式并非严格要求,它只是 ReactActivity
Java class 提供的默认行为(如果您使用 react-native init
创建了您的项目)。这是 ReactActivity.java
中 onKeyUp
的相关代码:
if (keyCode == KeyEvent.KEYCODE_MENU) {
mReactInstanceManager.showDevOptionsDialog();
return true;
}
如果您要将 React Native 添加到现有应用程序 (documentation here) 而您没有使用 ReactActivity
,则需要以类似的方式连接菜单按钮。您还可以通过任何其他机制调用 ReactInstanceManager.showDevOptionsDialog
。例如,在我正在开发的应用程序中,我添加了一个用于调出菜单的仅限开发人员的操作栏菜单项,因为我发现这比在物理设备上工作时摇动设备更方便。
在模拟器中使用 React Native 运行ning,
按 ctrl+m(Linux,我想 Windows 和 ⌘ 是一样的+m 对于 Mac OS X)
或 运行 终端中的以下内容:
adb shell input keyevent 82
'Ctrl + m' 适用于 Android 模拟器中的 Windows,以调出 React-Native 开发者菜单。
无法在任何地方找到该记录。 找到我的路,猜到剩下的......真可惜。
顺便说一句:OP:你没有提到 OS 你在看什么。
'Command + M' OSX 对我有用。
在 linux 上 ctrl+m 应该有效,但不能解决问题单击 (...)(它的扩展控件)然后关闭 window.now 您可以打开按 ctrl+m 的菜单。然后:
单击 (...)(其扩展控件)
关闭扩展控件
ctrl+m
在 MAC 上使用 command + m(cmd + M)
。还有 make sure that you are accessing your application while you try to access the Debug Menu
即您的应用程序必须 运行 否则 Cmd + M
将只是 return 通常的普通 phone 菜单。
对于 Linux,您单击模拟器旁边的三个点“...”,在虚拟传感器上选中 "Move",然后尝试快速移动 x、y 或 z 坐标。
我在 Mac OS 所以当我按下 Command 时,它会启用缩放选项。 这是我的解决方案
- 打开配置 window [...] 按钮
- 转到
Settings
选项卡 ->General
选项卡 ->Send keyboard shortcuts to
字段 - 如图所示将值改为
Virtual device"
然后将焦点放在模拟器上并按 Command + M,出现开发菜单。
这可能不是直接的解决方案,但我创建了一个库,允许您在开发模式下使用 3 根手指触摸而不是摇动打开开发菜单
https://github.com/pie6k/react-native-dev-menu-on-touch
您只需将您的应用包装在里面:
从 'react-native-dev-menu-on-touch' 导入 DevMenuOnTouch; // 或:从 'react-native-dev-menu-on-touch'
导入 {DevMenuOnTouch}class YourRootApp extends Component {
render() {
return (
<DevMenuOnTouch>
<YourApp />
</DevMenuOnTouch>
);
}
}
当你必须在真实设备上调试并且你旁边有同事时,它真的很有用。
我正在尝试通过 adb install -r -d <app-release>.apk
确保您是 运行 调试 构建,然后菜单将通过快捷方式或 CLI 工作。
在开发 React Native 应用程序时,我们经常玩终端
所以我在 package.json 文件
的脚本中添加了一个脚本"menu": "adb shell input keyevent 82"
然后我点击了 $ yarn menu
用于在模拟器上显示菜单 它会通过 ADB 将键码 82 转发给模拟器 不是最佳方式,但我喜欢它并想分享它。
如果你想从终端模拟 1 秒摇动,你可以执行以下命令:
adb emu sensor set acceleration 100:100:100; sleep 1; adb emu sensor set acceleration 0:0:0