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 ...
随机推荐
- 分层模型的典型应用和FishiGUI的分层模型
分层模式的典型应用: 对于交互类型的软件也能够採用分层模式来进行架构分析,一般来说将交互性的软件分为三个层次比較合适:显示层的职责是为了显示信息,应用逻辑层封装那些一般不easy发生变化的核心逻辑,而 ...
- hdu1074 Doing Homework(状态压缩DP Y=Y)
Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- java相关的路径获取 (转载 http://tomfish88.iteye.com/blog/971255)
在jsp和class文件中调用的相对路径不同.在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProp ...
- 【网络流#9】POJ 2135 Farm Tour 最小费用流 - 《挑战程序设计竞赛》例题
[题意]给出一张无向图,从1开始到n,求两条没有公共边的最短路,使得路程总和最小 每条边的权值设为费用,最大流量设为1,然后就是从源点到汇点流量为2的最小费用流. 因为是规定了流量,新建一个源点和一个 ...
- LA 6450 Social Advertising
[题目] 给一个无向图,每当对某个点操作,该点以及与该点相连的点都获得标记,问标记所有点至少需要操作多少次 输入 第一行为T,表示测试数据组数 每组测试数据第一行为n(1<=n<=20)表 ...
- Linux 最大进程数
前言 使用环境:centos 7系统 一.查看用户打开的最大进程数 ulimit -a max user processes (-u) #系统限制某用户下最多可以运行多少进程 ...
- SoundPool 音频播放 详解 示例
简介 如果应用程序经常播放密集.急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了.因为MediaPlayer存在如下缺点: 1) 延时时间较长,且资源占用率高. 2) ...
- Windows Native API
http://en.wikipedia.org/wiki/Native_API Windows 的原生 API 函数通常在系统启动时(这里其他 Windows 组件还不可用).kernel32.dll ...
- HTML标签练习
<html> <> <body> <h4>一个无序列表:</h4> <ul> <li><a href=&quo ...
- bootstrap初探2
控制是否显示:visible-(lg | md | sm |sx)-(block | inline | inline-block), hidden-(lg | md | sm |sx) <!DO ...