adb移动端测试
1. Android介绍
Android 是google公司主导的一个开放的手机操作系统,不过目前已经超过了手机的局限,而定位于移动设备的操作系统。 Android一词的本义指“机器人”,取名原因很简单。开发者叫Andy Rubin。中文官方称呼“安致”,民间称呼“安卓”。
Android由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分:
底层以Linux内核工作为基础,由C语言开发,只提供基本功能;
中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。
最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。
Android各个版本都是以甜品名称命名的。一群吃货。
Android不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。
注意:
因为Android是开源的,所以导致很多手机厂商(比如华为、小米等)就直接把源代码拿过来进行修改,定制自己的手机操作系统,所以大家就会看到市面上有很多乱七八糟的Android系统,这也直接导致了测试Android系统比iOS系统难得多。
2017谷歌I/O大会:宣布 Kotlin 成 Android 开发一级语言。感兴趣的同学可以去学一样。
华为、小米等手机厂商主要修改的就是上图中的Application Framework层的代码。
SQLite是嵌入在手机Android系统中的一款小型的数据库,它的SQL语句与mysql相差很少。
2.Android SDK(Software Development Kit)的安装和配置
Android SDK,即Android Software Development Kit。
它提供了在Windows/Linux/Mac平台上开发Android应用的开发组件。包含了在Android平台上开发移动应用程序的各种工具集。
3.安装java环境
4.启动配置好SDK的Android版本eclipse
4.1 解压android版本 eclipse
4.2 直接启动
5.创建虚拟机进行测试
6.启动虚拟机
7.ADB
7.1 ADB介绍
ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机)
它的主要功能有:
* 运行设备的shell(命令行)
* 管理模拟器或设备的端口映射
* 计算机和设备之间上传/下载文件
* 将本地apk软件安装至模拟器或android设备
7.2 配置ADB环境变量
计算机→属性→高级系统设置→高级→环境变量→系统变量
新建“ADB_HOME”变量,变量值为:D:\software\adt-bundle-windows-x86_64_20140101\sdk\platform-tools(根据adb的实际安装路径填写)。
在path变量里添加变量值:;%ADB_HOME%;
配置之后在cmd窗口输入adb,显示命令用法则说明配置成功。
注意:adb 不配置环境变量也能使用,但是每次需要进入到安装目录,比较麻烦。如果你想要在任意地方都能使用的话,就需要配置环境变量。
配置adb环境变量之前:
配置adb环境变量之后:
7.3 ADB常用指令
查看设备
adb devices
这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示
注意:模拟器默认创建的第一台设备叫做emulator-5554,第二台设备叫做emulator-5556。
安装软件
adb install <apk文件路径>
这个命令将指定的apk文件安装到设备上
注意:将login.apk直接拖到命令行,命令行会直接显示其绝对路径。
卸载软件
adb uninstall <软件包名>
adb uninstall -k <软件包名>
如果加 -k 参数,为卸载软件但是保留配置和缓存文件
注意:此处的软件名并不是login。因为市面上有很多软件名相同,那么我们如何区分他们呢?在/res/AndroidMainifest.xml文件中,有一个package = "com.example.login",这才是软件名,是区分软件名的唯一标识。当然这是程序员查看的方法,我们可以使用adb shell pm list packages命令查看包名。
查看手机上应用包名
adb shell pm list packages
登录设备shell
adb shell
adb shell <command命令>
这个命令将登录设备的shell
后面加<command命令>将是直接运行设备命令, 相当于执行远程命令
C:\Users\Administrator>adb shell root@android:/ # ls #查看目录 ls acct cache config d data default.prop dev etc init init.goldfish.rc init.rc init.trace.rc init.usb.rc mnt proc root sbin sdcard storage sys system ueventd.goldfish.rc ueventd.rc vendor root@android:/ # cd mnt #进入mnt目录 cd mnt root@android:/mnt # ls #查看mnt目录 ls asec obb sdcard secure shell root@android:/mnt # cd sdcard #进入sdcard目录 cd sdcard root@android:/mnt/sdcard # ls #查看sdcard目录 ls Alarms DCIM Download LOST.DIR Movies Music Notifications Pictures Podcasts Ringtones root@android:/mnt/sdcard # rm -rf Music #删除Music目录 rm -rf Music root@android:/mnt/sdcard # ls #查看Music目录是否被删除:已删除 ls Alarms DCIM Download LOST.DIR Movies Notifications Pictures Podcasts Ringtones root@android:/mnt/sdcard # exit #退出 exit C:\Users\Administrator>
查看手机内存情况
adb shell dumpsys cpuinfo
查看内存情况
adb shell getprop | findstr dalvik :本机内存的使用情况
查看应用内存使用情况
adb shell dumpsys meminfo +包名:应用的内存使用情况
查看手机日志
adb logcat
注意:此命令一回车就会动态显示log。
将手机日志输出到本地文件中
adb logcat -v time process > C:/log/aa.txt
注意:-v time process可使log打印后在每行开头显示时间。
有多台设备是adb选择设备
adb -s <设备名> logcat -v time process > E:/log/c.txt
显示所有优先级大于等于“warning”的日志
adb logcat *:W
8.adb devices找不到设备怎么办?
我的手机连接到电脑,打开USB调试模式后,命令行输入adb devices找不到设备。试了网上的很多方法(比如这里),都没有成功。后来发现是缺少驱动程序。在http://adbdriver.com/downloads/下载ADB Driver Installer后安装,重新连接即可。