2
通过ADB获取程序包名称和应用的通用名称
我在寻找一个可能性检索两种,包名称和安装通过ADB在Android设备上的应用程序的通用名称-如果包名已知或者至少检索的通用名称。在我们的网站上进行的快速搜索提出了两个相关问题,但它们不能解决我的问题: 如何获得具有包名称的应用程序的通用名称(如com.android.blabla)?(命令行或包含的应用)无法通过ADB使用(而是使用您必须手动查找的应用),从而与OP的请求相匹配 如何根据包名查找应用?只是恢复为Google Play上的URL查找,因此并不总是合适的(因为不是所有的应用程序都可以在那里使用)。 我正在寻找一种直接从设备中检索信息的方法(如果可能的话),而不是“任何”方法(包括“网络查找”或“通过应用程序”),因为这两个问题都有。 我知道有多种工具可用于获取软件包详细信息: adb dumpsys package:虽然此列表列出了所有软件包并提供了许多详细信息,但未显示“通用名称” adb shell pm list:仅给出软件包名称 aapt能够获得通用名称,但需要先从设备中拉出.apk文件,这并不真正方便(显然,在安装了许多和/或大型应用程序后,速度将非常慢) 我错过了什么?我知道信息必须在设备上(它还如何在GUI中显示应用程序名称?我怀疑.apk每次GUI需要“通用名称”时Android都会解析文件)。那么有没有办法直接使用ADB来掌握它呢? TL; DR 背景知识(如果有人感到好奇):我希望能够从我的任何设备中快速获取用户应用程序列表,而不必恢复杂技。我可以使用来检索其软件包名称的列表adb shell pm list -3,但由于它们仅是软件包名称,因此识别应用程序是一种猜测。因此,如果有一些ADB命令检索给定软件包名称的通用名称,我可以简单地使用类似for pkg in $(adb shell pm list -3); do echo "- $(adb <whatever_the_command_is> $pkg) ($pkg)"; done– 的循环,并以“人类可读的格式”获取所有已安装用户应用程序的列表以及它们的软件包名称。 用例: 查看安装了哪些“ superflous”应用程序(可以将其删除) 交叉检查来自多个设备的列表 文档;) 可能还有更多(但是以上三个是我需要的)
15
adb
system-info