2019独角兽企业重金招聘Python工程师标准>>>

http://www.runoob.com/wp-content/uploads/2015/06/androidmap.pdf

1.Android背景与当前的状况

Android系统是由Andy Rubin创建的,后来被Google收购了;最早的版本是:Android 1.1版本 
而现在最新的版本是今年5.28,Google I/O大会上推出的Android M,有趣的是Android系统的命名都是以点心来命名的,下述表是15个Android版本名称,对应API号以及发布时间!

系统版本名称 API版本号 发布时间
Android 1.5:Cupcake:纸杯蛋糕 3 2009.4.30
Android 1.6:Donut:甜甜圈 4 2009.9.15
Android 2.0/2.0.1/2.1:Eclair:松饼 5/6/7 2009.10.26
Android 2.2/2.2.1:Froyo:冻酸奶 8 2010.5.20
Android 2.3:Gingerbread:姜饼 9 2010.12.7
Android 3.0:Honeycomb:蜂巢 11 2011.2.2
Android 3.1:Honeycomb:蜂巢 12 2011.5.11
Android 3.2:Honeycomb:蜂巢 13 2011.7.13
Android 4.0:Ice Cream Sandwich:冰激凌三文治 14 2011.10.19
Android 4.1:Jelly Bean:果冻豆 16 2012.6.28
Android 4.2:Jelly Bean:果冻豆 17 2012.10.30
Android 4.3:Jelly Bean:果冻豆 18 2013.7.25
Android 4.4:KitKat:奇巧巧克力 19 2013.11.01
Android 5.0:Donut:棒棒糖 21 2014.10.16
Android M:预览版 22 2015.5.28

好了,除了上面这些公共版本外,当然还有一些其他的版本,截止2015.1,各个版本的市场份额如下:

看完上面的信息,我们可能有这样的一个疑问: 
那么多的系统版本,我们开发的时候要针对哪个版本进行开发? 
这就是作为一个Android必须面对的Android的”碎片化”问题了,而这个问题又分为两个: 
①系统碎片化:我们开发App时可能需要做到低版本兼容,比如,最低兼容至2.3版本;由于各种Rom定制的盛行,国人都喜欢对原生系统做一些更改,这导致了在原生系统上可行,而在定制Rom上不可行的问题,比如相机调用~ 
②屏幕碎片化:市面上各种各样屏幕尺寸的手机,4.3寸,4.5寸,4.7寸,5.0寸,5.3寸…等等,除了手机外,还有Android平板,所以开发时我们可能要处理这个屏幕适配的问题,当然,刚学我们并不需要去考虑这些复杂的东西,后续实际开发我们再来深究!

2.Android系统特性与平台架构

系统特性:

  • 应用程序框架支持组件的重用与替换(app发布时遵守了框架的约定,其他app也可以使用该模块)
  • Dalvik虚拟机:专门为移动设备优化 
    -集成的浏览器:开源的WebKit引擎
  • SQLite结构化的数据存储
  • 优化的图形库,多媒体支持,GSM电话技术,蓝牙等
  • 采用软件叠层方式构建

平台架构图:

架构的简单理解:

  1. Application(应用程序层) 
    我们一般说的应用层的开发就是在这个层次上进行的,当然包括了系统内置的一组应用程序,使用的是Java语言
  2. Application Framework(应用程序框架层) 
    无论系统内置或者我们自己编写的App,都需要使用到这层,比如我们想弄来电黑名单,自动挂断电话,我们就需要用到电话管理(TelephonyManager) 
    通过该层我们就可以很轻松的实现挂断操作,而不需要关心底层实现
  3. Libraries(库) + Android Runtime(Android运行时) 
    Android给我们提供了一组C/C++库,为平台的不同组件所使用,比如媒体框架;而Android Runtime则由Android核心库集 + Dalvik虚拟机构成,Dalvik虚拟机是针对移动设备的虚拟机,它的特点:不需要很快的CPU计算速度和大量的内存空间;而每个App都单独地运行在单独的Dalvik虚拟机内每个app对于一条Dalvik进程)而他的简单运行流程如: 
  4. Linux内核 
    这里就是涉及底层驱动的东西了,一些系统服务,比如安全性,内存管理以及进程管理等

3.本节小结:

本节对Android的历史背景以及现状进行了了解,然后简单分析了Android的系统特性以及系统架构,这些概念性的东西,我们了解了解即可,而下一节我们将开始Android环境的搭建!

转载于:https://my.oschina.net/u/204616/blog/1624305

android学习第一天相关推荐

  1. Android学习第一书

    大家好,我是一名Facebook的工程师,同时也是<第一行代码--Android>的忠实读者. 虽然我最近几年是在国外读书和工作的,但是和很多人一样,我也非常喜欢郭霖的博客以及他写的< ...

  2. 第一篇文章------我的Android学习第一天。

    Android开发是基于Java语言的.经过一段时间的努力,加班加点,终于看完了Mars老师的JavaforAndroid视频教程(Mars老师的教程幽默风趣,干货满满,值得反复咀嚼), 从第一次接触 ...

  3. Android 学习之《第一行代码》第二版 笔记(二十三)Material Design 实战 —— 卡片式布局

    实现基础: Android 学习之<第一行代码>第二版 笔记(二十二)Material Design 实战 -- 悬浮按钮和可交互提示 卡片式布局 卡片式布局是 Materials Des ...

  4. Android学习路线

    Android学习路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环.  2.String和StringBuffer的使用.正则表达式.  3.面向对象的抽象,封装,继承 ...

  5. 一篇文章一张思维导图看懂Android学习最佳路线

    一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...

  6. Android的第一个程序

    摘要:对于安卓的历史和安卓需要学习哪些东西以及怎么安卓环境,我就不在这里多说了,网上一大推. 我这里主要说的就是代码.一些基础的安卓知识.在接下来的每个月里我都会不定期写一些博客给初学者学习,我会尽量 ...

  7. Android学习笔记26:图片切换控件ImageSwitcher的使用

    在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...

  8. 《Android学习指南》目录

    转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先 ...

  9. Android 学习指南(2017版)

    Android 学习指南 不断有新人来询问如何学习Android,很多都是无从下手,没有任何概念.正好好久没写文章了,今天来整理一下Android学习大纲,同时也会附上部分学习资料,主要还是希望大家能 ...

最新文章

  1. 题目1104:整除问题
  2. Android Cursor自动更新的实现和原理
  3. socket通信数据类型
  4. SPRING CLOUD服务网关之ZUUL
  5. 工作经常使用的SQL整理,实战篇(一)
  6. SQL Server 2022 DataSheet
  7. 关联与依赖区别理解(原)
  8. UVA10934 Dropping water balloons【DP】
  9. 史上最全的鸿蒙学习资料——润和满天星系列Pegasus资料汇总
  10. Apache Tomcat 8配置参考 HTTP连接器
  11. 人类想要拥有金钱、权力、美丽、永生、幸福……但海龟只想做一只海龟
  12. python替换列表中元素
  13. 网页快照(Snapshot)使用的相关研究(萌新向总结)
  14. 诚聘软件过程工程师,高级软件工程师,软件开发工程师
  15. 通量数据处理(Python)——NC格式转为CSV格式
  16. 错觉图片生成实验 - 平行线(黑林错觉)
  17. 推荐一个免费好用的虚拟机软件
  18. 《惢客创业日记》2021.01.10(周日)高龄创业的无奈
  19. 三分钟理解零序电流保护向量图
  20. Cisco思科交换机端口聚合配置和实验(图文)

热门文章

  1. UA MATH574M 统计学习I 监督学习理论下
  2. ArcGIS License Manager 相关总结
  3. 理解Java枚举类型
  4. 两个半小时,一份Python基础试卷,满分100,却有80%的人都不及格
  5. iOS 开发一定要尝试的 Texture(ASDK)
  6. 数据库相关概念以及简单SQL语句
  7. varchar和Nvarchar区别 ----转载
  8. hbase java框架_Hadoop学习笔记—15.HBase框架学习(基础实践篇)
  9. mysql远程连接数据库的二种方法_mysql 远程连接数据库的二种方法
  10. 神经网络的分类准确率到底是一个什么物理量