【架构设计】基于SpringBoot Restful实现安卓设备资源服务化

架构名称

基于SpringBoot Restful接口服务化本地安卓资源

领域与背景

安卓(Android)是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
安卓系统的广泛使用刺激了大量的安卓应用的诞生。在这些应用开发时也需要配以测试。
Android应用程序的开发与运行通常处于不同的设备环境,开发端在开发应用程序的过程中,往往涉及到对应用程序运行时的调试。同时,Android设备在运行过程中,需要有类似于Linux系统本身的一套机制,通过直接从另外一端连接后,就能直接在对应的权限范围内,进行系统监测与管理。也就是说,无论是Android应用程序本身的开发调试过程,还是对Android系统的管理,都需要一套机制,以方面外界可以直接触达到Android系统运行时本身。
ADB(Android Debug Bridge):ADB是Android提供的一个通用的调试工具,通俗的理解就是debug工具,借助这个工具,我们可以管理设备或手机模拟器的状态,它是Android开发/测试人员不可替代的强大工具,
借助adb工具,我们可以管理设备或手机模拟器的状态。还可以进行很多手机操作,如安装软件、卸载软件、系统升级、运行shell命令等等。adb就是连接Android手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作。
【架构设计】基于SpringBoot Restful实现安卓设备资源服务化_第1张图片
【架构设计】基于SpringBoot Restful实现安卓设备资源服务化_第2张图片
设备连接管理方法:

  1. 方式二:USB连接
    Android 设备的开发者选项和 USB 调试模式已开启
    PC/虚拟机端设备驱动状态正常
  2. 方式一:无线连接(需借助USB线)
    Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi
    设备与电脑通过 USB 线连接,设备在 5555 端口监听 TCP/IP 连接
    断开 USB 连接,通过 IP 地址连接设备

现有技术方法

通用方法基于adb工具结合设备连接管理方式展开研发调试、测试,主要方式有两种:
1、 USB连接:近端(PC或VM)开展研发调试、测试黑盒活动;本地执行程序或远端通过持续集成CI方式触发(例如:PC4部署Jenkins触发VM启动测试程序访问UUT4被测单元ADB资源);组网单元间无关联性,资源相对独立 例如:UUT4只允许VM访问;PC1不可访问UUT2资源信息;
【架构设计】基于SpringBoot Restful实现安卓设备资源服务化_第3张图片
2、 无线连接:网络覆盖区PC可通过WiFi连接设备开展研发调试、测试黑盒活动等;UUT资源开放,信息被透明化(例:B公司PC4可访问A公司UUT资源)
【架构设计】基于SpringBoot Restful实现安卓设备资源服务化_第4张图片
现有技术的缺点:

  1. USB-测试部署限制:
    USB距离长度受限,无法实现远端资源部署控制(跨楼层,跨区域,跨城市等);PC组网单元资源不开放,信息碎片化,整体测试数据信息整合需要依赖数据库或其他上传机制
    备注参考信息:
    业务数据流C/S模型: PC/VM端:adb驱动 端口号5037
    UUT(安卓端):内置adbd驱动进程 端口号 5555~5585之间
    数据通过socket套接字方式在底层传递,上层系统(如windows)直接调用Python 开源工具uiautomator2进行信息接收和发送,或以广播等其他方式扩展
    【架构设计】基于SpringBoot Restful实现安卓设备资源服务化_第5张图片
    2.无线连接-安全缺陷:
    无线adb局域明文传输不安全,无线网络覆盖范围内PC资源均可通过adb连接访问设备,产品信息易暴露
    无线连接-连续性限制:
    调试、测试重启时ADB连接断开,需要连接USB线重新配置,连续性差

架构思路

  1. 全局测试配置服务:
    跨区域实现研发、测试活动部署;单个PC可实现全局测试配置服务,进行监控管理以及和近端PC资源进行交付等
  2. 开发化服务接口私密性灵活可配
    服务化资源,近端PC实现http封装,添加过滤器,访问认证等限制,按实际产品需求、接口需求实现全开放,选择性开放访问信息资源

整体组网架构请参考,代码实现部分基于SpringBoot实现,在产品侧可和业务逻辑强关联或扩展
【架构设计】基于SpringBoot Restful实现安卓设备资源服务化_第6张图片

你可能感兴趣的:(【架构设计】基于SpringBoot Restful实现安卓设备资源服务化)