App知识

🔥(核心)、⚠️(注意)、✅(已掌握)、🔍(待深挖)

App测试

是对移动端app进行从头到尾的测试 考虑的角度有:功能测试,性能测试,易用性测试,兼容性测试,安全测试,自动化测试, 弱网测试。

安卓和鸿蒙

安卓是一种基于Linux内核的操作系统,主要使用于移动设备,如手机和平板。

鸿蒙系统是华为自主研发的面向全场景的分布式操作系统,能够运行在手机、平板、手表、物联网。 特点:1.分布式:不同设备之间可以向“同一个设备”流转资源和应用。无缝协同 2.微内核架构:安全性高 3.鸿蒙能兼容运行大部分安卓应用,而 HarmonyOS NEXT 不再兼容,实现自主内核(微内核)+ 自主编译器(方舟编译器) + 自主语言(arkTs)。

安卓和鸿蒙测试的区别 🔥(核心)

冷启动就是从完全关闭的状态打开应用程序时的启动过程,因为app从磁盘–>内存的启动耗时长(3-5秒)

热启动就是应用已经运行的状态下返回到应用或在后台切换回应用,直接从内存–>该app的耗时(2秒之内)

安卓 鸿蒙
应用形态 Apk的安装、卸载、升级 1个入口 还要关注原子化服务(元应用、卡片) 3个入口
核心功能 独立app的功能 分布式能力:多设备资源虚拟化,实现共享池。 服务流转:应用在不同设备间无缝切换,保持状态连续
兼容性测试 终端手机+平板,不同品牌厂商,系统版本13-16 多终端,不同型号的华为手机,版本HarmonyOS 3.0–6.0
性能测试 app的冷启动(3-5秒)热启动时间时(2秒之内) 单设备 CPU / 内存 /耗电 还要原子化(元应用、卡片)服务启动 单设备 + 分布式协同(如多设备视频播放总 CPU ≤50%)
安全测试 单应用权限申请、权限滥用 单应用权限,跨设备权限同步
App的类型

原生应用:直接运行在手机操作系统,需要下载,性能最高,需要对不同平台分别开发,适用于大型应用,游戏,短视频,支付。

混合应用:用原生壳子封装网页(WebView),需要下载,跨平台运行,有时会卡顿,适用于中型应用、跨平台需求高、迭代快的(电商、新闻类App)

网页应用:基于浏览器,无需安装,性能差,体验感最差,适用于简单信息展示,H5小游戏

ADB 🔥(核心)

adb工具

全称为Android Debug Bridge,即Android调试桥,是一种命令行工具,对Android系统中进行调试。通过adb,我们可以方便地与模拟器实例或连接的Android设备进行通信。

adb工具是一个客户端-服务器程序,包括以下三个组件:

1. 客户端:发送命令,在电脑端操作。

2. 服务器:管理客户端和守护进程之间的通信,确保客户端可以访问设备。

3. 守护进程:在设备上运行命令,作为后台进程在每个设备上运行。

adb的用处

1.操作设备: 允许开发者在模拟器或真实的Android设备上进行各种操作,如安装和调试应用。

2.文件传输:adb工具可以方便地在安卓设备和电脑之间传输文件。

3.模拟按键和触摸事件:adb可以模拟设备上的按键和触摸事件,这对于开发者进行自动化测试

和模拟用户操作非常有用。

第三方安卓模拟器(雷电、夜神等):大多自带内置的 ADB 环境。不用单独安装ADB,

安装好之后,去设置环境变量–在命令提示符 输入 adb version 可以看到安装成功

在模拟器中启用 ADB 调试模式:

在逍遥模拟器中,点击系统应用里的设置菜单

在设置菜单中,找到并点击“关于平板电脑”或类似的选项。

找到最下面的“版本号“,并连续点击7次,直到出现提示消息表明已启用开发者选项。

返回到上一级菜单,找到“开发者选项”。

在开发者选项中,找到并启用“USB调试”选项。

查看是否成功连接到模拟器:命令的输出会列出模拟器的设备信息。

adb devices

hdc(HarmonyOS Device Connector)

为开发人员提供的用于调试的命令行工具,通过该工具可以在windows/linux/mac系统上与鸿蒙设备进行交互。在使用hdc前,请在设备上开启usb调试功能,用usb线连接设备和PC。

基本使用方法 ⚠️(注意)

设备连接管理
adb version 查看adb的版本信息 hdc version
adb devices 列出已连接并通过ADB进行通信的安卓设备 会有套接字。 hdc list targets

如果有offline 一般是adb版本比较低,或者usb线损坏出现,你电脑的USB口有问题。

adb shell 允许你通过命令行接口与连接的安卓设备或模拟器进行交互。 hdc shell ls

安卓安装的app路径在哪里?第三方软件存储在哪个路径?**

/data/app

这是 Android 系统用于存储已安装应用程序的 APK 文件的目录。当你从 Google Play 商

店或其他来源安装一个应用程序时,其 APK 文件通常会被复制到这个目录。

/sdcard

这是外部存储的主要目录,通常对应于设备上的 SD 卡(尽管在许多现代设备上,这实

际上只是设备内置存储的一部分,模拟为 SD 卡)。应用程序和用户都可以在这里存储和访问文件。它是用户可访问的,因此经常用于保存用户生成的内容,如照片、视频、文档等。

应用管理
adb install(安装)通过(ADB) 将APK 文件安装到连接的 Android 设备或模拟器上。 hdc install

后缀名是.apk即可。找到文件所在位置,cmd-- adb install XXX.apk

adb uninstall(卸载) 通过应用的包名来指定要卸载的应用。 hdc uninstall、

方法1:前提是那个软件在运行

adb shell dumpsys window | findstr mCurrentFocus 会显示在运行软件的包名

adb uninstall 包名

方法2:

adb shell pm list packages | findstr 应用英文名

adb uninstall 包名

adb shell pm ,你可以查询、安装、卸载和更新应用程序 hdc shell bm dump查看设备里的应用包名

adb shell pm list packages 列出所有已安装的应用包名

adb shell pm list packages | findstr app.top.zydx 查询特定应用的信息

adb shell pm clear app.top.zydx 清除应用的数据

adb shell am start -n app.top.zydx/.MainActivity 启动一个活动

adb shell am force-stop app.top.zydx 强制关闭一个应用

hdc shell aa start

hdc shell "aa force-stop

文件管理
adb push 将文件从计算机复制到Android设备 hdc file send

单个文件:adb push practice.txt /sdcard

多个文件:adb push test.png test1.png /sdcard

上传所有png结尾的文件:for %f in (*.png) do adb push “%f” /sdcard/

adb pull 从Android设备获取文件并保存到计算机上。hdc file recv

单个文件:adb pull /sdcard/practice.txt

多个文件:adb pull /sdcard/test.png /sdcard/test1.png

系统日志
adb logcat 从连接的 Android 设备或模拟器捕获日志。 hdc hilog

Warn(W):用于警告, Error(E):用于错误, Fatal(F):用于致命错误。

1.查看特定应用程序的日志:adb logcat app.top.zydx

2.只关心错误级别的日志:adb logcat app.top.zydx *:E

3.根据关键字查找:adb logcat app.top.zydx** | findstr “error”**

4.将日志保存到文件:adb logcat app.top.zydx** ***:E -d -t 100 >test.log

-d 表示仅获取当前日志缓冲区的内容,而不是持续监听新的日志消息

-v time : 表示输出日志消息时包含时间戳信息

-t 100: 只获取最新的 100 条日志消息

5.清除日志:adb logcat -c

日志文件放哪里

/data/log/hilog

屏幕操作
adb shell screencap Android截屏 hdc shell snapshot_display

捕获屏幕并保存到设备 adb shell screencap -p /sdcard/screenshot.png

adb shell screenrecord Android录屏

录屏保存到MP4 adb shell screenrecord /sdcard/myrecording.mp4

Ctrl + C 来中断

查询cpu:adb shell top -n 1 hdc shell top -n 1

-n 1 表示只执行一次并输出结果

查询耗电量:adb shell dumpsys battery hdc shell hidumper -s BatteryService -a -i

面试题:你知道有哪些常见adb命令?

一般我把用的比较多的指令分为5大类,分别是设备连接类,应用管理类,文件管理类,日志操作类和屏幕操作类,对应设备连接类我用的比较频繁的是adb devices查看设备连接状态,adb version查看adb版本,应用管理类我会使用adb install安装程序、adb uninstall卸载程序和adb shell pm包管理以及am页面管理,文件管理我会使用adb push推送文件和adb pull拉取文件,系统日志我会使用adb logcat查询日志,屏幕操作我会使用adb shell screencap截图或者adb shell screenrecord去录屏,最后查询cpu我会考虑使用adb shell top,耗电量我会使用adb shell dumpsys battery,以上就是我经常使用的指令。

面试题:你知道hdc有哪些场景指令?

一般我把用的比较多的指令分为5大类,分别是设备连接类,应用管理类,文件管理类,日志操作类和屏幕操作类,对应设备连接类我用的比较频繁的是hdc list targets,hdc version,应用管理类,我会使用hdc install、hdc uninstall和hdc shell bm以及aa管理,文件管理我会使用hdc file send

推送文件和hdc file recv拉取文件,系统日志我会使用hdc hilog查询日志,屏幕操作我会使用snapshot_display截图或者screenrecorder去录屏,最后查询cpu我会考虑使用hdc shell top,以上就是我经常使用的指令。

同一个 App(包名相同),手机上只能存在一个版本 安装新版本时,会覆盖旧版本,

先安装新版本,再安装旧版本,默认是不能正常安装使用的。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐