zoukankan      html  css  js  c++  java
  • 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:softwareadt-bundle-windows-x86_64_20140101sdkplatform-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:UsersAdministrator>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:UsersAdministrator>
    登录手机设备后简单操作举例

    查看手机内存情况
    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后安装,重新连接即可。

  • 相关阅读:
    C# in Depth Third Edition 学习笔记-- Lambda表达式和表达式树
    几个比较实用的.Net 反编译工具
    使用Microsoft.Practices.EnterpriseLibrary.Data调用存数过程Output参数注意事项
    C# in Depth Third Edition 学习笔记-- C#2的一些特性
    C# in Depth Third Edition 学习笔记-- 可空类型
    C# in Depth Third Edition 学习笔记-- C#2.0: 解决C#1.0的问题 1 泛型
    C# in Depth Third Edition 学习笔记-- 值类型和引用
    .Net 程序员应该知道的工具和网站
    HTML 转 PDF
    C#、ASP.NET获取当前应用程序的绝对路径,获取程序工作路径 (转帖)
  • 原文地址:https://www.cnblogs.com/zhengna/p/9969822.html
Copyright © 2011-2022 走看看