文档章节

Android系统为什么比以前的手机系统强大

AK_47
 AK_47
发布于 2014/07/09 17:03
字数 1294
阅读 8
收藏 0

有网友发私信提到这样的问题,自己做过很多个移动平台,比如symbian ,mtk,android,ios,简单的把自己的对这些问题一些理解写出来,希望能回答到这位网友的问题。

ni*****网友提问说: 我不是在做软件的,只是因为兴趣才产生这样的疑问,希望能指教 android平台的应用是用java做的是吗,多年前手机就有java模拟器了,那时候怎么手机的java程序感觉并没用现在的android应用功能强大?除了手机硬件的升级,软件上有哪些区别吗,与android的dalvik模拟器有关系没?? 谢谢~

首先,要知道,java只是一门编程语言,它并不能让android系统变得强大。

1、硬件方面

android手机的强大第一肯定和硬件升级有很大关系。以前的手机处理器100Mhz ,内存几十兆。现在的手机处理器去1-2Ghz,还有的双核的,内存1-2G。现在的手机比老的PC还强大,以前在手机上想都不敢想的事情,现在很轻松的就实现了。

2、软件方面

你说的多年前的java模拟器就是那时候的java虚拟机,在手机上的java应该叫j2me,是为了适应手机的小内存小处理能力简化的java虚拟机。功能只能做些简单的界面和图形,还能联网。你说的那样的手机可能有symbian mtk(所谓的山寨机),诺基亚symbian系统之前的手机,还有其他芯片厂商出的系统比如M-star,还有一些说不上来系统的手机,都是放了一个小的j2me虚拟机,而且这些j2me的虚拟机的标准每个手机都不一致,虚拟机的厂商很多,导致虽然都是java小程序,一般只能在某个手机上运行,其他手机运行不了。

3、Android系统的强大

看看Android的系统架构图。从Android系统分析它的强大的原因:


 1.Libraries层

看中间Libraries层,android集合世界上大量优秀的开源库。每个开源库都有很强大的功能。SQlite使得android有了数据库的功能。 WebKit库使得android浏览器能像PC浏览器一样浏览网页。OpenGL使得了手机有了3D图形的能力,SGL 2D引擎。FreeType各种字体。 Surface 使得渲染界面更绚丽。其他库的作用你可以自己看。这些库都是C或者C++编写的,功能性能都非常好。应用层的java语言通过JNI连接到这些库,发挥这些库的作用。这个库层以前手机没有,也不敢有。

2、Dalvik虚拟机

Dalvik虚拟机直接连接Linux内核,提供程序核心的服务:比附线程,内存管理。程序运行的更快更稳定。Dalvik也是java语言运行的环境,有了它才能解释java语言。Dalvik把java的大部分的库都集合进来了,这样程序员就能方便的使用java环境的类集合,比如字符串库,排序,查找等等。以前2me只能使用java全部环境的少部分的功能。应用层那不用java语言行不行呢?肯定也行,比如用python或者其他语言,google选择java可能是java的程序员多,java足够流行,文档也丰富。这样对android的发展有力。没有开发者的支持,就没有应用的丰富,没有应用和游戏,智能手机的功能就回归到了打电话和发短信了。

3、Android 的源码开放

Android的源码的开放,让培训英语的老罗都有机会做手机。其实你自己可以。可见开源的威力(虽然android不是完全的开源)。现在全世界的大部分的手机厂商都在做Android手机,众人拾柴火焰高啊,大家都在做,就形成了良性循环,于是Android 的世界里,手机种类也多了,有几百块的也有几千块一个的,android ipad也出来了,android使得智能电视这样的东西也做出来了。还有Android的硬件抽象层(HAL层),可以让设备厂商保持自己硬件驱动的保密性,又可以让厂商自己的驱动和上层应用的接口保持一直,增加了设备厂商的积极性。设备厂商可以轻松的添加自己特定的硬件。

4、Android应用的开发

相对Symbian开发来说,Android 提供了非常完善的开发参考文档(http://developer.android.com/index.html),设计文档等等,文档的详细程度比symbian好很多倍。让开发者能快速的上手开发软件。开发工具主要使用Eclipse, 在Eclipse 上提供了很多Android开发的强大的插件。


容芳志 (http://blog.csdn.net/totogo2010)

本文遵循“署名-非商业用途-保持一致”创作公用协议

© 著作权归作者所有

AK_47
粉丝 16
博文 533
码字总数 569998
作品 0
嘉定
程序员
私信 提问
当遇到百度和谷歌都不知道的技术问题时改怎么办

当遇到百度和谷歌都不知道的技术问题时改怎么办 写给Google的android开发者 当越来越多的人开始关注android,越来越多的Java开发人员开始有冲动转向android开发的时候,一个值得深思的问题出现...

王帅
2010/08/27
630
2
在电脑上安装试用Android 2.2 SDK

我们以前给大家讲过《Android 2.2开发初学者快速入门十一大秘技》,Google目前通用版本便是Android 2.2,代号“Froyo”,这个版本的进步非常大。相关的文章已经看得够多了,你为什么不自己试...

冯京宝
2010/11/19
3.7K
2
是什么还让你停留在 iOS 平台?是这些理由吗

你喜欢iOS的什么,不妨来说一下。 苹果的 iOS 平台和谷歌的安卓操作系统在功能上来说已经十分强大且丰富,这两个生态系统都获得了第三方开发商的广泛支持。这两个平台既可用于入门级设备,也...

两味真火
2017/03/04
1K
14
谈谈Android4.0

昨天刚拿到Galaxy Nexus,把玩了差不多一天了。这篇文章并不想花大篇幅介绍这款机器的硬件和软件,如果你好奇,可以看一下下面这些知名网站的评测,再详细不过了 Engadget The Verge: 8.6/10...

LiangX
2012/02/10
810
5
从数据看安卓更新速度,变得更快了吗

不同安卓手机厂商对安卓系统的更新速度不一样。一些厂商在安全性和版本更新的速度居领先位置。这导致了消费者购买手机的时候可能会困惑,不清楚手机是否会提供长期的更新支持。 在 Project ...

段段段落
01/22
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

堆”和“栈

C++作为一款C语言的升级版本,具有非常强大的功能。它不但能够支持各种程序设计风格,而且还具有C语言的所有功能。我们在这里为大家介绍的是其中一个比较重要的内容,C++内存区域的基本介绍。...

SibylY
38分钟前
4
0
总结:Https

一、介绍 简单理解,https即在http协议的基础上,增加了SSL协议,保障数据传输的安全性。 它由以前的http—–>tcp,改为http——>SSL—–>tcp;https采用了共享密钥加密+公开密钥加密的方式 ...

浮躁的码农
41分钟前
6
0
数据库表与表之间的一对一、一对多、多对多关系

表1 foreign key 表2 多对一:表 1 的多条记录对应表 2 的一条记录 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记...

Garphy
今天
7
0
MySQL 表崩溃修复

MySQL日志报错 2019-10-19 13:41:51 19916 [ERROR] /usr/local/mysql/bin/mysqld: Table './initread_hss/user_info' is marked as crashed and should be repaired2019-10-19 13:41:51 1......

雁南飞丶
今天
6
0
Error和Exception

1.Error类和Exception类都是继承Throwable类 2.Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问...

大瑞清_liurq
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部