使用 adb shell 命令检查手机上 App的APK大小

背景

在 Android 开发或测试过程中,有时我们需要快速获取已安装应用在设备上的实际 APK 文件大小,而无需连接 Android Studio 或使用其他复杂工具。adb shell 命令行提供了一种便捷的方式来实现这一目标。

本文将演示如何利用三个简单的 adb shell 命令来查询特定 App 的 APK 文件路径并获取其大小。

准备工作

确保你的电脑已经安装了 Android Debug Bridge (ADB) 工具,并且已通过 USB 连接线将手机与电脑连接,并开启了 USB 调试模式。

步骤演示

以下步骤基于 macOS/Linux 终端环境,Windows 用户请在 CMD 或 PowerShell 中执行相应命令。

1. 查找目标应用的包名 (Package Name)

首先,你需要知道你想要查询的应用的准确包名。使用 pm list packages 命令可以列出设备上安装的所有应用的包名,并通过 grep 过滤关键词来快速定位目标应用。

例如,我们要查找微信 (WeChat) 的包名:

bash 复制代码
simon@MacBook-Pro ~ % adb shell pm list packages | grep tencent
package:com.tencent.soter.soterserver
package:com.tencent.androidqqmail
package:com.tencent.qqmusic
package:com.tencent.mm
package:com.tencent.weread
package:com.tencent.qqpim

从输出中,我们确认微信的包名是 com.tencent.mm。

2. 获取 APK 文件的存储路径

接下来,使用 pm path 命令并结合应用的包名,来获取 APK 文件在设备存储中的绝对路径。

bash 复制代码
simon@MacBook-Pro ~ % adb shell pm path com.tencent.mm
package:/data/app/~~NxIS9ODqXtDUPb7p3ISVXw==/com.tencent.mm-AzfwgOmBXxY3GEyJrD_H_w==/base.apk

注意: 路径中的 ~~NxIS9ODqXtDUPb7p3ISVXw== 和 com.tencent.mm-AzfwgOmBXxY3GEyJrD_H_w== 部分是随机生成的 ID,每次安装或在不同设备上可能会有所不同。你需要使用你当前命令输出的实际路径。

3. 查看 APK 文件大小

最后,利用标准的 Linux 命令 ls -l(用于显示详细信息)和上一步得到的完整路径,来查看文件的大小。

bash 复制代码
simon@MacBook-Pro ~ % adb shell ls -l /data/app/~~NxIS9ODqXtDUPb7p3ISVXw==/com.tencent.mm-AzfwgOmBXxY3GEyJrD_H_w==/base.apk

输出结果如下:

复制代码
-rw-r--r-- 1 system system 256901895 2025-07-03 22:34 /data/app/~~NxIS9ODqXtDUPb7p3ISVXw==/com.tencent.mm-AzfwgOmBXxY3GEyJrD_H_w==/base.apk

结果解析

在 ls -l 命令的输出中:

  • 256901895 即为 APK 文件的大小,单位是字节 (bytes)。
  • system system 表示文件的所有者和所属组。
  • 2025-07-03 22:34 表示文件的最后修改时间。

结论

查询 APK size 成功:256901895 个字节(约 245 MB)。

相关推荐
春猿火1 小时前
某市-2026【网安·论道】misc-afterimage_note-wp
android
恋猫de小郭3 小时前
Shopify 回应为什么从 RN 回到原生,为什么不用 KMP ?
android·前端·flutter
fundroid4 小时前
Android AI 开发,真正拉开差距的是工程闭环
android·ai·大模型·agent
脚踏实地,坚持不懈!4 小时前
Android 面试题全解(结合 AOSP 源码 · 截至 Android 17 / API 37)
android
换元不配限5 小时前
Android 架构演进实战:MVC → MVP → MVVM → MVI
android·架构·mvc·mvvm·mvp·mvi
mmsx7 小时前
Android Dialog 插槽模式:用一套壳统一全应用的弹窗风格
android·java·dialog·开发语言
码上有光7 小时前
Linux:进程间通信——匿名管道通信、命名管道通信
android·java·linux·linux通信·匿名通信·命名通信
爱笑鱼9 小时前
Android 系统启动机制(九):system_server 已经运行,为什么还不能说 Android 启动完成?
android
mmsx9 小时前
Android 上的 AI 对话链路:流式响应、SSE 解析与三级降级
android·kotlin
阿俊-全栈开发10 小时前
LikeShop单商户高级版定时任务实现:订单超时关闭与自动确认收货
android·likeshop·likeshop开源商城