Go to file
2022-08-17 23:14:50 +08:00
QtAdb 实现设备插拔监控【QtAdb 已正式可用,将开始功能添加与细节优化】 2022-08-17 23:14:50 +08:00
README.md 实现设备插拔监控【QtAdb 已正式可用,将开始功能添加与细节优化】 2022-08-17 23:14:50 +08:00

QtAdb

QtAdb 是一个基于 Qt 的 Android 工具集合。

QtAdb 仍处于开发中,暂未正式发布,但您仍可以下载体验版本。

QtAdb 已于 2022/8/17 发布第一个正式可用的版本 beta-v0.6 ,将进入功能添加与细节优化阶段。

🧑‍💻开发目的

Android 调试桥 (adb) 是一种功能多样的命令行工具可让开发者与设备之间进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell可用来在设备上运行各种命令的访问权限。

Android 系统的可玩性在 adb 的加成下变得更加的丰富由此涌现出众多的命令用法。非开发者的Android 爱好者经常根据需求运行 adb 命令以提升使用体验。

但由于 adb 涉及到环境配置、终端执行等操作,对于不会使用的人可能造成困扰;一些命令行参数的记忆对于并不熟悉的人来说同样令人头疼。所以可供一键式操作,并且已内置环境的图形窗口有一定需求。

其实就是拿来练练手,不写代码憋得慌

🔩特性

  • QtAdb 已内置 adb 环境,并可在运行时自行配置,使用者无需关心环境变量的配置情况。封装命令的具体内容将在后文说明。

  • 支持 Windows 11 中的 Android 子系统(WSA)。*仅可在 WSA 运行时连接 WSA。

  • 支持 Android R (11) 及以上版本的无线调试

  • 不仅支持 adb 命令,还集成了一定数量的 Fastboot 命令,方便刷机等操作。暂未实现

  • 提供命令模板,使用者可直接复制命令并自行执行。

  • 支持多种状态显示及使用开机、Recovery、Fastboot及 adb sideload.

🛠️功能

设备信息

  • 获取设备型号、屏幕分辨率、屏幕密度DPI、Android Id、安卓版本以及处理器型号的信息
  • 修改 DPI、修改屏幕分辨率

✔️激活

🎮设备控制

  • 电源控制:

    • 关机
    • 重启到系统
    • 重启到 Recovery
    • 重启到 Fastboot
  • 按键模拟:

    • 系统导航:返回键、主页键、菜单键、任务键
    • 实体按键:电源键、音量 + 、音量 - 、静音、拍照(处于相机应用中时)、唤起助理应用
    • 媒体控制:播放音乐、停止播放、上一曲、继续、暂停、下一曲
    • 其他指令:亮度 - 、亮度 + 、系统休眠、点亮屏幕、挂断电话
    • 拉起系统应用:设置、通讯录、拨号、浏览器、音乐、日历、计算器
  • 命令行:

    • 运行自定义的 adb 命令
    • 直接在 adb 环境中打开命令行窗口

📦软件包管理器:

  • 安装应用

  • 列出已知的权限、权限组

  • 列出软件包

    • 卸载、停用、启用、清除数据
    • 获取软件包包名、安装者、关联文件等信息
  • 列出系统的所有功能

  • 列出当前设备支持的所有库

🔧Recovery 功能:

  • 侧载
    • 当设备处于 adb sideload 模式时可使用侧载刷入zip刷机包
    • 这是危险功能,即使正确地使用也可能导致设备故障,请确保您有足够的排障能力后使用
    • 使用侧载功能时请不要关闭程序

💣不稳定功能

  • 安装应用 暂未实现错误提示细节

  • 侧载:未实现进度条且侧载不稳定,不建议使用该功能,可能导致刷入失败,无法开机 已实现稳定运行

🍘

由于个人学业紧迫(确实考不上研了),饼中的内容添加将十分缓慢,可能在过年后,甚至再多一年后才能开始全力开发,请见谅!

  • 完整的软件包管理器

  • 跨平台

  • 完善网站

  • 文件管理(都连上电脑了,为什么不直接用电脑的文件管理

  • 设备插拔检测

  • 集成scrcpy

  • 视觉反馈

    • 页面切换加载进度条
    • 页面切换动画效果
    • 安装应用进度条
    • 侧载进度条
  • 命令

    • 获取 Google 服务框架 Android ID
    • 更改屏幕分辨率
    • 更改屏幕边距
  • 控制台

    • 唤起 adb shell 窗口
    • 显示输出
    • 优化 err 处理
  • Fastboot

    • 可实现完整的刷机流程
    • 刷写特定分区

💕Q&A

  • Q还有其它名为 QtAdb 的项目/软件,此项目与它们是什么关系?

    A我写这篇文档时才发现已经有好多个 QtAdb了这也没有办法只能将错就错了😔。此前的几个项目有比本项目功能更丰富的,也有功能专一且强大的,但他们都已停更许久。在未来可能会参考这几个项目,不过目前并没有这样做(看不懂而且没时间)。

  • Q不是有环境吗怎么还是跑不了🥺

    A您下载的是压缩包请全部解压后再使用。

  • Q怎么这么多类似乱码的报错😱

    A我已经尽可能让它减少报错了若弹出的“未知错误”对话框中的报错无法构成一个完整的句子那么您可以根据它的内容视情况忽略它并查看另一条报错。

    Tips使用 Qt 所封装的进程类在获取 adb 输出的错误时,容易将一条错误随机分成多段错误处理,而每一段错误将被报告为一条单独的错误。所以程序用于识别报错类型所需的关键字信息可能只在其中一条错误中,甚至可能被拦腰斩断,分散在两条报错中,此时 QtAdb 将无法分辨这些不包含关键字的信息,从而弹出“未知错误”对话框,并显示这些错误。这个问题目前没有找到彻底的解决办法,仍在努力研究中。

  • Q应用无法安装🙁

    A~~应用安装功能暂未完全实现,为不稳定功能。应用安装完成后没有视觉反馈,请查看您的启动器先确认它确实没有安装上,其次注意安装包大小,过大的安装包可能导致 QtAdb 主界面未响应,此时不要进行任何操作,更不要杀死 adb 进程,等待手机上出现应用图标即可。若有报错可进行反馈。~~请排查您是否为:降级安装、在不兼容的安卓版本上安装等等,错误提示暂时没有完全实现,请自行判断。

    Tips发出命令后QtAdb并没有监视命令的运行情况若安装仍在进行且时间较长可能主窗口会恢复到可以操作的状态看上去就像什么都没有发生侧载未响应原理与此相同。监视运行情况的功能正在开发中请尽量不要使用此功能。QtAdb 提供了命令模板,您可自行运行此命令)

  • Q侧载未响应

    A侧载与应用安装类似功能暂未完全实现为不稳定功能。若侧载压缩包过大将会导致主界面阻塞时间过长请不要进行操作具体以 recovery 输出为准。请具备一定查错能力后再使用。会用的话直接自己开命令行罢

  • Q按键模拟不生效🤨

    A此功能因设备而异部分ROM中并没有提供相关功能比如播放音乐、拉起计算器等。若弹出错误提示可以进行反馈。

  • Q连接无线调试卡死

    A需要分情况讨论若更换另一部手机可以连接则可能是手机端 ROM 出现问题请重启并尝试再次连接若设备没有问题则可能是路由器出现问题请更换其它WI-FI网络再尝试。

  • Q连续报了一大堆错并闪退

    A可能是您在拔出设备后执行了命令重新打开并连接即可。QtAdb 仍处于开发中,这是不稳定因素之一。

  • Q无法连接WSA

    A请确保 WSA 已安装并正在运行:仅仅安装完成是不够的,还需要在开始菜单中打开 “适用于 Android^TM^ 的 Windows 子系统设置” 应用,选择 “开发人员” ,并打开 “开发人员模式”。在此之后,你可能还需要选择“系统” ,打开 “文件” 以确保 WSA 正在运行中。

  • Q闪退

    A您可能连续点击了两次杀死 ”adb进程“ 按钮,请不要这样做;也可能是您在拔出设备后执行了命令,重新打开并连接即可。其余情况请提交反馈,并描述发生闪退之前您进行的操作,谢谢!

  • Q我可以催更吗🥺

    A~~你可以请我喝可乐吗🥺~~当然可以催更它现在仍处于开发中并没有正式release仍需要长时间的调试。

🙋反馈

若您对代码有优化建议,或是有新的命令用法想要添加,请直接提交 issue

若您有想要添加的可激活的应用,请告诉我它的命令,最好带上该应用的文档/官网,提交 issue 或联系我。

十分感谢你的建议!

🧬资源

图标

字体

  • Misans
  • 没有应用上 Misans 的地方一定是 bug请进行反馈。

🤙联系