一、安卓的起源
安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
二、安卓的系统版本
image.png
重要版本的发展史
重要的版本发展史.png
三、安卓的四层结构
image.png
1、内核层
android系统使用的是linux内核,支持常见的一些linux命令。
2、运行库层
android app 运行的环境
android 应用的开发语言是java或者kotlin(可以看成轻量级java),java程序运行需要java虚拟机(java 程序------------java 虚拟机--------------操作系统)。
android 应用中还可以内嵌网页,网页的显示需要浏览器渲染引擎(html->界面),android 系统中继承了webkit渲染引擎。
android 应用在没有网络的情况下如果想正常显示,需要本地缓存数据,数据可以保存到数据库中。android 系统使用了轻量级的sqlite 数据库(文件数据库)。
3、应用程序框架层
通过框架来降低开发的难度和工作量。
4、应用程序层
系统自带应用和用户安装的应用
四、android应用的四大组件
android应用的开发工程师会利用一下的四种技术来实现一些功能。
1、activity活动
(1).activity可以指代任何东西,比如一个界面或多个界面、某个接口(api)、某个控件等
以考研帮为例子:
1、先解压考研帮apk的包
2、看看AndroidManifest.xml
002.png
3、查看app的包名:
03.png
image.png
2、serveice后台服务
虽然看不到界面,但是在手机中默默运行着一些程序,app的推送功能一般是通过后台服务实现的。
3、boadcast receiver广播接收
举例:
比如玩游戏玩到一半,跳出提示'手机电量不足',如何实现?
实现方式:
第一步:
操作系统发现电量不足,发出一条广播信息,通知大家'电量不足'
第二步:
该游戏app接收这条广播信息,然后跳出提示
第三步:
选择接收/不接收
4、content provider内容提供
Android系统为了提升安全性,给每个APP自动创建了用户(即:每个APP都是不同的、独立的用户),通过用户权限设置来将不同APP的数据或访问硬件设备进行隔离。但有时候,APP之间难免还是需要相互访问数据的,这就需要使用“内容提供”技术。
案例:
典型案例,微信要发送照片了,需要在2个app之间
五、android的资源文件
android-res.png
006.png
六、android系统权限控制
从V6.0开始,权限控制分为:
安装时权限: 1.INTERNET 联网 2.ACCESS_NETWORK_STATE 访问网络状态 3.ACCESS_WIFI_STATE 访问无线网络状态 4.READ_EXTERNAL_STORAGE 读取外部存储 5.BLUETOOTH 蓝牙 等等
运动时权限: runtime-permission
007.png
权限在apk安装包中的AndroidManifest.xml文件中设置
uses-permission
uses-feature(可选权限)
uses-feature.jpg
required属性如果没有指定,代表true
测试人员对于所测APP的权限控制(V6.0后分为两部分)是需要进行测试的(你可以说它是配置测试,但个人认为它是需求级别的测试)
思考 - 考研帮APP支持没有摄像头的移动设备使用吗?
APP的编写语言:
Android 系统: Java或者Kotlin
IOS系统: Object-C 或 swift