Android概览
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概览的更多相关文章
- Android 概览屏幕
文章照搬过来的:原文地址https://developer.android.google.cn/guide/components/recents.html 概览屏幕(也称为最新动态屏幕.最近任务列表或 ...
- Android 3D游戏开发
OpenGL ES(OpenGL Embedded System) Android 3D游戏开发技术宝典:OpenGL ES 2.0(android 3d游戏开发技术宝典 -opengl es 2.0 ...
- Android 触摸手势基础 官方文档概览
Android 触摸手势基础 官方文档概览 触摸手势检测基础 手势检测一般包含两个阶段: 1.获取touch事件数据 2.解析这些数据,看它们是否满足你的应用所支持的某种手势. 相关API: Moti ...
- Android 触摸手势基础 官方文档概览2
Android 触摸手势基础 官方文档概览 触摸手势检测基础 手势检测一般包含两个阶段: 1.获取touch事件数据 2.解析这些数据,看它们是否满足你的应用所支持的某种手势. 相关API: Moti ...
- Android之Activity系列总结(一)--Activity概览
Activity 本文内容 创建 Activity 实现用户界面 在清单文件中声明 Activity 启动 Activity 启动 Activity 以获得结果 结束 Activity 管理 Acti ...
- 全方位理解Android权限之底层实现概览
0000 这个阶段搞了很多和Android文件权限相关的问题,虽然一知半解,但也算是对Android权限机制有一些自己的理解.遂将这些内容整理出来.因为权限这部分涉及到的内容很多,故将知识分为几块内容 ...
- Android 设备管理API概览(Device Administration API)
原文:http://android.eoe.cn/topic/android_sdk Android 2.2通过提供Android设备管理API的支持来引入企业应用支持.在系统级的设备管理API提供了 ...
- 【转】Android系统概览
这篇文章其实原文叫 <老罗的Android之旅>导读PPT 是罗升阳的博客,我觉得用“Android系统概览”作为标题更贴切些,对于在应用层已经开发了一段时间的人来说,读完之后会有很多体会 ...
- Android A/B System OTA分析(一)概览【转】
本文转载自:https://blog.csdn.net/guyongqiangx/article/details/71334889 Android从7.0开始引入新的OTA升级方式,A/B Syste ...
随机推荐
- HDU ACM 1050 Moving Tables
Problem Description The famous ACM (Advanced Computer Maker) Company has rented a floor of a buildin ...
- SQL嵌套查寻初识,以及SOME ANY EXISTS的基础常识
定义: 1 .指在一个外层查询中包含有另一个内层查询.其中外层查询称为主查询,内层查询称为子查询. 2 .SQL允许多层嵌套,由内而外地进行分析,子查询的结果作为主查询的查询条件 3 .子查询中一般不 ...
- 使用logmnr方法找回被误删除Oracle的数据的脚本
俗话说,常在河边走,哪有不湿鞋的.作为一个经常与数据库打交道的程序员,偶尔不小心误删除或误操作的数据也是在所难免的.如果是Oracle数据库,这里给您介绍一种从日志中找回数据的办法,下面这个地址是我以 ...
- HDU 5794 A Simple Chess (Lucas + dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5794 多校这题转化一下模型跟cf560E基本一样,可以先做cf上的这个题. 题目让你求一个棋子开始在( ...
- 转载php在IIS中运行
在IIS中配置PHP运行环境简单步骤 安装 IIS 7.0 打开 Control Panel\Programs\Programs and Features\Turn Windows features ...
- openNebula 模板实例化成虚拟机【参数名为VM_NAME】
{ "action": { "perform": "instantiate", "params": { "vm ...
- [效果]JS折叠菜单-使用方法 (Moo.Fx)
(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期2014-06-24) 用法: 1.添加JS库 CODE:<script src="prototype.lite.js& ...
- arm_cm4.c关于kinetis的修改
/***********************************************************************/ /* * Initialize the NVIC t ...
- 上门洗车App 竟然是块大肥肉!
http://www.leiphone.com/k-xiche-app-idea.html 打车App.租车App.防违规App我们见得多,但洗车App你一定没听过,之前在一次创业路演上碰到一个做上门 ...
- IE下实现类似CSS3 text-shadow文字阴影的几种方法
IE下实现类似CSS3 text-shadow文字阴影的几种方法 一.开始的擦边话 为了测试IE9浏览器,下午晃晃荡荡把系统换成window7的了.果然,正如网上所传言的一样,IE9浏览器确实不支持C ...