《爱上android》之初识Android

原创 2017年08月11日 15:27:36

第1章 初识Android

毫无疑问,你肯定急于开始学习Android应用程序开发。毕竟,编程对程序员来说吸引力也是很大的。然而,在开始实际编程前,需要先了解Android的系统。

1.1 Android是什么

Android,中文名为安卓,直接翻译是机器人的意思,它是Google公司推出的一款开源免费的智能操作系统,不仅限于手机,现在很多终端都在使用Android操作系统,如手表、电视、汽车、平板电脑、微波炉等,如图1-1和图1-2所示。一般而言,还是以手机开发为主,本书也是介绍如何进行手机软件开发。

▲图1-1 Android系统的微波炉

▲图1-2 Android智能电视

由于Android系统是免费的,所以推广得很快。目前Android手机市场占有率已经超过80%。

1.2 Android体系架构

为了更好地理解Android系统是如何工作的,接下来解剖一下Android系统,看看其内部是如何构建的,如图1-3所示。

▲图1-3 Android系统架构

Android大致可以分为4层架构、5块区域。图1-3从下到上依次为:

(1)Linux内核层;

(2)系统运行库层;

(3)应用框架层;

(4)应用层。

1.Linux内核层

如图1-4所示,Android系统是基于Linux 2.6内核的,这一层为Android的各种硬件提供了驱动程序,如显示驱动、照相机驱动、声音驱动、电池管理等。当手机开机的时候,这一层肯定先运行。

▲图1-4 Linux内核层

2.系统运行库层

如图1-5所示,这一层通过一些C或者C++库为Android系统提供了主要的特性支持。如Webkit提供了浏览器支持(保证手机能够正常使用浏览器),SQLite库提供了数据库的支持(可以用来存储一些数据),OpenGLES库提供了3D绘图的支持等。

这一层还有Android运行时库,它主要提供了一些核心库,能够允许开发者使用Java语言编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机(Android 5.0系统以后替换成了ART虚拟机),因为Java语言的特性决定它只能通过虚拟机去运行,这个有点像我们在电脑上玩小霸王的游戏需要装模拟器一样。

▲图1-5 系统运行库层

无论是Dalvik虚拟机还是ART虚拟机,都是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况,ART虚拟机安装程序时间稍微长一点,但是运行程序快一点。Google工程师最终决定用ART虚拟机(这点毋容置疑,没人愿意天天装程序)。

不管是Dalvik虚拟机还是ART虚拟机,都要比Java语言官方本身的JVM虚拟机要好用。当然最主要的原因是版权问题,虽然Java语言本身是开源免费的,但是JVM虚拟机不是开源免费的,所以不能直接用JVM虚拟机。

3.应用框架层

如图1-6所示,这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过这些API构建自己的应用程序。这层的使用频率要比上面介绍的两层使用频率高。

▲图1-6 应用框架层

#### 4.应用层 如图1-7所示,所有安装到手机上的应用都属于这一层,例如系统自带的联系人、短信等程序,或者是自己下载的一些应用、游戏,肯定也会包括自己写的程序。

▲图1-7 应用层

应用层和应用框架层大部分都是采用Java代码编写的,Linux内核层和系统运行库层大部分采用C或者C++编写。

计算机语言核心就是0和1,理论上用一个电闸都能编程,闭合就是1,打开就是0,一开一闭程序就运行了,估计干这行的肯定瞧不上做C开发的。编程语言不分好坏,只是功能划分不一样。千万不要和资深程序员争论哪门编程语言好,他们眼中只有0或者1,基本上他能说的让你高山仰止。

1.3 Android发展史

Android从2008年发布1.0至今已经发布了20多个版本了,目前最新版本是Android 8,每一个系统版本都对应一个开发的API版本号,如Android 5.1对应API版本号21。每一个Android版本还都有一个代号,包括甜甜圈、姜饼、三明治、果冻豆、棒棒糖等。

如图1-8所示,表中最右面一栏就是当前版本的市场份额,可以发现Android 4.4是当前最流行的版本,Android 5.0以上的会越来越多,而Android 4.1以下的手机基本上没有了,Android 7.0还不到百分之一。所以本书重点讲解Android 5.0~7.1的知识,兼容到Android 4.1。

数据来源Android官网

▲图1-8 Android各个版本市场占有率

好了,Android基本信息就介绍到这,接下进入真正的Android开发之旅。


京东购书:https://item.jd.com/12144527.html
试读地址:http://www.epubit.com.cn/book/details/4885

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

基于RBAC的权限设计模型

权限分析文档 基于RBAC的权限设计模型:  1        RBAC 介绍 RBAC 模型作为目前最为广泛接受的权限模型。 NIST (The National Institute of Stan...

权限管理——RBAC模型总结

权限管理,这是每个软件系统都会涉及到的,而且权限管理的需求本质往往都是一样,无在乎怎么的角色拥有怎样的权限,只要你充当了这个角色,你就拥有了这些功能。          举个简单例子:一个老师在学...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

使用SpringSecurity3实现RBAC权限管理

1、 What? 什么是权限管理?         具体可参见百度:http://baike.baidu.com/view/2108713.htm     名词备注:  ...

RBAC权限设计实例

实现业务系统中的用户权限管理  B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每...

权限系统与RBAC模型概述[绝对经典]

0. 前言 一年前,我负责的一个项目中需要权限管理。当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋。当时google了一些权限管理的资料,从中了解到早就有了...
  • zhq651
  • zhq651
  • 2016-09-18 18:05
  • 1638

SpringMVC+mybaits+mysql实现简单的登录注册

小白心得,欢迎大神的点评和纠正错误,谢谢通过学习,自己写的springMVC+mybaits+mysql实现的简单的登录和注册(第二篇),在刚学完springmvc之后,就直接开整,就个人认为spri...

简单的RBAC用户角色权限控制

Java web项目中,无论项目是大是小,或多或少都会涉及到用户访问权限的控制,权限管理总体的设计思路就是,不该看的不看,不该做的不做!据我目前的了解,我所知道的几种实现访问权限控制的方式有:JQue...

使用Qt开发中国象棋(六):将军和死棋检测

下棋的过程中,某一方主帅被对方攻击就是将军,如果不能解除危险,就是死棋。在这个游戏中实现了将军的判断和死棋的检测。具体如下:         (1)每走一步棋时,先要判断自己能不能这样走,当然除了走法...
  • zxywd
  • zxywd
  • 2015-11-05 14:40
  • 742

RBAC权限模型——项目实战

这篇文章我们将RBAC权限模型的4种设计思想进行了介绍,接下来我将我们自己项目中的权限模型进行了详细的介绍,最后还针对我们当前的权限模型提出了自己的一点想法。

RBAC权限管理

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)