Как "встряхнуть" устройство Android в эмуляторе Android, чтобы вызвать меню dev для отладки моего приложения React Native

Я работаю над кросс-платформенным мобильным приложением React Native. Я пишу инструкции console.log по мере развития. Я хочу видеть эти инструкции регистрации в Chrome, пока я запускаю приложение Android в эмуляторе Android по умолчанию. Согласно Facebook docs Мне просто нужно "встряхнуть устройство". Как это сделать в эмуляторе Android?

Для доступа к меню приложений в приложении:

В iOS встряхните устройство или нажмите кнопку управления + ⌘ + z в симуляторе. На Android встряхните устройство или нажмите кнопку меню аппаратного обеспечения (доступно на старых > устройствах и в большинстве эмуляторов, например, в режиме genymotion вы можете нажать ⌘ + m, чтобы > имитировать нажатие кнопки меню оборудования)

Ответ 1

В приложении в эмуляторе Android нажмите Command + M в OSX или Ctrl + M в Linux и Windows.

Ответ 2

С инициативой React, запущенной в эмуляторе,
Нажмите ctrl + m (для Linux, я полагаю, это то же самое для Windows и + m для Mac OS X) или запустите в терминале следующее:

adb shell input keyevent 82

Ответ 3

Если вы используете новый эмулятор, который поставляется с Android Studio 2.0, сочетание клавиш для клавиши меню теперь является Cmd + M, как в Genymotion.

В качестве альтернативы вы всегда можете отправить кнопку меню с помощью adb в терминале:

adb shell input keyevent KEYCODE_MENU

Также обратите внимание, что ярлык кнопки меню не является строгим требованием, это просто поведение по умолчанию, предоставляемое классом ReactActivity Java (который используется по умолчанию, если вы создали свой проект с помощью react-native init). Здесь соответствующий код из onKeyUp в ReactActivity.java:

if (keyCode == KeyEvent.KEYCODE_MENU) {
  mReactInstanceManager.showDevOptionsDialog();
  return true;
}

Если вы добавляете React Native в существующее приложение (здесь, здесь), и вы не используете ReactActivity, вам нужно подключить меню Аналогичным образом. Вы также можете вызвать ReactInstanceManager.showDevOptionsDialog через любой другой механизм. Например, в приложении, над которым я работаю, я добавил элемент меню "Экран" только для Dev-only, который вызывает меню, так как я считаю, что это более удобно, чем встряхивание устройства при работе на физическом устройстве.

Ответ 4

"Ctrl + m" работает для Windows в эмуляторе Android, чтобы открыть меню разработчика React-Native.

Не удалось найти документацию в любом месте. Найденный здесь путь, догадался, остальное... Хорошее горе.

Кстати: OP: Вы не указали, на какой ОС вы были.

Ответ 5

'Command + M' для OSX работает для меня.

Ответ 6

Используйте command + m(cmd + M) на MAC. Также make sure that you are accessing your application while you try to access the Debug Menu т.е. ваше приложение должно работать, иначе Cmd + M просто вернет обычное меню обычного телефона.

Ответ 7

в Linux Ctrl + M должен работать, но это не для решения проблемы, нажмите на (...) (его расширенные элементы управления), а затем закройте это окно. Теперь вы можете открыть меню с помощью Ctrl + M. затем:

  1. нажмите на (...) (его расширенные элементы управления)

  2. закрыть расширенные элементы управления

  3. Ctrl + M

Ответ 8

В Linux вы нажимаете на три точки "..." рядом с эмулятором, на "Виртуальных датчиках" отмечаете "Переместить" и затем пытаетесь быстро переместить координаты x, y или z.

enter image description here

Ответ 9

Я нахожусь на Mac OS, поэтому, когда я нажимаю Command, включается опция масштабирования. Вот мое решение

  • Кнопка Открыть окно конфигурации [...]
  • Перейдите на вкладку " Settings " → вкладка " General " → Send keyboard shortcuts to поле
  • Изменить значение на Virtual device" как показано на рисунке

После этого сфокусируйтесь на эмуляторе и нажмите Ctrl + M, появится меню разработчика.

Emulator Option -> Settings -> General

Ответ 10

Для ноутбуков с Windows Fn Key + Control + M

Ответ 11

Возможно, это не прямое решение, но я создал библиотеку, которая позволяет использовать касание 3 пальцев вместо встряхивания, чтобы открыть меню разработчика в режиме разработки.

https://github.com/pie6k/react-native-dev-menu-on-touch

Вам нужно только обернуть ваше приложение внутри:

импортировать DevMenuOnTouch из "реакции-родного-dev-меню-на-ощупь"; // или: импортировать {DevMenuOnTouch} из "act-native-dev-menu-on-touch "

class YourRootApp extends Component {
  render() {
    return (
      <DevMenuOnTouch>
        <YourApp />
      </DevMenuOnTouch>
    );
  }
}

Это действительно полезно, когда вам нужно отладить на реальном устройстве, и рядом с вами сидят сотрудники.