最新版本号[免费下载]

用adb获取app包名和启动的方法-APP与主题开发者利器来啦~

作者:代码公子 发布时间:2023-05-26 来源:本站原创 点击数:

简述

一图胜千言:

在这里插入图片描述

做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. 1.
    C:\Users\starteos>adb shell am monitor
  2. 2.
    Monitoring activity manager... available commands:
  3. 3.
    (q)uit: finish monitoring
  4. 4.
    ** Activity starting: com.sankuai.meituan

方法二:先启动想要获取的app,再输入命令:adb shell dumpsys window w | findstr \/ | findstr name=,按Enter
(包名在倒数第二行)

  1. 1.
    C:\Users\starteos>adb shell dumpsys window w | findstr \/ | findstr name=
  2. 2.
    mSurface=Surface(name=GestureNavBottom)/@0x13b0c39
  3. 3.
    mSurface=Surface(name=GestureNavRight)/@0x1108b23
  4. 4.
    mSurface=Surface(name=GestureNavLeft)/@0x1108b89
  5. 5.
    mAnimationIsEntrance=true mSurface=Surface(name=StatusBar)/@0xcaf1d1
  6. 6.
    mSurface=Surface(name=PopupWindow:b18885b)/@0x11b9aa5
  7. 7.
    mSurface=Surface(name=com.sankuai.meituan/com.meituan.mmp.lib.mp.MPActivity0)/@0x1170be9
  8. 8.
    mAnimationIsEntrance=true mSurface=Surface(name=com.android.systemui.HwImageWallpaper)/@0x10b4741

方法三:先启动想要获取的app,再输入命令:adb shell dumpsys window | findstr mCurrentFocus,按Enter
(包名在中间)

  1. 1.
    C:\Users\starteos>adb shell dumpsys window | findstr mCurrentFocus
  2. 2.
    mCurrentFocus=Window{11b2959 u0 com.sankuai.meituan/com.meituan.mmp.lib.mp.MPActivity0}

方法四:获取手机第三方所有应用的包名,输入命令:adb shell pm list package -3,按Enter
(包名在最后一行,每台设备具体位置不同)

  1. 1.
    C:\Users\starteos>adb shell pm list package -3
  2. 2.
    package:io.appium.settings
  3. 3.
    package:com.smarttoolfactory.tutorial3_1transitions
  4. 4.
    package:com.sankuai.meituan

二、电脑上有apk安装包

1、输入命令:aapt dump badging + apk路径

  1. 1.
    C:\Users\starteos>aapt dump badging D:\meituan_ui\app\imeituan.apk
  2. 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. 1.
    C:\Users\starteos>aapt dump xmltree D:\meituan_ui\app\imeituan.apk AndroidManifest.xml | findstr "package"
  2. 2.
    A: package="com.sankuai.meituan" (Raw: "com.sankuai.meituan")

更强用法

其实ADB工具还能做很多操作,比如截图、模拟测试。
这些我们都做成【逐浪主题大师】工具中,并在社区开源,希望于大家有用。

扩展链接:
查看 app 的包名 和启动名的几种方法
https://www.jianshu.com/p/f122ee32cf11

本文责任编辑: 加入会员收藏夹 点此参与评论>>
复制本网址-发给QQ/微信上的朋友
上一篇文章:年月周日倒计时代码
AI智能听书
选取音色