用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架构的客户端-服务器程序,包括以下三个组件:

  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

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安装包

  1. 输入命令: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'
  1. 输入命令: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

3 回复

学习

更多关于用adb获取HarmonyOS鸿蒙Next中app包名和启动的方法-主题开发者利器来啦~的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,使用ADB获取应用包名和启动方法可以通过以下步骤实现:

  1. 连接设备:确保设备已通过USB连接,并启用开发者模式中的USB调试功能。

  2. 获取包名:使用以下命令列出设备上已安装的应用包名:

    adb shell pm list packages
    

    这将返回所有已安装应用的包名列表。

  3. 获取应用主Activity:要获取特定应用的主Activity,可以使用以下命令:

    adb shell dumpsys package <package_name> | grep -i activity
    

    <package_name>替换为实际的应用包名,命令将返回该应用的主Activity信息。

  4. 启动应用:获取到包名和主Activity后,可以使用以下命令启动应用:

    adb shell am start -n <package_name>/<activity_name>
    

    <package_name><activity_name>替换为实际的包名和主Activity名称。

通过这些步骤,你可以使用ADB工具在HarmonyOS Next中获取应用包名并启动应用。

在HarmonyOS鸿蒙Next中,使用ADB获取应用的包名和启动方法如下:

  1. 获取包名

    • 连接设备后,执行 adb shell pm list packages,列出所有已安装应用的包名。
    • 若需筛选特定应用,可使用 adb shell pm list packages | grep 关键词
  2. 启动应用

    • 获取包名后,使用 adb shell am start -n 包名/活动名 启动应用。
    • 若不确定活动名,可通过 adb shell dumpsys package 包名 查询主活动名。

这些命令帮助开发者快速调试和启动应用。

回到顶部