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系统框图

下面简单介绍下各层的主要作用:

  1. 应用层:运行于Android虚拟机上的程序 ,也就是作为开发人员开发的APP应用。应用层里,主要通过Android提供的组件与Android的API进行开发。
  2. 应用框架层:是Android应用开发的核心,提供了开发所必须的各种基础API框架。
  3. 系统类库层:为了支持上层应用,Android系统通过本层中的一些C/C++库来支持我们所使用的各个模块或组件。
  4. 系统内核层:主要实现文件系统,内存管理,进程调度,进程间通信,电源管理及驱动等功能。

二、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 系统框架及应用程序执行过程的更多相关文章

  1. eclipse开发android入门学习

    1.device窗体            查看android执行情况的窗体和DDMS内容一致 2.android.bat             在adb路径下执行adb操作,实现android系统 ...

  2. 1.Android入门学习

    现在移动开发Android.iOS都很普遍,本人也是第一次学习Android,所以记录自己学习Android点滴,刚学不久肯定有很多不足地方望大家批评指正. 一.Android工具环境搭配 网上已经有 ...

  3. Android源代码学习之六——ActivityManager框架解析

    ActivityManager在操作系统中有关键的数据,本文利用操作系统源代码,逐步理清ActivityManager的框架,并从静态类结构图和动态序列图两个角度分别进行剖析,从而帮助开发者加强对系统 ...

  4. android入门学习-天气预报app(一)

    引言 学习<android第一行代码>根据书本开发的天气预报app,主要用于熟练操作android开发(android studio3.0平台). 今天主要分享一下从服务器上获取天气信息, ...

  5. Android开发学习——android体系结构

    Android的体系结构采用了分层架构的思想, 从上层到底层共包括四层,分别是应用程序程序层.应用框架层.系统库和Android运行时和Linux内核. 一 应用程序层 该层提供一些核心应用程序包,例 ...

  6. Android开发学习——android存储

    Android的存储 内部存储空间RAM内存:运行内存,相当于电脑的内存ROM内存:存储内存,相当于电脑的硬盘外部存储空间 SD卡:相当于电脑的移动硬盘    * 2.2之前,sd卡路径:sdcard ...

  7. Android开发学习——Android项目的目录结构

    Android项目的目录结构: 资源文件夹: 清单配置文件: Android的四大组件在使用前全部需要在清单文件中配置 <?xml version="1.0" encodin ...

  8. Android布局学习——android:gravity和android:layout_gravity的区别

    [Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.And ...

  9. Android开发学习——android数据存储

    Android的存储 Android中的数据存储方式及其存储位置 SharedPrefrence存储 1). 位置           /data/data/packageName/shared_pr ...

随机推荐

  1. 推荐一款不错的dialog小工具:artDialog

    推荐一款不错的dialog小工具, 地址:http://www.planeart.cn/demo/artDialog/_doc/labs.html 相关介绍例如以下: artDialog是一个基于ja ...

  2. java.lang.UnsatisfiedLinkError: Native method not found 三种可能解决方案

    so文件编译生成后,运行时,有时候会遇到java.lang.UnsatisfiedLinkError: Native method not found问题,有可能是以下三种因素: 一.Jni方法头部大 ...

  3. PowerDesigner 生成带凝视SQL 各个版本号通用10(12、15)

    做数据库是设计时最苦恼的事就是用PowerDesigner工具设计完数据库运行SQL文件后没有凝视.那么怎么才干让PowerDesigner设计完有凝视呢,下边教你一个笨的方法,方法尽管笨,可是能实现 ...

  4. [转] GPS坐标转换经纬度及换算方法

    GPS坐标和经纬度的算法和概率不太一样,但是我们可能会将他们互通起来用,下面先贴上我做的转换工具:http://map.yanue.net/gps.html.里面实现了gps到谷歌地图百度地图经纬度的 ...

  5. 95秀-自定义对话框 dialog 合集

    普通的确认对话框 NormalDialog.java import android.app.Dialog; import android.content.Context; import android ...

  6. (转)html5 Placeholder属性兼容IE6、7方法

    使低版本浏览器支持Placeholder有很多方法,都不是很完美,或多或少有点问题,且有些原生支持的浏览器在获得焦点时会清空Placeholder提示.发现zhihu的解决方法不错,特记录下 wind ...

  7. 秒味课堂Angular js笔记------$scope.$watch和$scope.$apply

    $scope.$watch(watchFn , watchAction , deepWatch) 其中,watchFn是带有angular表达式或函数字符串: watchAction是一个函数或者表达 ...

  8. AjaxManager的实现

    在NeralJS思路整理一章中我们提到过实用ajax管理模块控制ajax请求,以减少ajax请求数量,优化加载,以下是ajax模块的实现,我已经确保经历简单. /** * Created by wil ...

  9. Asp.Net WebAPI 中Cookie 获取操作方式

    1. /// <summary> /// 获取上下文中的cookie /// </summary> /// <returns></returns> [H ...

  10. ASP.NET实现年月日三级联动(局部刷新)

    直接上代码,不多说别的了 <asp:ScriptManager ID="ScriptManager1" runat="server"> </a ...