android学习第一天
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电话技术,蓝牙等
- 采用软件叠层方式构建
平台架构图:
架构的简单理解:
- Application(应用程序层)
我们一般说的应用层的开发就是在这个层次上进行的,当然包括了系统内置的一组应用程序,使用的是Java语言- Application Framework(应用程序框架层)
无论系统内置或者我们自己编写的App,都需要使用到这层,比如我们想弄来电黑名单,自动挂断电话,我们就需要用到电话管理(TelephonyManager)
通过该层我们就可以很轻松的实现挂断操作,而不需要关心底层实现- Libraries(库) + Android Runtime(Android运行时)
Android给我们提供了一组C/C++库,为平台的不同组件所使用,比如媒体框架;而Android Runtime则由Android核心库集 + Dalvik虚拟机构成,Dalvik虚拟机是针对移动设备的虚拟机,它的特点:不需要很快的CPU计算速度和大量的内存空间;而每个App都单独地运行在单独的Dalvik虚拟机内每个app对于一条Dalvik进程)而他的简单运行流程如:
- Linux内核
这里就是涉及底层驱动的东西了,一些系统服务,比如安全性,内存管理以及进程管理等
3.本节小结:
本节对Android的历史背景以及现状进行了了解,然后简单分析了Android的系统特性以及系统架构,这些概念性的东西,我们了解了解即可,而下一节我们将开始Android环境的搭建!
转载于:https://my.oschina.net/u/204616/blog/1624305
android学习第一天相关推荐
- Android学习第一书
大家好,我是一名Facebook的工程师,同时也是<第一行代码--Android>的忠实读者. 虽然我最近几年是在国外读书和工作的,但是和很多人一样,我也非常喜欢郭霖的博客以及他写的< ...
- 第一篇文章------我的Android学习第一天。
Android开发是基于Java语言的.经过一段时间的努力,加班加点,终于看完了Mars老师的JavaforAndroid视频教程(Mars老师的教程幽默风趣,干货满满,值得反复咀嚼), 从第一次接触 ...
- Android 学习之《第一行代码》第二版 笔记(二十三)Material Design 实战 —— 卡片式布局
实现基础: Android 学习之<第一行代码>第二版 笔记(二十二)Material Design 实战 -- 悬浮按钮和可交互提示 卡片式布局 卡片式布局是 Materials Des ...
- Android学习路线
Android学习路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和StringBuffer的使用.正则表达式. 3.面向对象的抽象,封装,继承 ...
- 一篇文章一张思维导图看懂Android学习最佳路线
一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...
- Android的第一个程序
摘要:对于安卓的历史和安卓需要学习哪些东西以及怎么安卓环境,我就不在这里多说了,网上一大推. 我这里主要说的就是代码.一些基础的安卓知识.在接下来的每个月里我都会不定期写一些博客给初学者学习,我会尽量 ...
- Android学习笔记26:图片切换控件ImageSwitcher的使用
在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...
- 《Android学习指南》目录
转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先 ...
- Android 学习指南(2017版)
Android 学习指南 不断有新人来询问如何学习Android,很多都是无从下手,没有任何概念.正好好久没写文章了,今天来整理一下Android学习大纲,同时也会附上部分学习资料,主要还是希望大家能 ...
最新文章
- 题目1104:整除问题
- Android Cursor自动更新的实现和原理
- socket通信数据类型
- SPRING CLOUD服务网关之ZUUL
- 工作经常使用的SQL整理,实战篇(一)
- SQL Server 2022 DataSheet
- 关联与依赖区别理解(原)
- UVA10934 Dropping water balloons【DP】
- 史上最全的鸿蒙学习资料——润和满天星系列Pegasus资料汇总
- Apache Tomcat 8配置参考 HTTP连接器
- 人类想要拥有金钱、权力、美丽、永生、幸福……但海龟只想做一只海龟
- python替换列表中元素
- 网页快照(Snapshot)使用的相关研究(萌新向总结)
- 诚聘软件过程工程师,高级软件工程师,软件开发工程师
- 通量数据处理(Python)——NC格式转为CSV格式
- 错觉图片生成实验 - 平行线(黑林错觉)
- 推荐一个免费好用的虚拟机软件
- 《惢客创业日记》2021.01.10(周日)高龄创业的无奈
- 三分钟理解零序电流保护向量图
- Cisco思科交换机端口聚合配置和实验(图文)
热门文章
- UA MATH574M 统计学习I 监督学习理论下
- ArcGIS License Manager 相关总结
- 理解Java枚举类型
- 两个半小时,一份Python基础试卷,满分100,却有80%的人都不及格
- iOS 开发一定要尝试的 Texture(ASDK)
- 数据库相关概念以及简单SQL语句
- varchar和Nvarchar区别 ----转载
- hbase java框架_Hadoop学习笔记—15.HBase框架学习(基础实践篇)
- mysql远程连接数据库的二种方法_mysql 远程连接数据库的二种方法
- 神经网络的分类准确率到底是一个什么物理量