1.1         Android的开发缘由

早起的移动电话单单只具有手机的功能,并没有追求更多的追求功能和游戏娱乐。而在诺基亚提供的“贪吃蛇”游戏集成获得巨大成功的时候,手机制造商们才意识到手机可不不单单用来通信。

不过,却没有足够的动机与资源将用户所需要的所用应用程序都放到手机中,他们需要有某种途径来建议一个门户。恰巧,Internet就是一个不错的选择。不过,那时候的因特网的专业网站常常是色彩斑斓,分辨率远超手机,如何在手机上来更好的显示就成了个问题。

这个问题也就诞生了WAP协议,这个协议其实就是HTTP协议的缩略版,不同于传统的网络浏览器,WAP浏览器被设计为可以在手机内存和带宽的限制下可以运行的程序。而第三方WAP网站,则设计了一套称为无线标记语言(WML)。只不过,相对与专业网站来说,这些WAP网站设计的较为简单。

但是,在WAP带给手机制造商福音的同时,也出现了一系列的问题。譬如,利用WAP进行获利是一件非常困难的事情,没有任何一种内建的付费机制。即便获利,也是对于一些广受欢迎的WAP应用程序,例如像是手机的个性化,壁纸、彩铃之类的。

不过,WAP的不稳定和操作繁琐,却造就了WAP的盈利困境。更何况,移动运营商的一些打击策略,更是挫伤了开发者的激情。

不仅如此,因为共享而造就的不同种类的专用平台,在一定程度上却扼杀了许多极好的应用程序和极佳的点子。

幸运的是,Google决定进军移动领域,它翻新了整个建立在无线应用开发上的系统,旨在为用户和开发人员提供一个更为开放的环境——因特网模式,其允许用户在免费软件、共享软件和付费软件中自由选择,恰恰孕育了服务提供商的自由市场竞争。

在这以基础上,Google联合一些“无线领域”的成员,于2007年11月成立开放手机联盟。

而在此之前的05年,Android被Google收购,旨在建立一个非专用的、开放标准的平台,缓解上述的诺干问题对移动领域的阻碍。

这也就是Android开发的缘由。

1.2         Android的发展

Android平台之所以如此成功,是因为它表现出了强劲的石头,每一个新的Android手机设备都要比之前一年生产的更为强大。以至于在与其他手机操作系统的竞争中,逐步脱颖而出,成就手机领域的霸主地位。

1.3         Android的特点

1.3.1完整

在完整的操作系统上构建了一个健壮的应用程序框架

1.3.2开放

开发人员可以获得前所未有的访问手机设备的权限

1.3.3免费

在这个平台上开发的所有应用程序是不需要任何许可证的,不需承担任何版权费,换言之,他是免费的

1.4         Aandroid平台

1.4.1体系结构

可以认为Android本身就是一个操作系统,实质是基于Linux2.6的内核,Linux内核作为硬件抽象层,在手机物理硬件和Android软件栈之间处理核心系统服务。

内核核心处理的功能包括:

1.  内存管理

2.  进程管理

3.  网络协议栈

4.  输入/输出IO及显示触屏键盘

5.  电源管理

6.  其他驱动程序(WIFI、蓝牙、摄像头、声音、通话、内存、设备传感器)

Android的每个应用程序都为一个进程,每个进程都对应一个Dalvik虚拟机的实例。基于Java的虚拟机,Dalvik为移动设备进行了优化设计,具有更小的内存占用,且多个Dalvik虚拟机的实例在手机设备上可以并行的运行。

1.4.2安全与许可权限

1.4.2.1    作为操作系统用户的应用程序

在每个应用程序后,操作系统都为其创建了一个与之关联的新的用户配置文件。每个应用程序都作为不同的用户运行,拥有自己的私有文件、用户ID以及一个安全的操作系统环境。

1.4.2.2    显示定义的应用程序权限

Android对于系统访问有提供的用户权限,如果应用程序需要访问手机设备的这些系统功能的话,则需要在自己的应用程序中注册访问权限。

1.4.2.3    有线的特设授权

作为内容提供的应用程序也可能需要为其他的应用程序提供即时的权限,以共享特定的信息。这个可以通过同意资源标识符URI来进行临时的授权和撤销。

譬如:content://contacts/phones

这个URI提供了所有联系人电话号码。

1.4.2.4    应用程序通过签名建立用户信任

所有Android应用程序包均使用证书进行了签名,这样用户可以了解应用程序的可靠性。证书的私钥为开发人员所有,有助于开发人员与用户建立一种信任关系,也使得开发人员可以控制系统上的哪些程序拥有访问权。

1.4.2.5    市场开发人员注册

要在市场上发布,开发人员还需要一个账户。Android Market管理非常严密,不允许出现恶意软件。

1.4.3开发Android应用程序

Android SDK提供了一整套广泛的应用程序接口。Android手机设备的核心系统服务是向应用程序敞开的,所有应用程序都可以访问。

1.4.3.1    编程语言

现在的主要为java,C++也可以进行开发,不过用的较少。

1.4.3.2    本地与第三方无区别

不同于其他手机平台,Android平台上没有本地与第三方的区别,所有的应用程序都可以访问核心库和底层硬件接口相同的协议。

1.4.3.3    常拥包

Android提供了一些常用的功能包,开发人员可以根据这些来简便开发。这些包包括有以下这些:

1.  常用用户Widget

2.  用户界面布局

3.  网络安全和Web浏览

4.  结构化存储和关系型数据库

5.  强大的2D和3D图形

6.  音频和影音没提格式

7.  对可选硬件设备的方位,如定位服务、WIFI、蓝牙等

1.4.3.4    应用程序架构

Android应用程序架构提供了开发一般应用程序的全部所需。Android生命周期内包括以下关键组件:

1.  Activity

2.  View

3.  Intent

4.  Service

5.  Notification

1.5         小结

Android作为一种新的移动开发平台,建立在之前的成功经验上。Android设计打打增强了开发人员的开发能力。

参考文献:《移动开发一本书就够》

Android概览的更多相关文章

  1. Android 概览屏幕

    文章照搬过来的:原文地址https://developer.android.google.cn/guide/components/recents.html 概览屏幕(也称为最新动态屏幕.最近任务列表或 ...

  2. Android 3D游戏开发

    OpenGL ES(OpenGL Embedded System) Android 3D游戏开发技术宝典:OpenGL ES 2.0(android 3d游戏开发技术宝典 -opengl es 2.0 ...

  3. Android 触摸手势基础 官方文档概览

    Android 触摸手势基础 官方文档概览 触摸手势检测基础 手势检测一般包含两个阶段: 1.获取touch事件数据 2.解析这些数据,看它们是否满足你的应用所支持的某种手势. 相关API: Moti ...

  4. Android 触摸手势基础 官方文档概览2

    Android 触摸手势基础 官方文档概览 触摸手势检测基础 手势检测一般包含两个阶段: 1.获取touch事件数据 2.解析这些数据,看它们是否满足你的应用所支持的某种手势. 相关API: Moti ...

  5. Android之Activity系列总结(一)--Activity概览

    Activity 本文内容 创建 Activity 实现用户界面 在清单文件中声明 Activity 启动 Activity 启动 Activity 以获得结果 结束 Activity 管理 Acti ...

  6. 全方位理解Android权限之底层实现概览

    0000 这个阶段搞了很多和Android文件权限相关的问题,虽然一知半解,但也算是对Android权限机制有一些自己的理解.遂将这些内容整理出来.因为权限这部分涉及到的内容很多,故将知识分为几块内容 ...

  7. Android 设备管理API概览(Device Administration API)

    原文:http://android.eoe.cn/topic/android_sdk Android 2.2通过提供Android设备管理API的支持来引入企业应用支持.在系统级的设备管理API提供了 ...

  8. 【转】Android系统概览

    这篇文章其实原文叫 <老罗的Android之旅>导读PPT 是罗升阳的博客,我觉得用“Android系统概览”作为标题更贴切些,对于在应用层已经开发了一段时间的人来说,读完之后会有很多体会 ...

  9. Android A/B System OTA分析(一)概览【转】

    本文转载自:https://blog.csdn.net/guyongqiangx/article/details/71334889 Android从7.0开始引入新的OTA升级方式,A/B Syste ...

随机推荐

  1. Flex之HTTPService组件调用

    1.采用<s:HTTPService>标签来实现: <?xml version="1.0" encoding="utf-8"?>< ...

  2. Principles of good RESTful API Design 好的 RESTful API 设计

    UPDATE: This post has been expanded upon and converted into an eBook. Good API design is hard! An AP ...

  3. Hadoop 1.1.2 Eclipse 插件使用——异常解决

    permission denied user 1.修改配置文件在conf/hdfs-site.xml文件中添加如下内容: <property> <name>dfs.permis ...

  4. 40 个顶级 jQuery 图片、内容滑块和幻灯片(转)

    在这个快速发展的网络世界中,我们使用图片.内容滑块和幻灯片来给网站实现良好.有吸引力的外观.你可以吸引浏览者借助图像滑块让网站更加具有活力.使用 JavaScript 可以轻松实现轻量级的图片和内容滑 ...

  5. 【转】Hibernate利用@DynamicInsert和@DynamicUpdate生成动态SQL语句

    原文链接:http://www.cnblogs.com/quanyongan/p/3152290.html 最近在使用Hibernate4中,发现两个很有奥秘的注解 @DynamicInsert 和  ...

  6. SpringBoard

    [SpringBoard] Springboard, or Home Screen, is the standard application that manages the iOS home scr ...

  7. Centos 64位安装 EPEL源

    #直接在线安装rpm包 rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm # ...

  8. ZOJ 3596Digit Number(BFS+DP)

    一道比较不错的BFS+DP题目 题意很简单,就是问一个刚好包含m(m<=10)个不同数字的n的最小倍数. 很明显如果直接枚举每一位是什么这样的话显然复杂度是没有上限的,所以需要找到一个状态表示方 ...

  9. C++、GDAL创建shapefile文件

    源代码网址:http://download.csdn.net/detail/ivanljf/5834823 一.先贴出第一段代码: #include "ogrsf_frmts.h" ...

  10. ios和android一并学习的体会

    如果说为什么要同时学习这两种不同的移动平台,其实有一定的“闲”的因素在里面. 相对于ios,android我是早半年接触的.最开始学习的时候也就是j2ee学习的延续,通过看视频连带看书学了大概一个月的 ...