美文网首页
[AP_01] Android系统基础:Android SDK和

[AP_01] Android系统基础:Android SDK和

作者: Fighting_001 | 来源:发表于2019-04-27 22:54 被阅读0次

    目录结构

    一、 安装Android SDK
        1. 前提:已安装有JDK环境(如JDK 1.8)
        2. 下载并安装Android SDK包
        3. 环境变量设置
    二、Android模拟器安装与使用
        1. 下载&安装Android模拟器
        2. 开启VT(虚拟技术)功能
    三、adb命令实践
        1. Android调试桥(adb)简介
            1)adb的工作原理
            2)启用adb调试
            3)adb环境变量配置
        2. adb连接夜神模拟器
        3. adb shell连接
        4. 在设备安装&卸载APK
            1)安装apk
            2)卸载apk
        5. 查看设备上安装的应用包名
        6. 文件的读取、写入
            1)将文件从PC写入到Android设备中
            2)将文件从Android设备读取到PC中
        7. Android设备屏幕截屏
        8. adb服务启动、关闭
        9. 端口占用处理、bat命令封装
    四、元素获取工具UI Automator概述
        1. UI Automator简介
        2. UI Automator 使用方法
    五、Package与Activity
        1. Package
        2. Activity
            1)Activity获取
            2)ActivityA页面布局元素
    

    一、 安装Android SDK

    1. 前提:已安装有JDK环境(如JDK 1.8)

    下载传送门:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

    根据自己系统下载适合的版本,安装JDK完成后需要配置环境变量

    配置环境变量

    变量名 配置路径
    JAVA_HOME C:\Program Files\Java\jdk1.8.0_91
    (JDK安装的具体目录)
    Path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
    CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;
    (最前面有一个点.

    cmd输入命令:java -version

    2. 下载并安装Android SDK包

    下载传送门:
    https://android-sdk.en.softonic.com/download
    http://tools.android-studio.org/index.php/sdk

    安装:
    可按照默认配置安装,安装过程中允许SDK System images安装(支持Android模拟器)

    安装备注:
    • 必选项:
      SDK Platform:对应平台的开发工具
      Android SDK Tools:基础工具包,版本号带rc字样的是预览版。只需下载一个版本,一般选最新版本
      Android SDK Platform-tools:从Android2.3开始划出此目录,存放公用开发工具(如:adb、 sqlite3)。只需下载一个版本,一般选最新版本
      Android SDK Build-tools:Android项目构建工具。可以安装多个版本

    • 可选项(非必选):
      Android xxx (API yyy):各平台开发工具
      Android Support Repository:便于在gradle中使用Android Support Libraries,因Google并没有把这些库发布到maven center或 jcenter,而是使用了Google自己的maven仓库
      Intel x86 Emulator Accelerator(HAXM installer):Windows平台的Intel x86模拟器加速工具。配合Intel x86 atom/atom_64 System Image 使用可加快模拟器的运行速度
      Documentation for AndroidSdk:安卓开发者官网的离线文档
      Samples for SDK:内置的安卓示例程序,推荐安装。此项在高版本tools中已不提供,需要在IDE里通过 Import Sample引入,也可下载离线版
      Sources for Android SDK:安卓API的源代码,推荐安装
      ARM/Intel xxx Image:支持相应平台的模拟器,可把它想象成一个刷机包(使用真机调试or其它模拟器则不需要安装)

    安装目录作用:

    add-ons:附加库,第三方公司为Android平台开发的附加功能系统,如GoogleMaps
    docs:Android SDKAPI的参考文档,所有的API都可在此处查到
    extras:存放Android support v4/v7/v13/v17包,还有google提供的USB驱动、Intel提供的硬件加速等附加工具包,和Market_licensingi作为AndroidMarket版权保护组件,一般发布付费应用到电子市场可以用它来反盗版
    platforms:是每个平台的SDK真正的文件,存放有不同版本的Android系统。其内根据APILevel划分SDK的版本
    samples:是Android SDK自带的默认示例工程,推荐初学者运行学习其内的apidemos。对于SQLites数据库操作、游戏开发Snake LunarLandera、Android主题开发Home等都值得推荐学习

    3. 环境变量设置

    系统变量里面添加变量名 ANDROID_HOME,路径为实际存放SDK的路径

    控制面板\系统和安全\系统-->高级系统设置-->系统变量:

    变量名 变量值
    ANDROID_HOME F:\Android\android-sdk
    Path %ANDROID_HOME%\build-tools\28.0.3;
    Path %ANDROID_HOME%\platform-tools;
    Path %ANDROID_HOME%\tools;

    配置检测
    cmd命令界面输入:adb、aapt

    adb aapt

    二、Android模拟器安装与使用

    常用Android模拟器,如:夜神安卓模拟器、逍遥安卓模拟器

    1. 下载&安装Android模拟器

    夜神模拟器-下载传送门:https://www.yeshen.com
    逍遥模拟器-下载传送门:http://www.xyaz.cn/

    操作步骤:
    (1)下载成功之后点击安装包(自定义or默认安装路径)
    (2)安装成功之后会默认启动一个模拟器,基于Andriod4.4.2系统
    (3)关闭该模拟器,找到桌面生成的"夜神多开器"图标,点击打开
    (4)点击底部"添加模拟器",然后选择全新模拟器5.1.1,等待下载安装完成(实现同时开启多个Android版本系统)
    (5)点击启动模拟器按钮即可启动模拟器,默认是平板模式,可通过设置可切换为手机模式(修改后重启生效)

    以夜神模拟器为例:

    2. 开启VT(虚拟技术)功能

    VT(Virtualization Technology):虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而提高计算机的工作效率

    参考:电脑VT开启教程

    检测:
    根据需要开启VT功能,可通过VT检测工具,查看当前PC是否支持VT技术,以及当前是否开启了VT功能

    开启:
    若系统支持VT技术,根据不同PC主板配置,则可在开机时利用F2、F8、F12、Delete等按键进入相应BIOS设置界面,找到【Virtualization Technology】,修改【Disabled --> Enabled】,然后选择【Save & Exit Setup】

    三、adb命令实践

    1. Android调试桥(adb)简介

    adb(Android Debug Bridge):是一个通用命令行工具,允许用户与模拟器实例or连接的Android设备进行通信。它可为各种设备操作提供便利,如安装和调试应用

    1)adb的工作原理

    启动一个adb客户端时,此客户端首先检查是否有已运行的adb服务器进程,若没有则它将启动服务器进程,当服务器启动时,它与本地TCP端口5037绑定,并侦听从adb客户端发送的命令,所有adb客户端均使用端口5037与adb服务器通信

    2)启用adb调试

    在通过USB连接的设备上使用adb,需要在设备系统设置中启用 USB debugging(位于Developer options下)。在运行Android 4.2及其更高版本的设备上,Developer options的屏幕默认处于隐藏状态。如需将其显示出来,可尝试转到 Settings> About phone,并点按Build number七次,然后返回上一屏幕可在底部找到Developer options

    PS:当您连接运行Android4.2.2或更高版本的设备时,系统将显示一个对话框,询问您是否接受允许在这台计算机上调试,这种安全机制旨在保护用户设备,确保只有在用户自己能够解锁设备并确认对话框的情况下,才能执行USB调试和其他ADB命令

    3)adb环境变量配置

    在android_sdk/platform-tools/中找到adb工具,然后根据其具体的路径配置好环境变量,然后启动cmd输入"adb"即可查看是否配置成功

    2. adb连接夜神模拟器

    查看adb版本:

    adb version
    

    连接夜神模拟器:

    adb connect 127.0.0.1:62001
    

    夜神模拟器端口规律:第一个模拟器端口62001,第二个模拟器渡口62025,第三个端口62025+1=62026...

    为确保以上连接正常,需要将Android SDK目录(\Android\android-sdk\platform-tools\)下的adb的3个文件复制到夜神安装模拟器bin目录(\Program Files\AndroidEmulator\Nox\bin\)

    然后执行以上连接命令,效果如下:

    3. adb shell连接

    Android设备底层是Linux系统,Shell是Linux系统的字符交付界面

    # 进入指定设备shell
    adb -s 127.0.0.1:62001 shell
    # 不指定(以默认)连接shell
    adb shell
    
    # 退出adb shell
    exit
    

    进入adb shell后有两种状态显示,#表示有root权限,$表示普通权限

    4. 在设备安装&卸载APK

    1)安装apk
    # 默认安装
    adb install <apk安装包的绝对路径>
    
    # 覆盖安装
    adb install -r <apk安装包的绝对路径>
    
    # 指定设备安装
    adb -s 127.0.0.1:62001 install <apk安装包的绝对路径>
    

    若安装出现异常:Failure [INSTALL_FAILED_INVALID_URI]
    解决方案:

    # 1.cmd依次执行以下命令:
    adb remount
    adb shell
    cd /data
    chmod 777 local
    
    # 2.重新安装apk
    
    2)卸载apk
    # 进入设备的目录(/data/app),找到app包名
    adb shell
    cd /data/app/
    
    # 完全删除
    adb uninstall <apk包名>
    
    # 卸载但保留配置和缓存文件
    adb uninstall -k <apk包名>
    

    PS:apk安装后的包名,系统会在未尾加上-1之类的数字,要去掉才可以成功卸载。软件名称为包名,不要包含.apk

    5. 查看设备上安装的应用包名

    adb shell
    pm list package
    

    查看某个指定文件名的包名,如:pm list package | grep "tencent"

    6. 文件的读取、写入

    1)将文件从PC写入到Android设备中

    语法:adb push <本地文件> <远程目录>

    adb push C:\Users\Administrator\Desktop\001.txt /test007
    
    2)将文件从Android设备读取到PC中

    语法:adb pull <远程文件> <本地目录>

    adb pull /sdcard/server.log C:\Users\Administrator\Desktop
    

    7. Android设备屏幕截屏

    从Android模拟器截屏,并取回本地PC中

    adb shell screencap /test007/001.png
    adb pull /test007/001.png C:\Users\Administrator\Desktop
    

    8. adb服务启动、关闭

    # 关闭adb服务
    adb kill-server
    # 开启adb服务
    adb start-server
    

    9. 端口占用处理、bat命令封装

    端口占用-解决方案:
    若提示xxx端口被占用,则可使用以下命令释放端口

    netstat -ano | findstr "xxx"
    taskkill -f -pid {PID值}
    

    bat命令封装:
    目前很多PC客户端手机助手是基于adb连接原理进行封装的,可以将常用的adb令封装成bat命令,快速执行命令
    adb-devices.bat

    adb devices
    pause
    

    adb-connect.bat

    adb connect127.0.0.1:62001
    adb devices
    pause
    

    四、元素获取工具UI Automator概述

    1. UI Automator简介

    UI Automator is a UI testing framework suitable for cross-app functional UI testing across system and installed apps. Note: This framework requires Android 4.3(API level 18) or higher.
    UI Automator作为一个UI测试框架,适用于跨系统和跨应用程序的功能UI测试。该框架需要Android 4.3 (API level 18)及以上版本的环境依赖

    Android4.3发布时包含了一种新的工具uiautomator用来做UI测试,即常规手工测试,通过点击每个控件元素查看输出的结果是否符合预期

    相关工具
    Android SDK在4.3中提供了如下工具来支持UI自动化测试:
    uiautomatorviewer:是Android SDK自带的一个元素定位工具,通过截屏并分析XML布局文件的方式,为用户提供控件信息查看服务。uiautomatorviewer位于tools目录(\Android\android-sdk\tools)
    uiautomator:用于测试的Java库,包含了创建UI测试的各种API和执行自动化测试的引擎。要使用该工具,需要满足条件(Android SDK Tools, Revision 21 or higher、Android SDK Platform, API 18 or higher)

    2. UI Automator 使用方法

    ① 开启真机(or模拟器)的USB调式模式,然后连接电脑
    ② 打开设备上的App界面
    ③ 启动UI Automatorviewer
    ④ 获取对应页面的元素(多设备连接时要选择需要获取元素的设备)

    五、Package与Activity

    1. Package

    Package是APP唯一的标识,在进行APP自动化时,通过Package来识别自动化操作的APP。如:微信的Package(com.tencent.mm)
    PS:APP的Package和.apk文件名不同

    通过UI AutomatorViewer进行查看APP的Package,具体操作:将\Android\android-sdk\tools路径下的uiautomatorviewer.bat创建快捷方式到桌面,启动Android模拟器中的某个APP,打开uiautomatorviewer,点击其左上角的【Device Screenshot(uiautomator dump)】获取Android模拟器中的APP截图元素,即可识别出对应的Package

    APP的Package,也可通过命令查询,如下:

    adb shell
    
    # 查看所有包名
    pm list package
    # 匹配某个字符串的包名
    pm list package | grep "tencent"
    

    2. Activity

    Android中activity是所有程序的根本,所有程序的流程都运行在activity之中,activity是android当中最基本的模块之一
    在android程序中,activity一般表示手机屏幕的一屏,如打开APP后的某个活动界面可看成是一个activity。在activity中可添加一些Button、Checkbox等控件,可包含多个不同元素。一般一个android应用是由多个activity组成,activity彼此之间可进行界面跳转

    1)Activity获取

    aapt:Android Asset Packaging Tool,Android资源打包工具。在SDK的build-tools目录(如:\Android\android-sdk\build-tools\28.0.3)下,该工具可查看、创建、更新zip格式的文档附件(zip/jar/apk),也可将资源文件编译成二进制文件

    activity获取的命令:

    aapt dump badging xxxx.apk
    aapt dump badging xxxx.apk | find "launchable-activity"
    
    2)ActivityA页面布局元素
    • FrameLayout
      FrameLayout是最简单的布局,所有放在布局里的控件,都按照层次堆叠在屏幕的左上角,后加进来的控件覆盖前面的控件

    • LinearLayout
      LinearLayout按照垂直or水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。若是垂直排列,则是一个"N行单列"结构,每一行只会有一个元素,而不论这个元素的宽度如何;若是水平排列,则是一个"单行N列"结构
      若搭建两行两列的结构,通常的方式是先垂直排列两个元素,然后每一个元素里再包含一个LinearLayout进行水平排列

    • RelativeLayout
      RelativeLayout相对布局,允许子元素指定它们相对于其父元素or兄弟元素的位置

    • AbsoluteLayout
      AbsoluteLayout是绝对位置布局。在此布局中的子元素android:layout_x和android:layout_y属性将生效,用于描述该子元素的坐标位置。屏幕左上角为坐标原点(0,0),第一个0代表横坐标,向右移动此值增大,第二个0代表纵坐标,向下移动,此值增大。在此布局中的子元素可以相互重叠。在实际开发中,通常不采用此布局格式

    • TableLayout
      TableLayout为表单布局,适用于N行N列的布局格式。一个TableLayout由多个TableRow组成,一个TableRow表示TableLayout中的一行

    • TextView
      通常用于显示文字用

    • ImageView
      通常用于显示图片用


    【备注】APP市占率查看:
    腾讯移动分析-操作系统分布:http://mta.qq.com/mta/data/device/os
    Baidu统计-移动设备排名:https://mtj.baidu.com/data/mobile/device/

    相关文章

      网友评论

          本文标题:[AP_01] Android系统基础:Android SDK和

          本文链接:https://www.haomeiwen.com/subject/pkvpgqtx.html