Android 的前世今生

  • Android 的诞生

    2003年10月,有“Android之父”之称的安迪·鲁宾(Andy Rubin)在美国加利福尼亚州帕洛阿尔托创建了Android科技公司(Android Inc.)。

  • Android 的发展历程

    2005年8月17日谷歌公司(Google)收购了这家公司,并不断将其开发成为现在的安卓系统。

    2007年11月12日,Android Beta操作系统SDK正式发布。

    2008年9月23日发布,这也是Android系统最早的版本。 Android 1.0

    伴随1.0的发布,首款搭载Android 1.0 OS的Android手机诞生。因为1.0不支持触摸输入,因此G1配置了实体键盘。图为HTC Dream(G1)



    2009年4月30日发布。从这时起,Android系统版本都是以糕点进行命名,并以字母排序。



    2009年9月15日发布。Android1.6首次支持了CDMA网络, Android 1.6



    2009年11月 Android 2.0



    2010年5月20日发布。直到Android2.2发布时,谷歌似乎才开始认真考虑Android的企业级功能。



    2010年12月7日发布。该版本开始对NFC的支持,Android 2.3



    2011年2月2日发布。“蜂巢” Android 3.0,专为平板设计



    2011年10月19日在香港发布。Android4.0



    2012年6月28日发布。Android4.1是谷歌继蜂巢之后,一次全新的平板策略尝试。

2014 年 10 月 15 日发布,Lollipop(棒棒糖):Android 5.0

全新Material Design设计风格

支持多种设备

支持64位ART虚拟机

2015年9月30日,Marshmallow(棉花糖):Android 6.0

原生的应用权限管理

支持RAW格式照片

支持快速充电的切换

2016年5月18日,Nougat(牛轧糖):Android N (Android 7.0)

分屏多任务

全新下拉快捷开关页

系统级电话黑名单功能

夜间模式

通知消息快捷回复

  • Android 未来发展方向预测

    智能手机必然越来越智能,只是Android做为智能手机的一个方阵,自然也有它的生命周期。

    现在,Android如日中天,在没有其他足够代替智能手机的产物出现之前,是不太可能被其他的东西所替代。

    Android现在已经加入了智能家居的配置,也会加强在身份识别上的认证,整合各种各样的ID Card。

    现在Android也不仅仅是手机上发力,在汽车导航,在电视,在有屏幕的地方,都可能有它的地盘。

Android 系统框架

  • 基本认知

    从使用者角度来看,第一次拿到Android手机,很明显的感觉就是和Windows桌面有些相似,都是在系统的基础上安装一些应用程序。

    直观的了解是,Android分为了系统层和应用层。

    Android又有很多电脑不具有的硬件设备,这些都是有它自己的驱动程序来引导的。

    有一定系统知识的人都知道,系统通常又可以分为内核层,系统运行库,和界面等几个层次。

    但这些毕竟都是比较简单的认知,下面还是从它的实际架构图上去了解下Android的层次
  • 框架图



    从图中可以看出,Android主要分为四个层次

    Linux 内核层

    系统运行库 Android运行时库

    应用程序框架层

    应用层

    应用层最好理解,也是智能手机价值体现的重要部分。

    应用程序构架层,也是程序员最常使用的部分,这里就包括了Android著名的四大组件

    系统运行库,程序要使用的一些常用库如(数据库,字体库,浏览器引擎,图形,媒体库等)

    Linux内核,就是一些驱动,文件系统,安全性,网络等几乎直接和硬件打交道的东西。

Android 主要组成 部分

  • 四大组件

    Activity

    直接翻译叫:活动,也就是你能看到有界面的对象,应该都算是Activity了。

    它是由Fragment或者 View(控件)填充来实现的。类似于电脑软件的Form界面 。

    Form界面的鼠标点击事件,在Activity中就是手指的点击事件,只是手指可以做出更多的操作,也就是说Activity可以对多种操作做出反应。(点,长按,双击,拖等)

    每个Activity都有它自己的生命周期,和人一样,有出生的时候,有使用的时候,有暂停(生病)的时候,有恢复的时候,当然也有死亡,还有销毁(火葬)的时候。在不同的时期,Activity对应做相应的事情,如:出生就只是创建一个新生命,它还什么都不能做,长大了就可以对一些事做出处理了。

    ContentProvider

    内容提供器,相当于一个云空间,谁都可以获取其中的内容,也可以往云中放内容。

    这样,不用每一个软件都自己建一个数据库,节省很多空间,同时也省去同类型数据存在在不同软件中找不到的情况。

    BroadCastReceiver

    广播,就是手机的喇叭,可以放外音,也可以用耳朵听。

    放外音就是谁都可以听到,谁都可以处理(当然还有一些特别的地方)

    用耳朵听,就只能自己听到了,自己给自己发送广播,自己的广播,自己处理。

    有什么好处呢?当有消息来了,不用一个个的通知了,谁要处理,谁处理去。

    如果是我自己的消息来了,你点一下,我自然也会来处理的。

    Service

    服务,就是在后台中运行的代码,这些代码没有界面显示。

    以前会有疑惑,后台运行的歌曲 不是有一个通知栏显示吗?其实那只是通知栏界面,跟Service没有关系,不要这个界面也是可以播放歌曲的。

    Service有点类似人的大脑,你是看不到它在算东西的,但是它能在大脑中设计出各种东西,做各种复杂的运算,还可以做一晚上的梦呢。

    但大脑不是无缘无故的就开始运作,而是要有一定的触发条件,比如看到了什么东西,有什么问题发生了等等,Service也是一样,一定要一个东西触发它启动,并告诉程序什么时候我做完了,然后返回一个结果出来。

  • 手机硬件(传感器)

    现在手机越来越强,但变化的主要是硬件上的,软件上的改变并不多。

    硬件上的变化主要是:各种传感器的加持,如最出名的(相机!!)

    NFC,蓝牙,指纹,温度传感器,等等。

    因为有了这些东西的加入 ,手机的功能也越来越丰富了,可能实现很多传统计算机很难实现的能力了。

    也为软件设计带来了很多有意思的思路。

Android 常用的操作

现在的智能手机,带键盘的越来越少,因为手指可操作的能力比键盘要强很多,手机可以点,按,双击,拖,两指划,画图,指纹,等等。

因为手指的无限灵活性,也让Android带有了各种反馈操作能力 。

如:按下,抬起,移动,都可以给它分配一个反应的动作。

Android 基础概念了解的更多相关文章

  1. Android Multimedia框架总结(五)多媒体基础概念

    转载请把头部出处链接和尾部二维码一起转载,本文出自: http://blog.csdn.net/hejjunlin/article/details/52431887 上篇中介绍了MediaPlayer ...

  2. 【转】Pro Android学习笔记(二):开发环境:基础概念、连接真实设备、生命周期

    在Android学习笔记(二):安装环境中已经有相应的内容.看看何为新.这是在source网站上的Android架构图,和标准图没有区别,只是这张图颜色好看多了,录之.本笔记主要讲述Android开发 ...

  3. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  4. Android开发面试经——2.常见Android基础笔试题

     标签: androidAndroid基础Android面试题Android笔试题 2015-03-12 15:04 3361人阅读 评论(3) 收藏 举报  分类: Android开发(29)  版 ...

  5. Android基础总结(8)——服务

    服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务.服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了 ...

  6. 【Xamarin开发 Android 系列 4】 Android 基础知识

    原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...

  7. Android采访开发——2.通用Android基础笔试题

    注意finddreams博客: http://blog.csdn.net/finddreams/article/details/44219231 正值跳槽的热季.整理一下Android面试中最常考的笔 ...

  8. IM 融云 之 开发基础概念

    基础概念 - 开发篇 App Key / Secret App Key / Secret 相当于您的 App 在融云的账号和密码.是融云 SDK 连接服务器所必须的标识,每一个 App 对应一套 Ap ...

  9. C#基础概念总结

    C#基础概念总结 1..NET Framework概念 2. C#的含义: 3.什么是面向对象编程: 4.Visual Studio开发工具: 5..NET程序运行的机制: 1..Net Framew ...

随机推荐

  1. scp使用

    从82服务器复制文件 scp -P 50028 -r root@***.**.**.82:/data/upload.tar / -P:指定非ftp22端口

  2. Android 2D Graphics学习 Region和Canvas裁剪

    1.首先介绍Region类 Region,中文意思即区域的意思,它表示的是canvas图层上的某一块封闭的区域. /**构造方法*/ public Region()  //创建一个空的区域 publi ...

  3. ReactiveX编程范式

    ReactiveX http://reactivex.io/ An API for asynchronous programmingwith observable streams The Observ ...

  4. >>> 主页推荐链接

    Apple专区 App Store 排行榜 App Store 排行榜 - 中国区 PC6苹果网 威锋网 第三方 环信 - 即时通讯云领导者 腾讯Bugly - Android Crash | iOS ...

  5. win7&win8.1 x64位系统下在VS2010下配置MPICH2&测试&解决scanf不能输入

    1.       Mpich下载地址http://www.mpich.org/downloads/,下载mpich2-1.4.1p1-win-x86-64(32位系统请下载mpich2-1.4.1p1 ...

  6. CMD命令大全

    有关某个命令的详细信息,请键入 HELP 命令名 ASSOC 显示或修改文件扩展名关联. AT 计划在计算机上运行的命令和程序. ATTRIB 显示或更改文件属性. BREAK 设置或清除扩展式 CT ...

  7. 安卓 android ListView 数据填充

    在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示.抽空把对ListView的使用做了整理,并写了个小例子,如下图. 列表的显示需要三 ...

  8. paper 130:MatLab分类器大全(svm,knn,随机森林等)

    train_data是训练特征数据, train_label是分类标签.Predict_label是预测的标签.MatLab训练数据, 得到语义标签向量 Scores(概率输出).1.逻辑回归(多项式 ...

  9. paper 121 :matlab中imresize函数

    转自:http://www.cnblogs.com/rong86/p/3558344.html matlab中函数imresize简介: 函数功能:该函数用于对图像做缩放处理. 调用格式: B = i ...

  10. Java多线程开发系列之一:走进多线程

    对编程语言的基础知识:分支.选择.循环.面向对象等基本概念理解后,我们需要对java高级编程有一定的学习,这里不可避免的要接触到多线程开发. 由于多线程开发整体的系统比较大,我会写一个系列的文章总结介 ...