Skip to content

Repository files navigation

DroidLab

DroidLab

一个服务于 Android 开发的综合性工具箱

面向开发用途的物理设备与虚拟机(AVD/云真机/模拟器),提供一系列工具,帮助开发者了解设备性能、系统能力与应用详情。

注意

  • 本项目的定位,决定了它仅适用于开发/测试用途的物理设备或虚拟机。请勿在生产环境或日常使用的主设备上运行。
  • 本项目不提供 Release 版本,请使用 Android Studio 编译 Debug APK 后安装到目标设备运行。

功能总览

应用采用 Navigation Drawer(抽屉导航),共 8 个入口:

入口 功能
概览 实时系统状态 + 核心系统信息面板
性能测试 三档负载(基础/标准/极限)全量/单项压力测试
Intent 12 项常见系统 Intent 检测与启动
网络工具 8 个网络/编解码工具
App浏览器 已安装应用列表与详情(签名/权限/Activity/原生库)
Gallery Material 3 组件库 Demo
设置 颜色模式(动态取色/固定颜色)+ 深色模式(开/关/自动)
关于 项目说明与技术栈

概览

以便当盒网格实时展示系统状态,每 3 秒刷新:

  • 启动耗时、运行时间
  • 当前时间与时区
  • 网络状态(WiFi / 移动网络 / 无连接)
  • CPU 占用率
  • 内存占用(已用 / 总量 / 可用)

底部为可展开的"核心系统信息"卡片,一次性采集 18 项设备静态信息,支持长按选中与一键复制:

  • Android 版本、API 级别
  • ABI、Binder 架构(32/64 位)
  • OpenGL 版本、Vulkan 版本
  • Camera2(摄像头数量 + 硬件级别)
  • Widevine(L1/L3)、USB host
  • 动态分区、Treble、A/B OTA、System-as-Root
  • VNDK 版本、链接器命名空间隔离
  • VINTF 清单位置、安全补丁级别、Fingerprint

性能测试

压力测试与硬件功能检测,覆盖 CPU、UI、内存、存储、传感器 五大维度。采用 基础 / 标准 / 极限 三档负载(MD3 分段按钮切换),支持一键全量或单项执行。

三档负载

档位 适用场景
基础 低负载,适合配置较低的 PC 下的 AVD
标准(默认) 中负载,适合绝大多数设备
极限 高负载,适合高性能旗舰机

五大测试维度

测试项 内容 负载参数(基础 / 标准 / 极限)
CPU 计算 JSON 序列化 / SHA-256 哈希 / Matrix 矩阵运算 50 / 200 / 1000 次
UI 渲染 Canvas 帧渲染 + Compose Recomposition Benchmark 150 / 500 / 1000 帧,统计耗时 / 掉帧 / 跳帧
Bitmap 内存 decode(解码)/ cache(缓存)/ recycle(回收)三阶段 30 / 100 / 300 张
数据库 CRUD 系统 SQLite 增 / 查 / 改 / 删 300 / 1000 / 5000 条
传感器与 GPS 可用性 / 响应时长 / 超时 / 准确性(经纬度 + 精度) 超时 6s / 3s / 1.5s

交互与日志

  • 一键全量测试:按当前档位顺序执行全部 5 项;运行中可一键中断(首次需动态申请定位权限)
  • 单项测试:每个维度独立卡片,可单独运行,便于聚焦排查
  • 测试日志:悬浮按钮进入日志面板,逐项显示状态(✅/❌/⏳)、明细与耗时,支持一键清除
  • 帮助:悬浮"帮助"按钮弹出测试维度说明与各档位参数

Intent

预置 12 项常见 Intent,逐项检测是否有应用可处理(可启动/无应用),点击即发起:

打开网页(必应)、拨号、发送短信、打开地图、拍照、系统设置、WiFi 设置、蓝牙设置、飞行模式设置、应用详情、发送邮件、共享文本。

无应用可处理或启动失败时 Toast 提示。


网络工具

8 个工具以 Tab 切换:

工具 功能
Ping ICMP(系统 ping)与 TCP(端口连通检测)两种模式可选,可配主机/次数/端口
DNS 手写 DNS over UDP 查询,支持 A/AAAA/MX/NS/CNAME/TXT,可换 DNS 服务器
HTTP GET/POST/PUT/DELETE/HEAD,支持 JSON body、状态码/响应头/耗时
WebSocket 最小 RFC 6455 客户端(ws/wss),连接/发送/断开 + 消息记录
JSON 格式化(2 空格缩进)/ 压缩
Base64 文本编码 / 解码
URL URL Encode / Decode
JWT 解码 header/payload/signature(不验签)

App浏览器

应用列表:按需申请"查看所有应用"权限(Android 11+ 需要;低版本直接可用)。

  • 搜索框(Material 3 样式):按应用名称或包名实时过滤
  • 性能优化:列表在后台线程加载、进程内缓存复用、图标异步解码,进入页面不卡顿

点击进入详情页(独立 Activity,5 个 Tab):

Tab 内容
信息 图标、名称、包名、版本代码、版本名、目标/最小 API(含 Android 版本名)、32/64 位、首次安装时间、最近更新
证书 签名算法、有效期自/至、公钥 MD5、证书 MD5、序列号、发行人组织、主题组织
权限 该应用声明的全部权限
Activity 该应用的全部 Activity(等宽字体列表)
原生库 nativeLibraryDir 下的 .so 文件列表

Gallery

按 Material 3 官方分类展示 Jetpack Compose Material 3 稳定组件(实验性 API 已标注),每个分类一个独立 Demo 页面:

分类 组件
Actions Button(Filled)、ElevatedButton、FilledTonalButton、OutlinedButton、TextButton、IconButton、FloatingActionButton、ExtendedFAB
Selection Checkbox、Switch、RadioButton、Slider、RangeSlider、Chip 家族(Assist/Filter/ElevatedFilter/Input/Suggestion)
Text Input TextField、OutlinedTextField、SecureTextField(密码框)、SearchBar(Experimental,DockedSearchBar 实现)
Navigation NavigationBar、NavigationRail、NavigationDrawer、Tabs(Primary/Secondary)、TopAppBar(Experimental)
Feedback Snackbar、LinearProgressIndicator、CircularProgressIndicator、PullToRefresh(Experimental)
Surfaces Card、ElevatedCard、OutlinedCard、VerticalDivider、HorizontalDivider
Dialog AlertDialog、BasicDialog、ModalBottomSheet(Experimental)、DatePicker(Experimental)
Lists ListItem、LazyColumn、StickyHeader(Experimental)

设置

  • 颜色:动态取色(Android 12+ 系统壁纸取色)或固定颜色(标准色 #66CCFF 天蓝)
  • 深色模式:开 / 关 / 自动(跟随系统)
  • 设置持久化保存,重启后生效

技术栈

  • 语言: Kotlin 2.2.10
  • UI: Jetpack Compose (Material 3) + Navigation Compose
  • 定位: Play Services Location 21.0.1
  • 架构: 单 Activity + MVVM (AndroidViewModel),自定义 Application 类
  • 异步: Kotlin Coroutines + StateFlow
  • 构建: Gradle 9.5.0 + AGP 9.3.1 + Version Catalog (TOML)
  • 最低 SDK: API 26 (Android 8.0)
  • 目标 SDK: API 34
  • 编译 SDK: API 35

构建与运行

提醒:本项目已内置国内镜像源(阿里云 Maven + 腾讯云 Gradle 发行版), 无需代理工具即可完成 Gradle 同步与构建;首次同步时请保持网络畅通即可。

# 克隆项目
git clone https://github.com/PixelGeek325/DroidLab.git

# 用 Android Studio 打开项目根目录,Sync Gradle,然后 Run

# 或命令行构建
./gradlew assembleDebug

使用方式

  1. 准备一台开发机上的物理设备或虚拟机(API 26+),通过 adb 连接或直接在设备上安装
  2. 运行 App,进入概览页查看系统状态与 18 项核心系统信息(可复制)
  3. 打开抽屉进入性能测试,选择负载档位(基础 / 标准 / 极限),点击"运行全量测试"执行全部 5 项
  4. 需要聚焦时运行单项测试;右上角帮助按钮可查看各维度与档位参数说明
  5. Intent网络工具App浏览器 进行系统级交互与诊断
  6. Gallery 中浏览 Material 3 组件效果

许可证

MIT License

Copyright (c) 2026 PixelGeek325

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

第三方声明

本项目使用了以下第三方开源组件,特此声明:

Material Icons(Android Studio 内置图标库)

本应用使用的部分图标来自 Android Studio 内置图标库(Google Material Icons), 依据 Apache License Version 2.0 授权。

Jetpack / AndroidX 组件

本项目使用 Jetpack Compose(Material 3)、Navigation Compose、CameraX、 Lifecycle 等 AndroidX 组件,均依据 Apache License Version 2.0 授权。

其他依赖

  • Kotlin 标准库与协程(Kotlin Coroutines)— Apache License 2.0
  • Google Play Services Location — Apache License 2.0

完整的组件清单请移步 THIRD_PARTY_NOTICES.md

About

一个服务于Android开发的综合性工具箱

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages