用adb获取HarmonyOS鸿蒙Next中app包名和启动的方法-主题开发者利器来啦~
用adb获取HarmonyOS鸿蒙Next中app包名和启动的方法-主题开发者利器来啦~
简述
一图胜千言:
做APP开发、手机主题开发时,经常要获取包名和启动类,常用的是去应用市场,如sj.qq.com看URL链接,或者下载第三方APP在手机上操作。这样虽然可以达成目标,但效率很低。有没有更好的生产力工具呢?答案是有的。
代码公子(逐浪字库设计师)整理了用ADB工具快速获取方法。
关于
ADB,全名:Android Debug Bridge,安卓平台调试桥,是连接Android手机与PC端的桥梁,通过adb可以管理、操作模拟器和设备,如安装软件、查看设备软硬件参数、系统升级、运行shell命令等。
Android Debug Bridge 安卓调试桥。
用于通过电脑端来操作模拟器或真实设备的命令行工具。它存在于电脑端platform-tools目录下(adb.exe)。
adb是一种C/S架构的客户端-服务器程序,包括以下三个组件:
-
运行在pc端的adb client客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行 终端调用客户端。命令行程序”adb”用于从shell或脚本中运行adb命令。首先“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。然后当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求。
-
运行在设备端的常驻进程adb demon 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。
-
运行在pc端的adb server服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。ADB Server是运行在主机上的一个后台进程。它的作用在于检测USB端口感知设备的连接和拔除,以及模拟器实例的启动或停止,ADB Server还需要将adb client的请求通过usb或者tcp的方式发送到对应的adbd上。
常用命令
- 查看adb命令帮助:
adb help
- 查看adb版本:
adb version
- 开启服务:
adb start-server
- 关闭服务:
adb kill-server
获取包名
一、手机或模拟器上已安装app(美团为例)
方法一
在命令行输入adb shell am monitor
,按Enter,再启动想要获取的app
C:\Users\starteos>adb shell am monitor
Monitoring activity manager... available commands:
(q)uit: finish monitoring
** Activity starting: com.sankuai.meituan
方法二
先启动想要获取的app,再输入命令:adb shell dumpsys window w | findstr \/ | findstr name=
,按Enter
C:\Users\starteos>adb shell dumpsys window w | findstr \/ | findstr name=
mSurface=Surface(name=GestureNavBottom)/@0x13b0c39
mSurface=Surface(name=GestureNavRight)/@0x1108b23
mSurface=Surface(name=GestureNavLeft)/@0x1108b89
mAnimationIsEntrance=true mSurface=Surface(name=StatusBar)/@0xcaf1d1
mSurface=Surface(name=PopupWindow:b18885b)/@0x11b9aa5
mSurface=Surface(name=com.sankuai.meituan/com.meituan.mmp.lib.mp.MPActivity0)/@0x1170be9
mAnimationIsEntrance=true mSurface=Surface(name=com.android.systemui.HwImageWallpaper)/@0x10b4741
方法三
先启动想要获取的app,再输入命令:adb shell dumpsys window | findstr mCurrentFocus
,按Enter
C:\Users\starteos>adb shell dumpsys window | findstr mCurrentFocus
mCurrentFocus=Window{11b2959 u0 com.sankuai.meituan/com.meituan.mmp.lib.mp.MPActivity0}
方法四
获取手机第三方所有应用的包名,输入命令:adb shell pm list package -3
,按Enter
C:\Users\starteos>adb shell pm list package -3
package:io.appium.settings
package:com.smarttoolfactory.tutorial3_1transitions
package:com.sankuai.meituan
二、电脑上有apk安装包
- 输入命令:
aapt dump badging + apk
路径
C:\Users\starteos>aapt dump badging D:\meituan_ui\app\imeituan.apk
package: name='com.sankuai.meituan' versionCode='1200020206' versionName='12.2.206' platformBuildVersionName='12.2.206' compileSdkVersion='29' compileSdkVersionCodename='10'
- 输入命令:
aapt dump xmltree + apk路径 + AndroidManifest.xml | findstr "package"
C:\Users\starteos>aapt dump xmltree D:\meituan_ui\app\imeituan.apk AndroidManifest.xml | findstr "package"
A: package="com.sankuai.meituan" (Raw: "com.sankuai.meituan")
更强用法
其实ADB工具还能做很多操作,比如截图、模拟测试。这些我们都做成【逐浪主题大师】工具中,并在社区开源,希望于大家有用。
扩展链接: 查看 app 的包名 和启动名的几种方法 https://www.jianshu.com/p/f122ee32cf11
更多关于用adb获取HarmonyOS鸿蒙Next中app包名和启动的方法-主题开发者利器来啦~的实战教程也可以访问 https://www.itying.com/category-93-b0.html
学习
更多关于用adb获取HarmonyOS鸿蒙Next中app包名和启动的方法-主题开发者利器来啦~的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,使用ADB获取应用包名和启动方法可以通过以下步骤实现:
-
连接设备:确保设备已通过USB连接,并启用开发者模式中的USB调试功能。
-
获取包名:使用以下命令列出设备上已安装的应用包名:
adb shell pm list packages
这将返回所有已安装应用的包名列表。
-
获取应用主Activity:要获取特定应用的主Activity,可以使用以下命令:
adb shell dumpsys package <package_name> | grep -i activity
将
<package_name>
替换为实际的应用包名,命令将返回该应用的主Activity信息。 -
启动应用:获取到包名和主Activity后,可以使用以下命令启动应用:
adb shell am start -n <package_name>/<activity_name>
将
<package_name>
和<activity_name>
替换为实际的包名和主Activity名称。
通过这些步骤,你可以使用ADB工具在HarmonyOS Next中获取应用包名并启动应用。
在HarmonyOS鸿蒙Next中,使用ADB获取应用的包名和启动方法如下:
-
获取包名:
- 连接设备后,执行
adb shell pm list packages
,列出所有已安装应用的包名。 - 若需筛选特定应用,可使用
adb shell pm list packages | grep 关键词
。
- 连接设备后,执行
-
启动应用:
- 获取包名后,使用
adb shell am start -n 包名/活动名
启动应用。 - 若不确定活动名,可通过
adb shell dumpsys package 包名
查询主活动名。
- 获取包名后,使用
这些命令帮助开发者快速调试和启动应用。