Android开发学习(1)基本概念

14 篇文章 2 订阅
14 篇文章 5 订阅

移动设备的火爆,不用过多笔墨,我们已经处于移动办公的时代,未来pc生存的空间,可能越来越小,对于移动应用开发的学习,显得越来越迫在眉睫,凭借着这几年的积累,经验,预计应该容易理解和入门些。

入门一个语言,时刻不忘恩师的教诲,任何事情,在做之前,要想到,这不是一个孤立的事件,必然和自身以前的事件有千丝万缕的联系,有了这些联系,我们在接受一个所谓意义上“新事件”的时候,先要“同化”,找到相同点,然后在实行【N+1】原则,循序渐进积累不同点,最后让这个事件在思维导图中和千千万万个其他事件产生联系,那么“新事件”就转化成了“老事件”。

架构

学习安卓,毕竟兴奋的一个特大号共同点【Java】,安卓是java语言开发,这个省略了很多新语言熟悉学习的过程。二安卓的架构也足够简单清晰,帮助我们更快速的进行熟悉和了解:

Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。
Android主要应用于ARM平台,但不仅限于ARM;

这里写图片描述

从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下:


应用程序层

Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其他应用程序所替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。
对比java-web:类似于我们的web界面以及我们自己写的代码。


应用程序框架层

  • Activity Manager(活动管理器)
    管理各个应用程序生命周期以及通常的导航回退功能
  • Window Manager(窗口管理器)
    管理所有的窗口程序
  • Content Provider(内容提供器)
    使得不同应用程序之间存取或者分享数据
  • View System(视图系统)
    构建应用程序的基本组件
  • Notification Manager(通告管理器)
    使得应用程序可以在状态栏中显示自定义的提示信息
    -Package Manager(包管理器)
    Android系统内的程序管理
  • Telephony Manager(电话管理器)
    管理所有的移动设备功能
  • Resource Manager(资源管理器)
    提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等
  • Location Manager(位置管理器)
    提供位置服务
  • XMPP Service(XMPP服务)
    提供Google Talk服务

对比java-web:类似于框架提供的各种服务,spring,quartz等。


系统运行库层

从图中可以看出,系统运行库层可以分成两部分,分别是系统库和Android运行时,分别介绍如下:

  • 系统库
    系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。其主要分为如下几个:
    • Surface Manager:
      执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成。
    • Media Framework:
      多媒体库,基于PacketVideo OpenCore;支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM。
    • SQLite:
      小型的关系型数据库引擎
    • OpenGL|ES:
      根据OpenGL ES 1.0API标准实现的3D绘图函数库
    • FreeType:
      提供点阵字与向量字的描绘与显示
    • WebKit:
      一套网页浏览器的软件引擎
    • SGL:
      底层的2D图形渲染引擎
    • SSL:
      在Andorid上通信过程中实现握手
    • Libc:
      从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制
  • Android运行时
    Android应用程序时采用Java语言编写,程序在Android运行时中执行,其运行时分为核心库和Dalvik虚拟机两部分。
    • 核心库
      核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、android.net、android.media等等。
    • Dalvik虚拟机
      Android程序不同于J2me程序,每个Android应用程序都有一个专有的进程,并且不是多个程序运行在一个虚拟机中,而是每个Android程序都有一 个Dalivik虚拟机的实例,并在该实例中执行。Dalvik虚拟机是一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机,并进行了内存资源使用的优化 以及支持多个虚拟机的特点。需要注意的是,不同于J2me,Android程序在虚拟机中执行的并非编译后的字节码,而是通过转换工具dx将Java字节码转成dex格式的中间码。

对比java-web:类似于src.jar以及其他我们应用的jdk框架。


Linux内核层

Android是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。
对比java-web:类似于war包运行的linux系统

总结:

在安卓开发的过程中,初期我们更多接触的是应用层的开发,其他的都是调用关系,也就是“黑箱子”,这就大大减少了开发的难度,得力于java程序员的人数优势,安卓应用市场的丰富就自然是这个结果,本篇文章先介绍这么多,下骗我们开始构建我们自己的开发环境。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值