博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android系统架构-----Android的系统体系架构
阅读量:5817 次
发布时间:2019-06-18

本文共 1577 字,大约阅读时间需要 5 分钟。

一、Android的系统体系结构

在入门了一个简单的Android的Hello World以后,我们首先来看一下我们Android的整体系统架构图:

这个就是我们Android的整体系统架构图了,我们首先从整体上来看看Android的体系结构。

Linux Kernel:我们知道Android其实就是一个操作系统,其底层是基于Linux Kernel的,这一层主要完成的是操作系统所具有的功能,比如这一层有许多的驱动程序,正是通过这些驱动程序来驱动我们设备上的硬件设备的。

Android Runtime:Android的运行环境,我们学过java的都知道,java程序的运行需要java的核心包的支持,然后通过JVM虚拟机来运行我们的应用程序,这里Android Runtime里的Core Libraries就相当于java的JDK,是运行android应用程序所需要的核心库,Dalvik Virtual Machine就相当于JVM,这时Google专为Android开发的运行android应用程序所需的虚拟机。

Liberaries:这里面都是Android的库文件,例如我们访问SQLite数据库的库文件等等。

Application Framework:应用程序的框架,这个是非常的重要的,相信Framework这个词大家都应该非常的熟悉了,我们学习Android也主要学的就是这一层,我们通过这些各种各样的框架来实现我们的Application。

Application:这个就是我们开发的Application了。

二、Android的四种常用组件

我们现在推崇的软件开发就是基于组件来开发的,组件就类似于电脑的硬件一样,我如果要组装一台电脑,可以直接通过购买各个硬件然后将其组装在一起,对于软件来说,组件就类似于这个,我们开发一个软件,可以直接将这些组件组合在一起就行了。

Android一共有四种常用的组件:

Activity、Service、ContentProvider、BroadcastReceiver

Activity:Activity就是我们应用程序的界面,主要用来跟我们的用户进行交互的,比如一个文本框,按钮这些就是显示在Activity上的,并且可以接收数据,传递数据到后台,然后再显示出来。

Service:Service我们是看不见的,对于绝大部分的数据的处理,业务的处理都是通过Service来完成的。

ContentProvider:ContentProvider类似于我们的档案馆,里面存放了我们的各种数据,例如通讯录中的信息等,这个组件就是运行程序对其进行访问,然后得到里面的数据。

BroadcastReceiver:BroadcastReceiver组件是广播接收器,主要是用来监听系统的各个行为的,例如当电量不足的时候会给我们发送一条广播信息。

三、Activity的启动流程

我们在大致了解了Android的体系结构后,我们就可以开始进行我们的代码操作了,首先我们来看看Activity的一个启动流程:

当运行我们的Android应用程序时,Android操作系统首先会去找我们的AndroidManifest.xml这个文件,这个文件是我们应用程序的主配置文件,因为我们一个应用可能有多个的Activity,那我们首先会展示哪个Activity呢?这个主配置文件就定义了当前这个应用默认所加载的那个Activity对象,找到这个Activity对象后,就会调用其onCreate()方法,这个方法主要就是用来加载我们的布局文件的,通过 setContentView()方法可以来加载我们指定的布局文件,最后根据布局文件中的各个控件显示在我们的屏幕上。这个就是我们Activity的启动流程。

 

转载地址:http://iumbx.baihongyu.com/

你可能感兴趣的文章
获取href连接并跳转
查看>>
hbase-0.94安装方法具体解释
查看>>
Hadoop常见异常及其解决方式
查看>>
汽车电商竞争白热化,“五大门派”谁能登顶?
查看>>
Vuejs2.0 + bootstrap demo
查看>>
Oracle 12c 新特性之 数据库内归档(In-Database Archiving)
查看>>
linux多线程学习笔记六--一次性初始化和线程私有数据【转】
查看>>
回看存储过程
查看>>
eclipse 启动报错 java was started but returned code=13
查看>>
UVa 12377 - Number Coding
查看>>
VC++ 设置桌面壁纸
查看>>
MQTT压力测试工具之JMeter插件教程
查看>>
presentation skills
查看>>
Microsoft实现的IOC DI之 Unity 、Service Locator、MEF
查看>>
registry key 'Java Runtime Environment' has value'1.8',but '1.7' is requaired(转)
查看>>
jQuery遮罩层插件
查看>>
浅谈微服务的来龙去脉
查看>>
关于SetLocaleInfo()
查看>>
(转)Hibernate快速入门
查看>>
为布尔方法命名
查看>>