《论Android的发展方向(个人见解)》

一.Android的出现
1.Android简介

Android一词的本义指“机器人”,同时也是Google于2007年11月5日
宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。
2. Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l’Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L’ève future)中。他将外表像人的机器起名为Android。

二.Android的发展
1.Android的发展历程

2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。

2005年8月17日,Google低调收购了成立仅22个月的高科技企业Android及其团队。安迪鲁宾成为Google公司工程部副总裁,继续负责Android项目。

2007年11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,并与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open
Handset
Alliance)来共同研发改良Android系统,这一联盟将支持谷歌发布的手机操作系统以及应用软件,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。

2008年,在GoogleI/O大会上,谷歌提出了AndroidHAL架构图,在同年8月18号,Android获得了美国联邦通信委员会(FCC)的批准,在2008年9月,谷歌正式发布了Android
1.0系统,这也是Android系统最早的版本。

2009年4月,谷歌正式推出了Android 1.5这款手机,从Android
1.5版本开始,谷歌开始将Android的版本以甜品的名字命名,Android 1.5命名为Cupcake(纸杯蛋糕)。该系统与Android 1.0相比有了很大的改进。

2009年9月份,谷歌发布了Android 1.6的正式版,并且推出了搭载Android 1.6正式版的手机HTC
Hero(G3),凭借着出色的外观设计以及全新的Android 1.6操作系统,HTC
Hero(G3)成为当时全球最受欢迎的手机。Android 1.6也有一个有趣的甜品名称,它被称为Donut(甜甜圈)。

2010年2月份,Linux内核开发者Greg
Kroah-Hartman将Android的驱动程序从Linux内核“状态树”(“staging
tree”)上除去,从此,Android与Linux开发主流将分道扬镳。在同年5月份,谷歌正式发布了Android
2.2操作系统。谷歌将Android 2.2操作系统命名为Froyo,翻译完名为冻酸奶。

2010年10月份,谷歌宣布Android系统达到了第一个里程碑,即电子市场上获得官方数字认证的Android应用数量已经达到了10万个,Android系统的应用增长非常迅速。在2010年12月,谷歌正式发布了Android
2.3操作系统Gingerbread (姜饼)。

2011年1月,谷歌称每日的Android设备新用户数量达到了30万部,到2011年7月,这个数字增长到55万部,而Android系统设备的用户总数达到了1.35亿,Android系统已经成为智能手机领域占有量最高的系统。

2011年8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。

2011年9月份,Android系统的应用数目已经达到了48万,而在智能手机市场,Android系统的占有率已经达到了43%。继续在排在移动操作系统首位。谷歌将会发布全新的Android
4.0操作系统,这款系统被谷歌命名为Ice Cream Sandwich(冰激凌三明治)。

2012年1月6日,谷歌Android Market已有10万开发者推出超过40万活跃的应用,大多数的应用程序为免费。Android
Market应用程序商店目录在新年首周周末突破40万基准,距离突破30万应用仅4个月。在2011年早些时候,Android
Market从20万增加到30万应用也花了四个月。

2013年11月1日,Android4.4正式发布,从具体功能上讲,Android4.4提供了各种实用小功能,新的Android系统更智能,添加更多的Emoji表情图案,UI的改进也更现代,如全新的HelloiOS7半透明效果。

2015年27日,网络安全公司Zimperium研究人员警告,安卓(Android)存在“致命”安全漏洞,黑客发送一封彩信便能在用户毫不知情的情况下完全控制手机。

2.Android系统架构

Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。

应用程序层

Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。

应用程序框架层

开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。

系统运行库层

Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android
应用程序框架为开发者提供服务。以下是一些核心库:
* 系统 C 库 - 一个从BSD继承来的标准C系统函数库 Libc ), 它是专门为基于Embedded linux的设备定制的。
* 媒体库 - 基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3,
AAC, AMR, JPG, PNG 。
* Surface Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。
* LibWebCore - 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。

Linux内核

Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android
大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic
取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 为了达到商业应用,必须移除被GNU
GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux
kernel彻底分开。Bionic/Libc/Kernel/ 并非标准的Kernel header files。Android 的
Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory
Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver
Model)等。下载Android源码之前,先要安装其构建工具 Repo来初始化源码。Repo 是 Android
用来辅助Git工作的一个工具。

3.平台优势

在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

总结

正是Google给我们提供了这么便捷的平台和开源方式,使得我们越来越多的人走向了Android开发的舞台。在这个舞台中,Android发展的人数也是越来越多,出现的手机品牌和版本也是越来越多,在这样的市场竞争中,Google是如何面对未来的呢?这个我相信Google一定有自己的考虑,在这里我也想展望下我自己从一个开发者的角度去说一下未来Android的发展之路。

三.Android的未来

1.先讲一下Android手机品牌的情况,国内Android手机发展中的华为、中兴、魅族、小米、酷派等这些年来纷纷崛起。在国内深受大家的喜爱,更为重要的是,中低端机型的出现还有山寨机的出现,更是让android的发展迅速。
2.各种APP的迅速发展,从我个人这几年中看到的,从我11年开始使用android手机开始,从社交软件开始、例如当前非常火的——微信,然后到现在的生活软件、商业市场软件、企业管理软件、视频直播软件等,这些软件可谓是迅速发展。
3.在这些软件的迅速发展中出现的各种android中出现的结构: a. Facebook公司使用React Native Android b.现在又要非常流行的用H5来开发Android软件 c.在游戏中开发更是以C和C++为主
4.未来Android的发展 面对这个问题,我也是思量了很久,这段时间内我一直在思考,现在给出自己微不足道的见解。Android APP的发展,现在更多的是自动化的为人服务的软件,每一个用户的使用,都希望自己使用的APP有着更加优美和流畅的画面和功能体验,面对这些问题,我们开发者应该如何面对和解决呢?对于画面的流畅,这就需要Android开发者对于美学的要求,个人的审美不同,更应该设计出适用于大众美感的APP,我们作为开发者,也不能光为了追求美而让自己的APP使用的流畅性能上很卡顿,虽然说Android的流畅程度和自己手机的内核和cpu等有关,但是我们更应该在自己程序中减少除系统硬件影响的因素,减少OOM,减少打开应用和运行应用的卡顿现象。
如何去减少卡顿现象,相比这个问题会很困扰大家,但是我给出自己的意见。众所周知,Android现在大多数都是用Java开发的,java运行时候要进行编译成C语言进行运行,这个中间增加了运行编译的时间,同时也让我们的程序显得很卡顿。所以,个人认为未来的软件开发之路中,面向底层的开发更为重要,利用C来开发,减少系统的卡顿,这样更能提升程序的界面流畅性。

哈哈,说了这么多,也算是自己的随笔和微不足道的见解,希望以后能和大家讨论更加深刻的内容,现在还小,还不太懂未来,所以请大家勿笑!

你可能感兴趣的:(Android给我的感受)