目录:

  1. Android的系统体系结构
  2. Android的四种常用组件
  3. Activity的启动流程

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://www.cnblogs.com/xiaoluo501395377/p/3389411.html

Android的系统体系结构的更多相关文章

  1. Android系统架构-----Android的系统体系架构

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

  2. [总结]Android系统体系结构

    Android 从图中可以看出Android主要的组成部分,其中底层是Linux的内核,包括的主要就是文件.内存.系统资源等的管理,Google在这部分的工作主要就是电源管理和一部分驱动,并且整合上层 ...

  3. android的四层体系结构,基于mvc三层结构浅析

    从多方面理解Android体系结构 1.以分层的方式来看Android 安卓体系结构分为四层. 首先看一下官方关于Android体系结构的图: 1).Linux Kernel:负责硬件的驱动程序.网络 ...

  4. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

  5. Android动画学习(一)——Android动画系统框架简介

    2015-11-09补充:Drawable Animation极有可能是Frame Animation 这几天在找工作,面试的时候被问到了Android动画,之前完全没接触过这部分,直接给懵了,当然其 ...

  6. Android入门(二):Android的系统架构

    android的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层.应用程序框架层.系统运行库层和linux核心层.   从技术方面看,An ...

  7. Android获取系统时间方法的总结

    Android获取系统时间方法的方法有很多种,常用的有Calendar.Date.currentTimeMills等方法. (1)Calendar Calendar获取系统时间首先要用Calendar ...

  8. Android的系统属性SystemProperties

    创建与修改android属性用Systemproperties.set(name, value) 获取android属性用Systemproperties.get(name) 注意:android属性 ...

  9. Android 的系统架构

    Android 的系统架构 Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所 ...

随机推荐

  1. 安装hive+mysql

    1.源码安装mysql 以root用户首先安装libaio-0.3.104.tar.gz tar zxvf libaio-0.3.104.tar.gz cd libaio-0.3.104 make p ...

  2. rdesktop的使用方法

    工作时一般是开两台电脑 ,一台linux,一台windows,以前也用过虚拟机什么的,但是 有时候 跑起来拖泥带水的十分不爽,所以慢慢的就习惯了两台电脑的工作方式,一般我大部时间都在linux下面.用 ...

  3. react.js语法为了更好的兼容可以选以下这种方法配置即可

    首先下一个sublime text3 的编辑器: 支持大家使用正版,不过我是为了方便才所以这版本而已... 地址: http://sublimetext.iaixue.com/forum.php?mo ...

  4. 移动设备如何打开RMS加密的文档

    关键字:RMS. AZure RMS.IPhone.Android.Office365.Sharepoint.Exchange 最近总是碰到要求用苹果手机及安卓手机阅读RMS加密文档的需求,经过查找相 ...

  5. Fiddler 常用文档

    时间飞逝,已经俩月有余没写东西了(本来写的就不多,(^▽^)),最近俩月的苦闷,此处省略 1W 字.... 闲言碎语不多讲,使用 Fiddler 有一小段时间了,今天在这里总结下,一来做个笔记,二来可 ...

  6. java中包命名常见规则

    做java的都知道java的包.类.接口.枚举.方法.常量.变量等等模型都有一套约定的命名规则! 学习每一种语言都应该学习对应语法和命名规则,以保持一个良好的编码风格.一来显示自己的专业.二来方便阅读 ...

  7. 分布式入门之5:paxos

    paxos是去中心化协议,较难理解.   proposer, accepter是其中的主要角色.前者发起投票,后者批准投票. 核心思想是,一旦超过半数的accepter同意某个投票,整个流程结束,批准 ...

  8. PHP 将下划线命名 转换为 驼峰式命名

    function convertUnderline($str , $ucfirst = true) { $str = ucwords(str_replace('_', ' ', $str)); $st ...

  9. Java 把 InputStream 转换成 String 的几种方法

    我们在 Java 中经常会碰到如何把 InputStream 转换成 String 的情形,比如从文件或网络得到一个 InputStream,需要转换成字符串输出或赋给别的变量. 未真正关注这个问题之 ...

  10. 阻止iOS中页面弹性回滚,只允许div.phone_body的区块有弹性

    使用说明:只要替换选择器:var selector = '.phone_body'; /** * 阻止iOS中页面弹性回滚,只允许div.scroller的区块有弹性 */ (function () ...