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 ...
随机推荐
- Flex 对Java端返回Collection的处理方法
将Flex与Spring集成后(BlazeDS 与Spring集成指南 ),第一个面临的问题就是:对于Java端返回的各种Java类型的对象,Flex中能否有相应的数据类型来映射. 处理,尤其是Lis ...
- 苹果官网 demo The Elements 阅读随笔
The Elements https://developer.apple.com/library/ios/samplecode/TheElements/Introduction/Intro.html# ...
- HTML5-企业宣传6款免费源码
本文主要分享了6个很不错的HTML5宣传模板源码,这些生动具体的介绍了各个公司的产品及公司各类应用,有汽车.旅游.公司,房产等Query特效,大家一起来欣赏吧. 一.九秒教育企业海报(移动端)这次要分 ...
- POJ 3254 Corn Fields (状压dp)
题目链接:http://poj.org/problem?id=3254 给你n*m的菜地,其中1是可以种菜的,而菜与菜之间不能相邻.问有多少种情况. 状压dp入门题,将可以种菜的状态用一个数的二进制表 ...
- HDU 5778 abs (素数,暴力)
题意:给定一个数x,求正整数y≥2y\geq 2y≥2,使得满足以下条件: 1.y-x的绝对值最小 2.y的质因数分解式中每个质因数均恰好出现2次. 析:由于y质因数分解式中每个质因数均出现2次,那么 ...
- iOS维码的生成和扫描
iOS生成二维码(彩色 + 阴影) http://www.jianshu.com/p/85e131155b79?plg_nld=1&plg_uin=1&plg_auth=1&p ...
- 使用XML与远程服务器进行交互
最近在做的一个项目其中的一部分是与远程服务器进行交互,确定身份验证的合法性,于是编写了SendRequest方法 此方法发送给远程服务器XML请求,服务器经过处理后,返回XML回应,由此方法接收到后进 ...
- 结构类模式(三):组合(Composite)
定义 将对象组合成树形结构以表示“部分整体”的层次结构.组合模式使得用户对单个对象和组合对象的使用具有一致性. 有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客 ...
- ActiveMQ简介与安装
开源消息总线 支持JMS1.1和J2EE 1.4规范的 JMS Provider实现(持久化,XA消息,事务) 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去 支持 ...
- 9.依赖(Dependence)
依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系.可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的. ...