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 ...
随机推荐
- golang实现ios推送
生成pem文件 打开Keychain Access 导出推送证书和私钥 推送证书 cert.p12 私钥 key.p12 导出.pem文件 转换推送证书 openssl pkcs12 -clcerts ...
- 图书简介:Spring Batch批处理框架
大数据时代批处理利器,国内首度原创解析Spring Batch框架. 内容简介: <Spring Batch 批处理框架>全面.系统地介绍了批处理框架Spring Batch,通过详尽的实 ...
- UIActivityViewController 自定义选项
UIActivityViewController 自定义选项 重写 UIActivity 类 建议下载github上源码学习一下 https://github.com/samvermette/SVWe ...
- 3Com Network Supervisor与IBM Tivoli NetView两款网管软件操作视频
3Com Network Supervisor与IBM Tivoli NetView两款网管软件操作视频 网管软件必须能够实实在在的给我们带来好处,对于企业网络管理来说,其作用体现在以下几个方面: ...
- RxCache 的代码分析,含缓存时间duration的在代码中改变的自己实现的机制
当应用进程创建 RxCache 的实例后,会给应用进程返回一个 rxcache实例及一个 ProxyProvider,代码如下: CacheProviders providers = new RxCa ...
- 第一百九十六天 how can I 坚持
老妈邮的咸菜到了,美味啊,买不到,哈哈. 以后要勤给鱼换水啊,10天不换,水都臭了,拒绝懒惰. 明天要回济南了,刘松结婚,估计又没法发博客了. 两条鱼,一条罗娜,一条我,哈哈. 睡觉.
- 转】从源代码剖析Mahout推荐引擎
原博文出自于: http://blog.fens.me/mahout-recommend-engine/ 感谢! 从源代码剖析Mahout推荐引擎 Hadoop家族系列文章,主要介绍Hadoop家族产 ...
- 使用avalon 实现一个订座系统
avalon对交互非常复杂的WEB应用具有天然的优势,它拥有两大神器:计算属性(这相当于后端WPF的DependencyProperty)与$watch回调. 我们的订餐系统的要求如下,它有一个总额统 ...
- 串口发送浮点型数据及int(2个字节)long int(4个字节)的方法
方法一: 直接把float数据拆分为4个unsigned char(由于数字没法拆分,所以只能用指针的),发过去,在合并为float. 其中有两点要注意. (1)大端存储,小端存储:如果搞错读取数据就 ...
- emWin显示文本字符-【worldsing笔记】
在emWin显示文本字符还是容易的,提供了各种不同的接口,下面是有关于字符显示的常用的用法,可以直接复制到VS2008的模拟ucGui(emWin模拟工程)中运行: 工程代码下载:1.emWin5.2 ...