最近有一个新的想法涌上心头,决定归零,重新认识一下Android,这个陌生又熟悉的“伙计”。今天就简单介绍一下它的发展与基础吧。
1、前世今身
Android最初并不是Google创造的,而是由Android公司创造的,该公司的创始人是Andy Rubin(安迪.鲁宾)。最初开发这个系统的目的是为了打造一个与PC互动的智能相机网络,而后来随着智能手机市场开始爆棚,Android被改造成手机的操作系统。
Android是一个以Linux为基础的开源操作系统,主要应用于嵌入式设备。而且,现在的Android不仅仅局限于手机,在很多领域和设备中都有Android的身影,例如:车载领域的导航系统,医疗领域的电子诊断设备,智能家居领域的电饭煲等。现在生活中可以说Android在我们身边无处不在,早已不再是个神秘的家伙了,而是大家亲密的朋友,改变着我们的生活,使我们的生活方式更加智能化、便捷化。
2005年,Google收购了Android,Andy Rubin也成为了Google公司的Android产品负责人;
2007年,Google与80余家硬件制造厂商、软件开发厂商和电信运营厂商成立了OHA(开放手机联盟[Open Handset Alliance]),共同改良Android系统,也为现在的Android的广泛使用奠定了基础。同年11月5日发布了Android1.0的手机操作系统,但是这个版本的Android系统还没有赢得广泛的市场支持。
之后,随着Android的不断改善,各大生产厂商相继推出Android系统的智能手机,Android不断地成长成为现在手机操作系统中占有率最高的手机操作系统;而且还被应用到各大领域,发挥着不俗的实力。
Android为什么会这么流行呢?
个人认为主要有以下几点:
1)Android有一个强大的“亲爹”的强力支持,在Android系统中会带有Google提供的各项服务;
2)Android支持的硬件种类繁多,例如:蓝牙、摄像头、GPS、无线设备、感应和压力传感器等等;
3)Android是由Linux基础上发展而来的,它几乎可以做电脑可以做的所有事;
4)Android是开放源代码的操作系统,可以为生产厂商节约成本。
2、Android的平台架构
Android系统是基于Linux系统发展而来,使用的开发语言主要有两种:底层采用C/C++开发,上层应用采用Java语言开发。Android系统的主要组成部分如下图
Android的系统分为五个层次,由上至下分别是Applications(应用程序层)、Application Framework(应用程序框架)、Libraries(函数库)、Android Runtime(Android运行时)和Linux Kernel(Linux内核)。五个层次的功能如下:
1)Applications(应用程序层)
Android包括一个核心应用程序集合(即一系列的核心应用程序),包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人等等。这些应用程序通常都是Java编程语言编写的。
2)Application Framework(应用程序框架)
Android应用程序框架提供了大量的API供Android开发者使用,使其可以编制极其丰富和新颖的应用程序。所有的应用程序其实就是一组服务和系统,包括视图(View)、内容提供者(Content Providers)、资源管理器(Resource Manager)、通知管理器(Notification Manager)、活动管理者(Activity Manager)。
3)Libraries(函数库)
Android包含一个C/C++库的集合。一般情况下,Android开发者不可以直接调用这套库集,需要通过Android应用程序框架来调用这些库集。主要包含:系统C库、媒体库、Surface Manager(界面管理)、LibWebCore、SGL、3D库、FreeType(位图和矢量字体渲染)和SQLite(数据库)。
4)Android Runtime(Android运行时)
Android运行时由两部分组成:Android核心库集和ART。其中核心库集提供了Java语言核心库所能使用的绝大部分功能,而虚拟机则负责运行Android应用程序。
5)Linux Kernel(Linux内核)
Android基于Linux2.6提供核心系统服务,例如安全、内存管理、进程管理、网络堆栈和驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。由于他的开发偏向于底层硬件,所以主要的开发语言为C/C++。(开来我以后有事情做了......)
3、Android应用基础知识
Android应用采用Java编程语言编写。Android SDK工具会将所编写的代码连同任何数据和资源文件编译到一个APK中(Android的软件包,就是一个带有.apk后缀的文件)。一个APK文件包含Android应用的所有内容,它是基于Android系统的设备用来安装应用的文件。
安装到设备后,每个Android应用都会运行在自己的安全范围内:
1)Android操作系统是一种多用户Linux系统,其中的每个应用都是一个不同的用户;
2)默认情况下,系统会为每个应用分配一个唯一的Linux用户ID(该ID仅由系统使用,应用并不知道)。系统为应用上的所有文件设置权限,使得只有分配给该应用的用户ID才能访问这些文件;
3)每个进程都具有自己的虚拟机(VM),所以应用代码是与其他应用隔离的环境中运行的;
4)默认情况下,每个应用都在其自己的Linux进程内运行。Android会在需要执行任何应用组件时启动该进程,然后不再需要该进程或系统必须为其他应用恢复内存时关闭该进程。
Android系统可以通过这种方式实现最小权限原则(要求计算环境中的特定抽象层的每个模块如进程、用户或者计算机程序只能访问当下所必需的信息或者资源)。
4、Android应用组件
Android应用组件是Android应用的基本构建基块。每个组件都是一个不同的点,系统可以通过它进入您的应用。并不是所有的组件都是用户的实际入口点,有些组件相互依赖,但每个组件都以独立实体形式而存在,并发挥特定的作用。
Android共有四种不同的应用组件类型。每种类型都服务于不同的目的,并且具有定义组件的创建个销毁方式的不同生命周期。四种应用组件类型如下所述:
1)Activity(活动):
Activity是Android中最基本也是最重要的一个组件,主要负责Android中的页面展示,所有能看到的界面都是Activity。Activity表示具有用户界面的单一屏幕。
2)Service(服务):
Service运行在Android的后台的组件,它不和用户直接交互,不提供用户界面,但是它却能够为用户提供一些服务。Android中的大部分与硬件相关的一些功能也都是通过服务来实现的。
3)Content Provider(内容提供程序):
Content Provider管理一组共享的应用数据。Android中通过Content Provider来实现应用程序间的数据共享。所以应用程序间的数据只有通过Content Provider来进行共享。
4)BroadcastReceiver(广播接收器):
BroadcastReceiver是一种用于响应系统范围广播通知的组件。尽管广播接收器不会显示用户界面,但它们可以创建状态栏通知,在发生广播事件时提醒用户。Broadcast是Android中各个应用程序之间传输消息的最基本机制,也是唯一的机制。
好的,就见到介绍这么多吧。之后会对四个基本组件进行具体介绍的。“试坑”之路还很长,给自己打个气,加个油!!!
共同学习,写下你的评论
评论加载中...
作者其他优质文章