android入门之系统架构和环境搭建
2016-10-12 15:59
337 查看
1.android背景
android起源android系统是由安迪鲁宾团队开发的,最初用于数码相机,2005.08被google收购。(真是抱了一个好大腿)在接下来的几年中,android的发展简直是如日中天。
android命名来源
android名字是因为安迪鲁宾喜欢一个游戏的人物–大瓢虫,感觉很搞笑。不过我想在现在的这个时代,android小机器人的名字也应该已经深入人心了吧。
android图标来源
安迪鲁宾在上厕所的灵感。牛逼的人就是不一样,上厕所都能够构思出一个和名字一样深入人心的图标。在下佩服,实在是佩服。
android应用范围
现如今的android系统可以应用在很多平台上,例如手机,平板,智能家居,穿戴设备等都是比较常用的平台设施。
android版本号
android每一代系统都是以食物来进行命名的,包括后来被google收购了的时候也同样沿袭了这个规定,这不是从侧面表达了google的人都比较好吃呢?哈哈。。又说偏了。
版本号以及出版时间分别如下
各大版本对应的新特性这个实在是太多,各位不需要具体了解,大致了解一下新版本的新特性就好了,比如5.0, 6.0, 7.0都有哪些新特性。做个表格出来主要是笔者曾经去某司面试,面试题中就有这种类型的题目,给你一个名字,选择版本号。真是醉了。
android进化历史
2.3 比较稳定的一个版本,NFC 近场通信技术
3.0 专为平板设计 (出了fragment这么个玩意,主要为了适配平板)
4.0后比较稳定的版本,4.*同时支持平板和手机
笔者不才,android版本更新的很快,说实在的我只是对5.0了解的多一点,毕竟市面上还是大部分手机都是4.x的系统和5.0的系统,6.0和7.0由于市面上占比不多,所以就没有去做具体的了解,各位看官如果有兴趣的话,可以自己去google官网了解一下(备注:请自备梯子,质量好点的,还要够长,保不准梯子质量不够好或者不够长,摔下来了- -)。
最后粘贴一张友盟统计的市面上android系统占比图
8月份的android系统占比图
9月份的android系统占比图
看了自行体会,哈哈。
2. 初识android体系结构
整个android生态系统从上至下主要包括四层关系,分别是程序层,应用框架层,系统库和Android 运行时以及Linux内核。如下图所示底层通过C语言保证了高效率,最上层使用的却是简单能快速进行开发的java语言,,一般android开发程序员都是基于最上层,也就是applications来进行开发,当然也有很多牛B的大神是从事android底层开发的,笔者也渴望着有一天能成为一个Android高级工程师,迎娶白富美,从此走上人生巅峰。虽然笔者现在还只是一个咸鱼级别的“初级工程师”,不过咸鱼也有梦想嘛(呸,咸鱼有梦想它也还是一只咸鱼)。接下来我们来一起了解一下Android的四个层次,我们初学者开法也着重围绕最上层来进行开发。
3. android四层体系结构
在上一节我们说了,android体系结构主要包含四层。下面我们一一来了解一下这四层关系。Linux层 (C)
Linux内核驱动层是Android系统最核心的一个部分。主要包含了Android系统的核心服务,包括硬件驱动,进程管理,安全系统等等组多核心业务。我们也可以打开手机的设置选项,在设置选项中最下面一栏就有关于手机这个选项,点进去就可以看到我们手机的Android系统使用的内核版本,也就是我们手机所用的Linux内核版本。
android虚拟机和java虚拟机的区别
android虚拟机有两种,主要是dalvik和art。
java虚拟机主要是jvm。
区别:
基于的架构不同,jvm 基于栈架构,栈是位于内存上的一个空间,执行指令操作,需要向cpu寻址; dvm 基于寄存器架构,寄存器是cpu的一个组成部分,执行指令操作无需寻址直接执行。
执行文件的格式不同,jvm执行的是多个.class文件。 dvm执行的是一个.dex文件
两种android虚拟机的区别
art 实际上就是android runtime,说白了就是以时间换空间的概念。art:程序在安装时需要预编译读取,将代码转换为机器码,好处:程序运行时,无需时时转换,运行速度快 ; 缺点:安装时间稍长,由于转换机器码,所以占用略高的存储空间。
dalvik 就是在运行的时候编译。而不像art那样,在安装的时候编译。
在android 5.x版本后,dvm都换成了art模式的虚拟机,取代了原来的dalvik。
libraries 和 dalvik(c/c++)
系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.NET、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。
应用程序框架层(application framework ) (Java + JNI)
android app framework包含了整个Android FrameWork的重点,该层是应用开发框架的基础,如果你需要研究FrameWork具体流程,基本上都是和它在打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分,在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。就像如果我们想要调用打电话的功能,就必须使用应用程序框架层的电话管理器(TelephonyManager)。
应用层(application) (java)
该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序。
4. 环境搭建
这个好像没什么可说的,既然都是android初学者入门,我想对于java应该不会陌生吧,说一下大致的步骤:安装jdk,去oracle官网下载jdk版本,选择对应的版本与系统对应的位数(32位或者64位),windows下载下来是一个.exe(可执行的文件),双击直接点击下一步下一步就可以了。傻瓜式安装。
配置java环境变量。这个自行百度。主要配置java安装目录的bin目录。笔者的java安装目录是
D:\Java\jdk1.7.0_79\bin,将这个目录添加到你的电脑的环境变量中即可。
开发工具,也就是我们熟称的IDE,全名是集成开发环境。市面上的主要有两种,分别是eclipse和AndroidStudio。推荐用AndroidStudio(一下简称as),现在as的性能已经很稳定了。再就是google工程师现在已经不对eclipse的adt插件进行维护了,也就意味着google不再推荐使用eclipse来进行开发,最后一个原因,你可以打开github网站,在网站上随便搜索一个android相关的开源项目,你会发现,几乎百分之90以上的android开源项目都是使用as来进行开发的,为了方便引入别人写好的库文件,我们也得使用as来进行开发!友情提醒:as对电脑配置有点要求,量力而行。笔者曾经笔记本没有换硬盘和内存的时候,打开as就卡死。自从换了ssd以及换上8G内存条后,才有了一点好转,但是对于开发还是明显不够,反应速度跟不上码代码的速度,等mac出新款了,忍痛入手一款mac,将近2w,泪崩 %>_<%
有了以上三个,最后还差一个android sdk(全称 soft developer kit)就可以做开发了,这个不需要单独去下载,我们安装as的时候,as会自动帮你下载sdk。
5. 总结
本节对Android的起源以及历史背景进行了一点简单的了解,然后简单分析了Android的系统特性以及系统架构,这些概念性的东西,我们了解了解即可。不需要过多的去深入,上面说的下载sdk的事情,笔者将会在下篇文章中讲述如何使用as来做开发以及讲述as的一些常用配置信息。笔者能力有限,在写作过程中,难免会出现疏漏,如有错误之处,请各位大神不吝指正。谢谢!相关文章推荐
- Android开发环境搭建,各版本系统下android环境搭建,android入门教程
- Android系统源码学习入门(一)环境搭建
- Android开发入门——Android系统介绍和开发环境的搭建
- Windows XP SP3系统下如何搭建android开发环境
- Android入门及环境搭建
- Android入门1—开发环境搭建
- Android--入门---2---(Android 的环境搭建&配置 JDK 1.6+ Eclipse + ADT +SDK(windows / ubuntu))
- 在虚拟机以及pc机上安装ubuntu 9.10_x86_64系统搭建android开发环境
- 基于xp系统搭建android开发环境
- mac系统下eclipse搭建android环境配置的几点小问题
- Android入门—开发环境搭建
- android 系统级别开发环境搭建 .
- Windows系统Android开发环境搭建全程演示(jdk+eclip+android sdk)
- mac系统搭建android开发环境
- Android入门1—开发环境搭建
- android 入门之一【开发环境搭建】
- Adroid学习笔记-入门资料以及V2.3系统开发环境搭建
- 基于xp系统搭建android开发环境
- Android JNI环境搭建及开发入门
- android入门---环境搭建(配置环境变量)和基础知识