首页 > 其他分享 >Android架构测试 套小记

Android架构测试 套小记

时间:2024-01-11 14:44:27浏览次数:26  
标签:架构 框架 XMPP 系统 应用程序 测试 Android 小记

Android架构测试主要是为了确保Android应用程序在不同设备和系统版本上的兼容性、性能和稳定性。这需要对应用程序的各个组件进行测试,包括活动、服务、广播接收器、内容提供程序等。以下是进行Android架构测试时可以采取的一些步骤:

  1. 单元测试:对应用程序的各个组件进行测试,确保它们能够正常工作。可以使用JUnit和Mockito等工具进行单元测试。

  2. 集成测试:测试应用程序的各个组件如何协同工作。可以使用Espresso、Robolectric等工具进行集成测试。

  3. 功能测试:测试应用程序的主要功能是否能够正常工作。可以使用UI Automator、Appium等工具进行功能测试。

  4. 性能测试:测试应用程序在不同设备和系统版本上的性能。可以使用Monkey、StressTest等工具进行性能测试。

  5. 兼容性测试:测试应用程序在不同设备和系统版本上的兼容性。可以使用兼容性测试工具,如MonkeyRunner、Calabash等。

  6. 网络测试:测试应用程序在网络连接不稳定或断开时的行为。可以使用模拟网络工具,如Network Link Conditioner等。

  7. 压力测试:测试应用程序在高负载或资源受限情况下的表现。可以使用压力测试工具,如LoadRunner、JMeter等。

  8. 安全测试:测试应用程序的安全性,确保用户数据得到保护。可以使用安全测试工具,如OWASP ZAP、Nessus等。

通过以上步骤,可以确保Android应用程序在不同设备和系统版本上的兼容性、性能和稳定性。

Android提供了一系列强大的测试工具,它针对Android的环境,扩展了业内标准的JUnit测试框架。尽管你可以使用JUnit测试Android工程,但Android工具允许你为应用程序的各个方面进行更为复杂的测试,包括单元层面及框架层面。

Android测试环境的主要特征有:

● 可以访问Android系统对象。

● Instrumentation框架可以控制和测试应用程序。

● Android系统常用对象的模拟版本。

● 运行单个test或test suite的工具,带或不带Instrumentation。

● 支持以Eclipse的ADT插件和命令行方式管理Test和Test工程。

这篇文章是对Android测试环境和测试方法的简要介绍,并假设你已经拥有一定的Android应用程序编程及JUnit测试的经验。

概要

Android测试环境的核心是一个Instrumentation框架,在这个框架下,你的测试应用程序可以精确控制应用程序。使用Instrumentation,你可以在主程序启动之前,创建模拟的系统对象,如Context;控制应用程序的多个生命周期;发送UI事件给应用程序;在执行期间检查程序状态。Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。

Instrumentation是Android自带一个单元测试框架,不过虽然这么说,其对于大部分应用开发人员来讲,最大的作用反而是用于功能或UI测试。

 

整个框架继承自JUnit框架,使用方法也类似,也是要继承TestCase类。不过在Instrumentation中,需要继承的是几个Google提供的TestCase的子类,其中最重要也是最常用的是ActivityInstrumentationTestCase2这个类,一般进行应用界面测试时都需继承此类(Robotium一般也是使用此类)。当然,Android也提供了几个其他选择用于测试其他组件:

 

ActivityUnitTestCase: 用于单独Activity的单元测试
ApplicationTestCase:用于测试Application
ProviderTestCase2:用于测试Provider的测试类
ServiceTestCase:用于测试service的测试类

Android的系统架构采用了分层架构的思想,如图1所示。从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统库和Android运行时和Linux内核。

 图1:Android系统架构图

      每层功能简要介绍如下:

      一 应用程序层

      该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。

     二 应用程序框架层

     该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。XMPP((Extensible Messaging and Presence Protocol,前称Jabber)是一种以XML为基础的开放式实时通信协议,XMPP网络是基于服务器的(即客户端之间彼此不直接交谈),但是也是分散式的。不像AOL实时通或MSN Messenger等服务,XMPP没有中央官方服务器。Jabber.org的公众服务器上有大量的用户,所以有些人误解了,以为它是官方服务器,不过事实上任何人都可以在自己的域名上运行XMPP服务器。

Jabber识别符(JID)是用户登录时所使用的账号,看起来通常像一个电子邮件地址,如[email protected];前半部分为用户名,后半部分为XMPP服务器域名,两个字段以@符号区隔。

假设朱丽叶([email protected])想和罗密欧([email protected])通话,他们两人的账号分别在Capulet.com及Montague.net的服务器上。当朱丽叶输入信息并按下发送钮之后,一连串的事件就发生了:

  1. 朱丽叶的XMPP客户端将她的信息发送到Capulet.com XMPP服务器。
  2. Capulet.com XMPP服务器打开与Montague.net XMPP服务器的连接。
  3. Montague.net XMPP服务器将信息寄送给罗密欧。如果他目前不在在线,那么存储信息以待稍后寄送。

)

     三 系统库和Android运行时

     系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.net、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。--SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程序库中;OpenGL-开放图形库(英语:Open Graphics Library,缩写为 OpenGL)是个定义了一个跨编程语言、跨平台的应用程序接口(API)的规范,它用于生成二维、三维图像。

     四 Linux内核

     Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。

     总结:

     1 Android的系统架构采用分层架构的思想,架构清晰,层次分明,协同工作。

     2 Android的系统架构不仅从宏观上认识了Android系统,同时,也给我们的学习与实践指明了方向。若是从事Android应用开发,那应该研究Android的应用框架层和应用程序层;若是从事Android系统开发,那应该研究Android的系统库和Android运行时;若是从事Android驱动开发,那应该研究Android的Linux内核。总之,找准切入点,实践出真知。

 

 

一.android系统架构图及各层介绍

1.     应用层:应用是用java语言编写的运行在虚拟机上的程序,比如Email客户端,SMS短消息程序,日历等。

2.     应用框架层:这一层是编写Google发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的结构设计,但是必须要遵守其框架的开发原则。

3.     系统运行库(C/C++库以及Android运行库)层:当使用Android应用框架时,Android系统会通过一些C/C++库来支持我们使用的各个组件,使其更好的为我们服务,比如其中的SQLite(关系数据库),Webkit(Web浏览器引擎)。

4.     Linux内核层:Android的核心系统服务给予Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核,比如Binder IPC(Internet Process Connection进程间通信)驱动,android的一个特殊驱动程序,具有单独的设备节点,提供进程间通信的功能。

 

一.框架提供的功能 

Android系统提供给应用开发者的本身就是一个框架,所有的应用开发都必须遵守这个框架的原则。我们在开发应用时就是在这个框架上进行扩展,

 

标签:架构,框架,XMPP,系统,应用程序,测试,Android,小记
From: https://www.cnblogs.com/klb561/p/17958547

相关文章

  • 02-高屋建瓴:Kubernete 的架构为什么是这样的?
    通过上一课时的学习,我们已经对Kubernetes的前世今生有所了解。接下来,我们开始具体学习如何将Kubernetes应用到自己的项目中,首先就需要了解Kubernetes的架构。所以,在本节课程中,我们会一起学习Kubernetes的架构设计,以及背后的设计哲学。Google使用Linux容器有超过15年......
  • WPF的DataGrid绑定DataTable调研小记
    公司有个项目,界面很卡,同事怀疑是DataTable刷新引起的,我写了一个小Demo测试一下这块的性能。测试的结果DataTalbe的绑定非常的耗时我的前台代码:<DataGridGrid.Row="1"AutoGenerateColumns="True"BorderBrush="LightGray"ItemsSource="{BindingItems}"......
  • PowerDotNet平台化软件架构设计与实现系列(17):PCRM个人用户管理平台
    个人用户管理是业务系统中非常基础且重要的一个公共服务系统,我们写的绝大多数应用都和个人用户或会员有关,用户(会员)数据安全无小事,必须有一个完备的用户管理平台系统。因为不同公司的主业务不同,个人用户管理的侧重点也会有不同,PowerDotNet这里介绍的个人用户管理平台,只是个人用......
  • 基于先进云计算技术的云会议架构平台,实现音视频及数据共享
    主要功能音视频及数据共享 支持Man、PC、iPad和Phone在共享屏幕上进行标注 支持画线、矩形、椭圆、荧光笔等各种工具协作标 最高支持1080P高清画质录制与存储 本地和云端存储 视频及音频独立文件存储 支持电子交互白板及文件共享......
  • vivo 海量微服务架构最新实践
    作者:来自vivo互联网中间件团队本文根据罗亮老师在“2023vivo开发者大会"现场演讲内容整理而成。公众号回复【2023VDC】获取互联网技术分会场议题相关资料。vivo微服务平台为全球5亿+用户背后的全网十万级机器、万级微服务提供服务,在高效实践过程中,vivo中间件平台团队输出了一套......
  • vivo 海量微服务架构最新实践
    作者:来自vivo互联网中间件团队本文根据罗亮老师在“2023vivo开发者大会"现场演讲内容整理而成。公众号回复【2023VDC】获取互联网技术分会场议题相关资料。vivo微服务平台为全球5亿+用户背后的全网十万级机器、万级微服务提供服务,在高效实践过程中,vivo中间件平台团队输出......
  • 【Android】深入Binder拦截
    ☞Github☜☞Gitee☜说明Binder作为Android系统跨进程通信的核心机制。网上也有很多深度讲解该机制的文章,如:Android跨进程通信详解Binder机制原理Android系统核心机制Binder【系列】这些文章和系统源码可以很好帮助我们理解Binder的实现原理和设计理念,为拦截做准备......
  • 监控系统企业架构演进史-拨测监控
    前情概述:在《监控系统企业架构演进史-跨地域混合云》中,监控系统已经逐步成熟且企业化发展。这一章节简单讲述一下期间的拨测能力搭建,以下是这套系统的发展史,在监控平台搭建的过程中,内部监控采集还不足以满足企业业务需求,在计划发展apm之前,异地拨测的黑匣子监控也纳入了该系统的一......
  • 系统架构设计师-第2章-操作系统
    第2章-操作系统2.1.操作系统的类型与结构计算机系统由硬件和软件两部分组成。操作系统是计算机系统中最基本的系统软件,它既管理计算机系统的软、硬件资源,又控制程序的执行。操作系统随着计算机研究和应用的发展逐步形成并日趋成熟,它为用户使用计算机提供了一个良好的环境,从而......
  • 系统架构设计师-第2章-操作系统
    第2章-操作系统2.1.操作系统的类型与结构计算机系统由硬件和软件两部分组成。操作系统是计算机系统中最基本的系统软件,它既管理计算机系统的软、硬件资源,又控制程序的执行。操作系统随着计算机研究和应用的发展逐步形成并日趋成熟,它为用户使用计算机提供了一个良好的环境,从而......