Android基础理论

Android系统基础

对于测试来说的Android重大版本

版本号 主要特性
5.0 采用全新的MaterialDesign界面,采用ART虚拟机替换Dalvik虚拟机
6.0 采用全新的权限机制,在AndroidManifest.xml声明
10.0 支持可折叠设备,支持5G

Android的基本架构

内核层

  1. Android系统是linux 内核,支持linux命令
  2. linux内核档案馆
  3. 更多linux命令

运行库层

所有Android的APP运行需要的环境

每一个APP都可以理解为一个JAVA程序

跨平台运行需要借助虚拟机,运行库层就包括了虚拟机

APP

  1. 原生APP
  2. Web APP(使用网页开发技术)
  3. 混合APP(应用中夹带网页)

安卓虚拟机

  1. Dalvik 安卓5.0版本以下

  2. ART(Android Run Time) 安卓5.0版本及以上

    ART虚拟机运行速度更快,但是比Dalvik虚拟机占用更大的空间,典型的以“以空间换时间”

WebKit渲染引擎

​ 可以让安卓系统的浏览器APP完美访问网页内容

​ APP打开一个网页连接并不需要使用浏览器,原理就是同样使用了WebKit进行了渲染

SQlite数据库

​ APP支持离线访问,就是利用SQLite数据库,存储一些数据

​ SQLite是谷歌常用数据库,谷歌浏览器里也嵌入了该数据库

拓展:
	1. Android系统的app使用java或者Kotlin语言开发
	   ios系统的app使用OC或Swift语言开发 
		
	2.缓存(Cache)
	  访问速度比一般随机存取存储区(RAM)快的一种高速存储器,并不是使用系统主存那样的DRAM技术,而是使用昂贵但比较快的SRAM技术。
	  缓存的设置是现代计算机系统发挥高性能的重要因素之一。
	  缓存分为L1缓存、L2缓存和L3缓存

应用程序框架

​ 各种各样的API,APP进行调用

应用层

  1. 系统自带的APP
  2. 安装的APP

应用的四大组件

activity活动

​ 所有安装包都有AndroidManifest.xml配置清单文件,对所有活动进行配置和记录

​ 不同的活动是用户在APP界面上看到的页面或者一些页面上的元素按钮或者隐藏功能(如微信支付接口)

​ 活动也可以是各种安装时的权限

service后台服务

​ 例如:手机会定时询问微信是否有新的消息

broadcast receiver广播接收

​ 系统会在各种各样的情况下,发送广播消息,APP通过代码接收想要的广播

​ 例如:电量不足、网络异常、屏幕关闭/点亮

​ 手机电量不足时,单机游戏提示保存游戏存档

content provider内容提供

​ 系统为了安全性,每个APP都是独立的用户,通过用户权限设置进行数据或访问硬件进行隔离,APP之间访问数据需要使用content provider技术

​ 例如:微信发送照片,访问照片数据

APP资源文件的适配

res资源目录

​ 安卓系统规定每个apk包内文件内需要存在一个res资源目录(resource)

res/
	animator/	定义属性动画的XMl文件
	anim/		定义渐变动画的XML文件
	color/		定义颜色状态列表的XML文件
	drawable/	位图文件或编译为以下可会知对象资源子类型的XML文件
	mipmap/		适用于不同启动器图标密度的可会知对象文件
	layout/		定义用户界面布局的XML文件
	menu/		定义应用菜单的XML文件
	raw/		以原始形式保存的任意文件
	values/		包含字符串、整型数和颜色等简单之的XML文件

重点
drawable APP里的菜单图标
mipmap 桌面上的APP图标
layout 界面布局

拓展:
想要适配更多的手机/平板机型,就需要准备不同的资源文件用于选择,但是资源文件越多,apk文件大小就越大。
有些人把资源图标放到网络上管理,但弊端是需要消耗流量,

drawable

屏幕标识 含义 具体参数
ldpi 低密度屏幕 120dpi
mdpi 中等密度屏幕 160dpi
hdpi 高密度屏幕 240dpi
xhdpi 超高密度屏幕 320dpi
xxhdpi 超超高密度屏幕 480dpi
xxxdpi 超超超高密度屏幕 640dpi
nodpi 不希望缩放
tvdpi mdpi~hdpi之间 213dpi
anydpi 适合所有屏幕密度

​ DPI 每英寸点数

手机/平板和APP的适配过程和原则

​ land 横屏

​ port 竖屏

系统权限的控制

v6.0版本后分为两部分

uses-permission(安装时权限 )

权限在apk安装包中的AndroidManifest.xml文件中设置

例(一部分)
INTERNET 联网
ACCESS_NETWORK_STATE 访问网络状态
ACCESS_WIFI_STATE 访问无线网络状态
READ_EXTERNAL_STORAGE 读取外部存储
WRITE_EXTERNAL_STORAGE 写入外部存储
BLUETOOTH 蓝牙

uses-feature(运行时权限控制)

​ required属性如果没有指定,代表TRUE

苹果手机/平板对于测试工程师来说更轻松,因为系统不开源。

从软件功能角度去测试,也需要测试安装、卸载、更新,但是不需要关注权限问题


posted @ 2021-06-10 19:54  李沙漠  阅读(208)  评论(0编辑  收藏  举报