Android本身是一套软件堆叠(Software Stack),或者成为软件叠层架构,叠层主要分成三层:操作系统、中间件和应用程序。

Android构架

1. Application 应用程序层:用Java语言编写的运行在虚拟机的程序

用户直接使用的功能,其基本应用比如:电话、联系人、短信、邮件等,还有无数第三方应用。

2. Application Framework 应用架构层:编写Google发布的核心应用程序的API框架

开发应用程序使用的基础组件,相当于供应用程序调用的API、Java开发,包括:丰富的界面控件、Content Provider,数据存储组件,应用程序可以通过Content Provider分项数据给其他应用,也可以访问其他程序的数据,A Resource Manager,资源管理器,帮助应用程序访问图片,布局文件等资源,A Notification Manager,提示信息管理器,An Activity Manager,主要负责管理应用程序的生命周期和调用栈等。

3. Android Runtime 系统运行库层:

包括两个部分,一是运行环境:应用程序的运行空间,包括一个实现Java语言大多数功能的核心库,以及一个类似Java虚拟机的Dalvik虚拟机,所有应用程序都是运行在虚拟机中。二是库文件界面:一系列的C/C++库,相当于Android系统在Linux核心系统上的功能扩展,为Application Framework层的许多功能提供支持。

4. Linux Kernel 核心层:

Linux 核心,Android的基础,基于2.6的版本,基本的操作系统组件,包括内存管理,进程管理,存储管理,网络栈,驱动模型等等。

Android建立在Linux内核之上,但是Android不是Linux,它没有支持本地窗口系统,没有支持glibc运行库,没有包含完整的Linux内核。

Android系统特点

1. 开放性

2. 应用程序无限性:Android上的应用程序可以通过标准API访问核心移动设备功能,通过互联网,应用程式可以声明它们的功能可供其他应用程序使用。

3. 应用程序是在平等条件下创建的:移动设备上的应用程序可以被替代或扩展。

4. 应用程序可以轻松嵌入网络

5. 应用程序可以并行运行:在后台运行时,应用程序可以生成通知来引起用户注意。

Linux文件系统结构

Android系统基于Linux,因此,做Android测试掌握一定的Linux知识是必要的。Linux文件系统结构是用户空间和内核中与文件系统相关的主要组件之间的关系:

用户空间包含一些应用程序和GUN C库,它们为文件系统调用提供用户接口。

VFS是底层文件系统的主要接口,这个组件导出一组接口,然后将它们抽象到各个文件系统。

有两个针对文件系统对象的缓存:inode cache 和 dentry,它们缓存最近使用过的文件系统对象。

缓冲区缓存会缓存文件系统和相关块设备之间的请求。

Linux文件系统采用阶层式树状目录结构,最上层是"/",然后再下边创建其他的目录,如/bin。

Android测试入门篇的更多相关文章

  1. 1、Android测试入门

    编写和运行测试时Android APP开发周期中的重要的一环.好的测试可以让你非常容易的在开发过程中发现bug,提升你对自己代码的自信.使用Android Studio,你可以在物理设备或者虚拟机中运 ...

  2. Android测试入门学习

    一,Android测试新人练习——安装及文件传输 [课前准备] Android测试环境搭建 1.下载并安装JDK: http://www.oracle.com/technetwork/java/jav ...

  3. Android 测试入门之---Monkey test

    这周重点学习的也是Android monkey test 的一些相关知识,也对其进行了初步的操作和试验.讲学习资料整理如下 : Monkey是一个命令行工具 ,可以运行在模拟器里或实际设备中.它向系统 ...

  4. APP测试入门篇之APP基础知识(001)

    前言        最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...

  5. Android宝典入门篇-进阶

    学习Android前后有快有1个月了,本着不耍流氓,谈恋爱就要结婚的信念(其实AD开发也挺有趣的),做了自己的第一个Android小应用.本来准备今天和大家分享的,考虑到在不同屏幕上的效果没测试和本着 ...

  6. Android宝典入门篇-基础知识

    今天跟大家分享的是我学android时的笔记.以前搞net很多年了,现在还在搞这.本着活到老学到老抽了点时间学习了下android.android网上有很多的视频教程,当时对于我这样以前不了解java ...

  7. Android Studio2.0 教程从入门到精通Windows版 - 入门篇

    http://www.open-open.com/lib/view/open1468121363300.html 本文转自:深度开源(open-open.com)原文标题:Android Studio ...

  8. Android渗透测试Android渗透测试入门教程大学霸

    Android渗透测试Android渗透测试入门教程大学霸 第1章  Android渗透测试 Android是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机.平板等.目前 ...

  9. Hadoop基础-MapReduce入门篇之编写简单的Wordcount测试代码

    Hadoop基础-MapReduce入门篇之编写简单的Wordcount测试代码 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本文主要是记录一写我在学习MapReduce时的一些 ...

随机推荐

  1. 【BZOJ】2456 mode(乱搞)

    Description 给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数. Input 第1行一个正整数n.第2行n个正整数用空格隔开. Output 一行一个正整数表 ...

  2. 象棋AI算法(二)

    原文大神是用html5+js写的关于象棋AI的博客,里面重点讲了棋子的着法,自己设计的评估函数和简单的Minmax理论,没有具体的讲搜索算法,本文是对原文的学习和分析补充 一,棋子的着法com.byl ...

  3. mac 上sed

    mac上sed和liunx是不一样的,所以有些指令可能不通用,需要将mac上sed替换成gun的: Install Homebrew First, visit Homebrew homepage an ...

  4. C++获取本机的ip地址程序

    #include <WinSock2.h> #pragma comment(lib,"ws2_32") //链接到ws2_32动态链接库 class CInitSock ...

  5. Java--神奇的hashcode

    一.Object的HashCode定义 public native int hashCode(); Object类的hashCode方式使用了native修饰也就意味着真正的实现调用的其他语言编写的方 ...

  6. Eclipse/jre/jdk/jvm

    理清一下什么是 jre.jdk.jvm这几个容易混淆的东西. 直接在电脑下安装Eclipse,会提醒你缺少JVM. 1.JVM Java Virtual Machine(Java虚拟机)的缩写. 为了 ...

  7. java获取取前段页面的参数

    request.getParameter("tnumber") document.forms[0].s_id.value;

  8. <转>linux操作系统编程——共享内存读写(采用信号量进行同步互斥)

    http://blog.csdn.net/yanghaoran321/article/details/7872722 程序要求: 创建一个写端和一个读端,写端写入数据后读端才开始读,读端读完数据后,写 ...

  9. swarmkit test

    swarmd -d /tmp/node-1 --listen-control-api /tmp/node-1/swarm.sock --hostname mhc --engine-addr=tcp:/ ...

  10. Specular Mask Texture

    [Specular Mask Texture] Specular Texture是一个Mask纹理,通过Mask纹理的texel可以控制每个像素的纹理. 在属性中添加Specular Mask Tex ...