Android系统介绍
Android体系结构
Android分为四层,从高层到底层:应用程序层、应用程序框架层、系统运行层、Linux内核层。
应用程序层
系统核心应用程序和用户安装的程序。例如:日历、邮箱、地图、浏览器
应用程序框架层
应用程序框架层向开发人员提供构建应用程序时用到的各种API。
系统运行层
Android包含一些C/C++库,被Android系统中不同的组件使用。
核心库:
1)系统C库:从BCD继承来的标准C系统函数库Libc。
2)媒体库:基于PacketVideo OpenCODE,支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。
3)SurfaceManager:对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
4)Webkit/LibWebCore:Web浏览引擎,支持Android浏览器和一个可嵌入的Web视图。
5)SGL:底层的2D图形引擎。
6)3D libraries:基于OpenGL ES 1.0APIs实现的3D引擎。
7)FreeType :位图和矢量字体显示。
8)SQLlite:轻型关系型数据库引擎。
(1)Android核心库:提供了Java库的大多数功能。
(2)Dalvik虚拟机:Dalvik采用简练、高效的byte code格式运行,能够在低资耗和没有应用互相干扰的情况下并行执行多个应用,每个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
Linux内核层
Android的核心系统服务基于Linux内核。
Android四大组件
Activity(活动):用于表现功能
Activity是Android中最基本和最常用的组件,是一个负责与用户进行交互的组件,Activity中所有操作与用户密切相关。
通俗来说,是用户界面。一个应用程序包含多个Activity。
需要在AndroidManifest.xml中进行声明。
Serive(服务):后台运行服务
Serive是一个没有用户界面,可以在后台运行执行耗时操作的应用组件。
启动方式:1)绑定式
2)独立启动式
BroadcastReceiver(广播接收器):
BroadcastReceiver是一种广泛运用的在应用程序之间传输信息的机制。BroadcastReceiver是对发送出来的Broadcast进行过滤接收并响应的一类组件。使用BroadcastReceiver可以方便实现全局监听,完成不同组件之间的通信。
没有用户界面,但可启动Activity或用NotificationManager来通知用户。
ContentProvider(内容提供器):
ContentProvider是Android提供的第三方应用数据的访问方案。
ContentProvider支持多个应用程序的数据共享,是跨应用共享数据的唯一方法。
Android程序结构
1、app文件夹:
这是工程产生后,AndroidStudio自动创建的module所在文件夹,应用程序的源代码和资源文件就放在这个module当中。
2、build:
编译后的文件存放的位置,最终生成的.apk文件就在这个目录下。
3、libs:
添加的 *.jar 或 *.so 等文件存放位置。
4、src文件夹里有三个文件夹:
1)androidTest:
2)main:
(1)java:Java源代码
(2)res:资源文件
drawable:存储图片和xml文件,*dpi表示存储分辨率的图片,用于适配不同的屏幕。
layout:存储布局文件
mipmap:存储原生图片资源,缩放时有性能优化
values:存储APP引用的一些值。
values文件下:
- colors.xml :存储了一些color样式
- dimens.xml:存储了一些公用的dp值
- strings.xml:存储了引用的string值
- styles.xml:存储了App需要用到的一些样式
AndroidManifest.xml是整个项目的配置文件,描述了当前应用的package中提供的各种组件的实现类以及各种能被处理的数据和启动位置。
程序中定义的组件(Activity、Service、ContentProvider、BroadcastReceiver)需要在AndroidManifest.xml文件中注册后才能使用。
3)test:
androidTest和test存放和测试有关的内容。
build.gradle文件:是module编译时的配置文件。