Android入门学习:Android 系统框架及应用程序执行过程
Android基础知识学习
新手上路,还请多多帮助。由于初学,博客内容难免有不正确的地方,还请各位多多指教,相互学习!
主要内容:
1、Android层次架构及主要功能
2、Android编程模型,程序执行流程
由于国内Android系统很流行,大多数使用的智能机都是Android系统,对于学习Android系统编程的新手来说,了解Android系统框架层次很有必要。Android开发主要用Java语言,因此在学习之前,可以先了学习Java的基本知识,关于Java的内容大家就自己找书,找视频学习了。
一、Android系统架构
Android系统主要分为四层,从上往下依次是:应用层(Application)、应用框架层(Application Framework)、系统类库层(System Library)、系统核心层(System Core/Kernel)。
图1. Android系统框图 图2. Android系统框图


下面简单介绍下各层的主要作用:
- 应用层:运行于Android虚拟机上的程序 ,也就是作为开发人员开发的APP应用。应用层里,主要通过Android提供的组件与Android的API进行开发。
- 应用框架层:是Android应用开发的核心,提供了开发所必须的各种基础API框架。
- 系统类库层:为了支持上层应用,Android系统通过本层中的一些C/C++库来支持我们所使用的各个模块或组件。
- 系统内核层:主要实现文件系统,内存管理,进程调度,进程间通信,电源管理及驱动等功能。
二、Android系统应用程序编程模型
了解了Android系统的结构之后,再看看Android应用程序的执行流程。
图3. 传统平台 图4. Android平台

传统编程,操作系统启动应用程序使用单一入口,通常是main函数,操作系统负责把程序代码加载到进程中,然后开始执行它。
Android系统编程,支持多个应用入口,Android系统会假定,程序会在不同的地方启动它们。引入了虚拟机,保证程序在各个层次,正常的启动流程之内、之外都能启动,程序之间更像是一组组件,是相互协调配合的关系。
图5. 传统Java程序执行流程 图6. Android程序执行流程

总结:
以上简单介绍了Android的系统框架及应用的编译执行过程,希望对大家学习Android会有帮助。主要是对几幅图有个深刻印象就好,在以后开发过程中知道自己调用了哪些组件,处在什么Android系统的什么层次,有个清晰的思路。
参考:
1.《Android SDK程序设计与开发范例》 清华大学出版社
2.《Android程序设计》 O‘REILLY / 机械工业出版社
3.《Android和PHP开发最佳实践》 机械工业出版社
其他:Android教学视频,安卓开发社区,网络资料 ... ...
Android入门学习:Android 系统框架及应用程序执行过程的更多相关文章
- eclipse开发android入门学习
1.device窗体 查看android执行情况的窗体和DDMS内容一致 2.android.bat 在adb路径下执行adb操作,实现android系统 ...
- 1.Android入门学习
现在移动开发Android.iOS都很普遍,本人也是第一次学习Android,所以记录自己学习Android点滴,刚学不久肯定有很多不足地方望大家批评指正. 一.Android工具环境搭配 网上已经有 ...
- Android源代码学习之六——ActivityManager框架解析
ActivityManager在操作系统中有关键的数据,本文利用操作系统源代码,逐步理清ActivityManager的框架,并从静态类结构图和动态序列图两个角度分别进行剖析,从而帮助开发者加强对系统 ...
- android入门学习-天气预报app(一)
引言 学习<android第一行代码>根据书本开发的天气预报app,主要用于熟练操作android开发(android studio3.0平台). 今天主要分享一下从服务器上获取天气信息, ...
- Android开发学习——android体系结构
Android的体系结构采用了分层架构的思想, 从上层到底层共包括四层,分别是应用程序程序层.应用框架层.系统库和Android运行时和Linux内核. 一 应用程序层 该层提供一些核心应用程序包,例 ...
- Android开发学习——android存储
Android的存储 内部存储空间RAM内存:运行内存,相当于电脑的内存ROM内存:存储内存,相当于电脑的硬盘外部存储空间 SD卡:相当于电脑的移动硬盘 * 2.2之前,sd卡路径:sdcard ...
- Android开发学习——Android项目的目录结构
Android项目的目录结构: 资源文件夹: 清单配置文件: Android的四大组件在使用前全部需要在清单文件中配置 <?xml version="1.0" encodin ...
- Android布局学习——android:gravity和android:layout_gravity的区别
[Android布局学习系列] 1.Android 布局学习之——Layout(布局)详解一 2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数) 3.And ...
- Android开发学习——android数据存储
Android的存储 Android中的数据存储方式及其存储位置 SharedPrefrence存储 1). 位置 /data/data/packageName/shared_pr ...
随机推荐
- 适配ios7
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) { self.edgesForExtendedLayout = UIR ...
- 使用JDK自带缓存(Cache)实现Cookie自动登陆
自定义一个缓存类AdminCache package jw.admin.common; import jw.base.entity.Admin; import sun.security.util.Ca ...
- Tomcat 加入windows 服务自启动设置
基于J2ee技术开发,可以运行在Tomcat.weblogic.websphere等J2ee应用服务器上,对于一般访问量不是很高的客户我们推荐使用Tomcat(开源免费),一般情况下Tomcat服务需 ...
- mvc和webapi同一解决方案调试办法
今天在研究WebApi的时候,用mvc端直接请求webapi接口,发现怎么也请求不了,自己搞了半天,猜测可能是webapi没有完全启动吧,解决办法是将解决方案属性改为多启动项目,具体方法如下: 直接运 ...
- spring07 JDBC
1.创建对应的数据库 2.在MyEclipse中创建项目 引入需要的jar包 3.创建数据访问层 public interface StudentDao { //新增学生 int addStuden ...
- HTTP状态码(HTTP Status codes)简介
HTTP可能大家都熟悉,就是超文本传输协议.浏览器通过HTTP与WEB Server通讯(也有一些其它软件比如IM使用HTTP协议传递数据),把我们的请求(HTTP Request)传递给服务器,服务 ...
- android-Activity的执行流程
概述 The following diagram shows the important state paths of an Activity. The square rectangles repre ...
- linux jdk,java ee ,tomcat 安装配置
1.把mypagekage.iso 挂载到linux操作系统中. 在VM做好配置,使用 mount /mnt/cdrom 2.把安装文件拷贝到/home cp 文件名 /home (快捷键tab) 3 ...
- JUnit报initializationError的解决方法
在新搭建的环境上测试时,一个模块发现错误: java.lang.NoClassDefFoundError:org/hamcrest/SelfDescribing 一看就是缺少Class.多方查找,发现 ...
- react-native迁移版本遇到的问题
问题: 1. failed to find Build Tools revision 23.0.1 两个版本号需要对应