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 ...
随机推荐
- linux if 判断字符串是否相等
在命令行中修改时间: 如果linux系统时间等于2017-09-09,则ok:否则将当前系统时间修改为2017-09-09 var=`date '+%Y-%m-%d'`;if [ "$var ...
- 左移运算符<<
在许多计算机编程语言(例如:C语言.C++语言.Java语言.JavaScript语言,Pascal语言等)中,“<<”代表左移运算符(就相当于'shl').该运算符为双目运算符,结合方向 ...
- C primer plus 读书笔记第九章
本章的标题是函数.C的设计原则是把函数作为程序的构成模块. 1.函数概述 函数的定义:函数是用于完成特定任务的程序代码的自包含单元. 使用函数的原因:1.函数的使用可以省去重复代码的编写.2.使得程序 ...
- [RxJS] Creation operators: empty, never, throw
This lesson introduces operators empty(), never(), and throw(), which despite being plain and void o ...
- 【转】app瘦身
iPhone经过这几年的发展,已经发生了很大的变化,例如屏幕变得更加多样,尺寸更多,内存变得更大,CPU的架构也在变化.伴随着iPhone的变化,iOS也在变化,例如AutoLayout.size c ...
- SpringMVC04controller中定义多个方法
public class MyController extends MultiActionController { // 新增 方法修饰符要是public public ModelAndView ad ...
- Jenkins api java 调用
String filepath = "E:\\config.xml"; HttpClient client = new DefaultHttpClient(); HttpPost ...
- FileUpload 简单上传+小预览
页面代码 : <form id="form1" runat="server"> <div> <asp:FileUpload ID= ...
- Jquery+css实现图片无缝滚动轮播
Today,在XX学院的教学视频中,偶尔看到了Jquery+css实现图片无缝滚动轮播视频教程,虽然以前已写过类似的,但是我感觉他学的比较精简.为了方便以后做项目时直接拷贝,特地写出来,顺便和大家分享 ...
- Windows系统创建硬链接文件
源文件夹:E:\深海 创建新硬链接文件夹:D:\微云同步盘\719179409\4-工作资料\深海 打开命令提示符(管理员) 敲入以下命令: 创建成功后,进入目录 D:\微云同步盘\71917 ...