主要方法:使用ADB工具Shell命令触发KeyEvent
今天我们将要探讨的话题是如何解决新版Android Studio内置AVD虚拟机没有menu键的问题。在最新版本的Android Studio中,一些用户可能会发现他们使用的AVD虚拟机没有menu键,这会给他们的开发工作带来一些困扰。然而,这个问题是可以通过一些简单的步骤来解决的。
问题描述
在Android 5.0之前的版本中,menu键通常被用来显示应用程序的选项菜单。然而,由于menu键在不同设备上的位置和使用方式不一致,并且很多用户并不知道menu键的作用,因此Google决定将其从操作系统中移除。
小米便签是为旧版安卓构建的App,使用到了程序菜单功能, 故在新版的Android Studio下使用虚拟机运行时,无法使用到小米便签App的部分功能。
产生原因
menu键在Android系统中被取消的时间可以追溯到2014年,当时Google发布了Android 5.0 Lollipop版本。在这个版本中,Google将menu键从操作系统中移除,并鼓励应用程序开发者采用其他的设计方式来提供应用程序的选项菜单。
在Android 5.0之前的版本中,menu键通常被用来显示应用程序的选项菜单。然而,由于menu键在不同设备上的位置和使用方式不一致,并且很多用户并不知道menu键的作用,因此Google决定将其从操作系统中移除。
另外,由于虚拟导航栏的出现,移除menu键也让屏幕上的导航栏更加简洁和易于使用。现在,应用程序的选项菜单通常通过在界面中添加按钮或者使用上下文菜单等方式来实现。这些新的设计方式使得用户可以更加方便地访问应用程序中的各种功能,同时也提高了用户的体验。
解决方案一
使用Shell命令通过操作安卓系统调试接口来触发KeyEvent事件,以获得按下menu键同样的效果
使用ADB
ADB是Android Debug Bridge的缩写,是一种用于与Android设备通信的命令行工具。它可以通过USB或者Wi-Fi连接到Android设备,并提供了一系列命令来管理设备、安装应用程序、调试应用程序等。
使用ADB工具,开发者可以在计算机上执行各种操作,例如:
- 安装和卸载应用程序
- 传输文件到设备或从设备中复制文件
- 启动和停止Android应用程序
- 查看日志信息并调试应用程序
- 进行截屏和录屏等操作
ADB工具是Android开发中非常重要的一个工具,它可以让开发者更加方便地进行应用程序的开发和测试。除了在命令行中使用ADB工具,也可以通过Android Studio等集成开发环境(IDE)来使用ADB工具。
Android SDK自带ADB工具位置
如果电脑上已安装安卓虚拟机并下载SDK,则可以在AS设置里寻找到SDK的保存目录,并在该目录下platform-tools文件夹内找到adb工具
从网上下载ADB工具
Windows:
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Linux:
https://dl.google.com/android/repository/platform-tools-latest-linux.zip
OS X:
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
ADB工具同样位于platform-tools文件夹下
使用ADB工具连接虚拟机
首先启动安卓虚拟机
在platfrom-tools目录下打开终端,运行命令
adb devices
如显示
List of devices attached
emulator-5554 device
即为连接成功
使用ADB工具触发KeyEvent事件
在确保上一步已经连接的情况下,可运行
adb shell input keyevent "82"
其中,82代表menu键的键值
运行该命令即相当于按下虚拟机菜单键,即可唤出程序菜单
其他常见的键值如下
1 --> "KEYCODE_MENU"
2 --> "KEYCODE_SOFT_RIGHT"
3 --> "KEYCODE_HOME"
4 --> "KEYCODE_BACK"
5 --> "KEYCODE_CALL"
6 --> "KEYCODE_ENDCALL"
7 --> "KEYCODE_0"
8 --> "KEYCODE_1"
9 --> "KEYCODE_2"
10 --> "KEYCODE_3"
11 --> "KEYCODE_4"
12 --> "KEYCODE_5"
13 --> "KEYCODE_6"
14 --> "KEYCODE_7"
15 --> "KEYCODE_8"
16 --> "KEYCODE_9"
17 --> "KEYCODE_STAR"
18 --> "KEYCODE_POUND"
19 --> "KEYCODE_DPAD_UP"
20 --> "KEYCODE_DPAD_DOWN"
21 --> "KEYCODE_DPAD_LEFT"
22 --> "KEYCODE_DPAD_RIGHT"
23 --> "KEYCODE_DPAD_CENTER"
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"
26 --> "KEYCODE_POWER"
27 --> "KEYCODE_CAMERA"
28 --> "KEYCODE_CLEAR"
29 --> "KEYCODE_A"
30 --> "KEYCODE_B"
31 --> "KEYCODE_C"
32 --> "KEYCODE_D"
33 --> "KEYCODE_E"
34 --> "KEYCODE_F"
35 --> "KEYCODE_G"
36 --> "KEYCODE_H"
37 --> "KEYCODE_I"
38 --> "KEYCODE_J"
39 --> "KEYCODE_K"
40 --> "KEYCODE_L"
41 --> "KEYCODE_M"
42 --> "KEYCODE_N"
43 --> "KEYCODE_O"
44 --> "KEYCODE_P"
45 --> "KEYCODE_Q"
46 --> "KEYCODE_R"
47 --> "KEYCODE_S"
48 --> "KEYCODE_T"
49 --> "KEYCODE_U"
50 --> "KEYCODE_V"
51 --> "KEYCODE_W"
52 --> "KEYCODE_X"
53 --> "KEYCODE_Y"
54 --> "KEYCODE_Z"
55 --> "KEYCODE_COMMA"
56 --> "KEYCODE_PERIOD"
57 --> "KEYCODE_ALT_LEFT"
58 --> "KEYCODE_ALT_RIGHT"
59 --> "KEYCODE_SHIFT_LEFT"
60 --> "KEYCODE_SHIFT_RIGHT"
61 --> "KEYCODE_TAB"
62 --> "KEYCODE_SPACE"
63 --> "KEYCODE_SYM"
64 --> "KEYCODE_EXPLORER"
65 --> "KEYCODE_ENVELOPE"
66 --> "KEYCODE_ENTER"
67 --> "KEYCODE_DEL"
68 --> "KEYCODE_GRAVE"
69 --> "KEYCODE_MINUS"
70 --> "KEYCODE_EQUALS"
71 --> "KEYCODE_LEFT_BRACKET"
72 --> "KEYCODE_RIGHT_BRACKET"
73 --> "KEYCODE_BACKSLASH"
74 --> "KEYCODE_SEMICOLON"
75 --> "KEYCODE_APOSTROPHE"
76 --> "KEYCODE_SLASH"
77 --> "KEYCODE_AT"
78 --> "KEYCODE_NUM"
79 --> "KEYCODE_HEADSETHOOK"
80 --> "KEYCODE_FOCUS"
81 --> "KEYCODE_PLUS"
82 --> "KEYCODE_MENU"
83 --> "KEYCODE_NOTIFICATION"
84 --> "KEYCODE_SEARCH"
85 --> "TAG_LAST_KEYCODE"
总结
首先,我们需要查看Android Studio中的SDK位置。我们可以通过打开Android Studio的设置,然后在设置面板中找到“Android SDK”选项卡,来找到SDK位置。在这里,我们需要注意SDK的版本和路径,这将在后面的步骤中使用。
接下来,我们需要打开终端,并进入SDK的路径。在这里,我们可以使用cd命令来进入SDK所在的目录。在SDK目录中,我们需要进入platform文件夹。在这个文件夹中,我们可以使用ADB工具来运行shell命令,以便在虚拟机中模拟按键事件。
在终端中,我们可以使用以下命令来连接虚拟机:adb connect localhost:5554。这将连接到本地主机上的第一个虚拟设备。如果你使用的是其他虚拟设备,请相应地更改连接端口号。
接下来,我们可以使用以下命令来模拟menu键的按下事件:adb shell input keyevent 87。这个命令将发送一个键盘事件,模拟按下menu键。
值得注意的是,这里的“87”是menu键的键码。如果你想模拟其他按键事件,请参考Android官方文档上的键码列表。
在本文中,我们介绍了如何解决新版Android Studio内置AVD虚拟机没有menu键的问题。我们通过查看AS设置中的SDK位置,然后在终端中打开该目录下的platform文件夹,使用ADB工具运行shell命令,使用input keyevent 87来通过命令键入按键事件,成功地解决了这个问题。