简述
一图胜千言:
做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架构的客户端-服务器程序,包括以下三个组件:
1、运行在pc端的adb client客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行 终端调用客户端。命令行程序”adb”用于从shell或脚本中运行adb命令。首先“adb”程序尝试定位主机上的ADB服务器,如果找不到ADB服务器,“adb”程序自动启动一个ADB服务器。然后当设备的adbd和pc端的adb server建立连接后,adb client就可以向ADB servcer发送服务请求。
2、运行在设备端的常驻进程adb demon 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。程序“adbd”作为一个后台进程在Android设备或模拟器系统中运行。它的作用是连接ADB服务器,并且为运行在主机上的客户端提供一些服务。
3、运行在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
(包名在最后一行:com.sankuai.meituan
)
1.
C:\Users\starteos>adb shell am monitor
2.
Monitoring activity manager... available commands:
3.
(q)uit: finish monitoring
4.
** Activity starting: com.sankuai.meituan
方法二:先启动想要获取的app,再输入命令:adb shell dumpsys window w | findstr \/ | findstr name=
,按Enter
(包名在倒数第二行)
1.
C:\Users\starteos>adb shell dumpsys window w | findstr \/ | findstr name=
2.
mSurface=Surface(name=GestureNavBottom)/@0x13b0c39
3.
mSurface=Surface(name=GestureNavRight)/@0x1108b23
4.
mSurface=Surface(name=GestureNavLeft)/@0x1108b89
5.
mAnimationIsEntrance=true mSurface=Surface(name=StatusBar)/@0xcaf1d1
6.
mSurface=Surface(name=PopupWindow:b18885b)/@0x11b9aa5
7.
mSurface=Surface(name=com.sankuai.meituan/com.meituan.mmp.lib.mp.MPActivity0)/@0x1170be9
8.
mAnimationIsEntrance=true mSurface=Surface(name=com.android.systemui.HwImageWallpaper)/@0x10b4741
方法三:先启动想要获取的app,再输入命令:adb shell dumpsys window | findstr mCurrentFocus
,按Enter
(包名在中间)
1.
C:\Users\starteos>adb shell dumpsys window | findstr mCurrentFocus
2.
mCurrentFocus=Window{11b2959 u0 com.sankuai.meituan/com.meituan.mmp.lib.mp.MPActivity0}
方法四:获取手机第三方所有应用的包名,输入命令:adb shell pm list package -3
,按Enter
(包名在最后一行,每台设备具体位置不同)
1.
C:\Users\starteos>adb shell pm list package -3
2.
package:io.appium.settings
3.
package:com.smarttoolfactory.tutorial3_1transitions
4.
package:com.sankuai.meituan
二、电脑上有apk安装包
1、输入命令:aapt dump badging + apk
路径
1.
C:\Users\starteos>aapt dump badging D:\meituan_ui\app\imeituan.apk
2.
package: name='com.sankuai.meituan' versionCode='1200020206' versionName='12.2.206' platformBuildVersionName='12.2.206' compileSdkVersion='29' compileSdkVersionCodename='10'
2、输入命令:aapt dump xmltree + apk路径 + AndroidManifest.xml | findstr “package”
1.
C:\Users\starteos>aapt dump xmltree D:\meituan_ui\app\imeituan.apk AndroidManifest.xml | findstr "package"
2.
A: package="com.sankuai.meituan" (Raw: "com.sankuai.meituan")
更强用法
其实ADB工具还能做很多操作,比如截图、模拟测试。
这些我们都做成【逐浪主题大师】工具中,并在社区开源,希望于大家有用。
扩展链接:
查看 app 的包名 和启动名的几种方法
https://www.jianshu.com/p/f122ee32cf11