Android开发学习总结——Android开发的一些相关概念
一、什么是3G、4G
3G指的是第三代移动通信技术(3rd - Generation),速率一般在几百Kbps,较之前的2G和2.5G在数据传输速度上有很大提升。3G与2G的主要区别是在传输声音和数据的速度上的提升
4G指的是第四代移动通信技术(4th - Generation),速度可达到100Mbps以上,几乎可以满足人们的所有传输数据的需求。
目前主流的3G技术标准有三种:
- WCDMA:全球80%以上的3G网络都是采用此种制式。中国联通运营。186
- CDMA2000:目前日韩及北美使用较多。中国电信运营。 189
- TD-SCDMA:中国自主知识产权的3G通信技术。中国移动运营。 188
目前主流的4G技术为LTE,但还没有被广泛应用。
通信技术的发展历程:GSM→GPRS→EDGE→WCDMA→HSDPA→HSDPA+→ LTE
二、Andorid的相关概念
2.1、什么是Android

Android本义指“机器人”,Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,官方中文名:安卓 。
Android系统早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续对Android系统开发运营。
底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,大部分程序以Java语言编写。
由于Android系统的开源特性,很多制造商都在生产Android系统的设备,如:摩托罗拉、HTC、三星、索爱、LG、小米、华为、魅族等。
Android系统除了运行在智能手机上之外,还可以用做平板电脑、电视、汽车等很多设备上。
2.2、Android平台架构
Android系统的底层建立在Linux系统之上,该平台由操作系统、中间件、用户界面和应用软件4层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建。这种软件叠层结构使得层与层之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无须任何改变。
Android平台的架构图如下:

从图中可以看出,Android系统是由五大部分组成的。
1、应用程序层(APPLICATIONS)
Android系统将会包含系列的核心应用程序,包括电子邮件客户端,SMS程序、日历、地图、浏览器、联系人等。这些应用程序都是用Java编写的。
2、应用程序框架(APPLICATION FRAMEWORK)
当我们开发Android应用程序时,就是面向底层的应用框架进行的。从这个意义上来看,Android系统上的应用程序时完全平等的,不管是Android系统提供的程序, 还是普通开发者提供的程序,都可以访问Android提供的API框架。
3、函数库(LIBRARIES)
Android包含一套被不同组件所使用的C/C++库的集合。一般来说,Android应用开发者不能直接调用这套C/C++库集,但可以通过它上面的应用程序框架来调用这些库。
4、Android运行时(ANDROID RUNTIME)
Android运行时由两部分组成:Android核心库集合(Core Libraries)和Dalvik虚拟机(Dalvik Virtual Machine)。其中核心库集提供了Java语言核心库所能使用的绝大部分功能,而虚拟机则负责运行Android应用程序。 每个Android应用程序都运行在单独的Dalvik虚拟机内(即每个Android应用程序对应一条Davlik进程),Dalvik专门针对同时高效运行多个虚拟机进行优化, 因此Android系统很方便实现对应用程序进行隔离。
由于Android应用程序的编程语言是Java,因此有些人会把Dalvik虚拟机和JVM搞混,当实际上二者存在区别:Dalvik并未完全遵守JVM规范,两者也不兼容。 实际上,JVM虚拟机运行的是Java字节码(通常就是.class文件),但Dalvik运行的是其专有的dex(Dalvik Executable)文件。JVM直接从.class文件或JAR包中 加载字节码然后运行;而Dalvik则无法直接从.class文件或JAR包中加载字节码,它需要通过DX工具将应用程序的所有.class文件编译成.dex文件, Dalvik则运行该.dex文件。
Dakvik虚拟机非常适合在移动终端上使用,相对于在PC或服务器上运行的虚拟机而言,Dalvik虚拟机不需要很快的CPU计算速度和大量的内存空间,它主要有如下两个特点:
- 运行专有的.dex文件。专有的.dex文件减少了.class文件中的冗余信息,而且会把所有.class文件整合到一个文件中,从而提高运行性能; 而且DX工具还会对.dex文件进行一些性能的优化。
- 基于寄存器实现。大多数虚拟机(包括JVM)都是基于栈的,而Dalvik虚拟机则是基于寄存器的。一般来说,基于寄存器的虚拟机具有更好的性能表现,但在硬件通用性上略差。
5、Linux内核
Android系统建立在Linux 2.6之上。Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。除此之外,Linux内核也是系统硬件和软件叠层之间的抽象层。
2.3、Android进化史

2.4、各种Android设备





Android开发学习总结——Android开发的一些相关概念的更多相关文章
- Android开发学习之LauncherActivity开发启动的列表
Android开发学习之LauncherActivity开发启动的列表 创建项目:OtherActivity 项目运行结果: 建立主Activity:OtherActivity.java [jav ...
- Android:日常学习笔记(8)———开发微信聊天界面
Android:日常学习笔记(8)———开发微信聊天界面 只做Nine-Patch图片 Nine-Patch是一种被特殊处理过的PNG图片,能够指定哪些区域可以被拉升,哪些区域不可以.
- Android动画学习笔记-Android Animation
Android动画学习笔记-Android Animation 3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...
- android开发学习---linux下开发环境的搭建&& android基础知识介绍
一.配置所需开发环境 1.基本环境配置 JDK 5或以上版本(仅有JRE不够) (http://www.oracle.com/technetwork/java/javase/downloads/ind ...
- 吴裕雄--天生自然Android开发学习:android 背景相关与系统架构分析
1.Android背景与当前的状况 Android系统是由Andy Rubin创建的,后来被Google收购了:最早的版本是:Android 1.1版本 而现在最新的版本是今年5.28,Google ...
- Android入门学习:Android 系统框架及应用程序执行过程
Android基础知识学习 新手上路,还请多多帮助.由于初学,博客内容难免有不正确的地方,还请各位多多指教,相互学习! 主要内容: 1.Android层次架构及主要功能 2.Android编程模型,程 ...
- Android UI学习 - ListView (android.R.layout.simple_list_item_1是个什么东西)
Android UI学习 - ListView -- :: 标签:Android UI 移动开发 ListView ListActivity 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始 ...
- Android FrameWork 学习之Android 系统源码调试
这是很久以前访问掘金的时候 无意间看到的一个关于Android的文章,作者更细心,分阶段的将学习步骤记录在自己博客中,我觉得很有用,想作为分享同时也是留下自己知识的一些欠缺收藏起来,今后做项目的时候会 ...
- Android基础学习:Android环境搭建
在3年前,自学过Android的一些基础知识,但是那个时候Linux等其他的知识结构比较薄弱,理解得不是很深刻,后来因项目变动的原因,没有再搞Android相关的东西了.时过境迁,还是因为项目变动,重 ...
- Android NDK 学习之Android.mk
Android.mk file syntax specification Introduction: This document describes the syntax of Android.mk ...
随机推荐
- Hibernate之jpa实体映射的三种继承关系
在JPA中,实体继承关系的映射策略共有三种:单表继承策略(table per class).Joined策略(table per subclass)和Table_PER_Class策略. 1.单表继承 ...
- cannot access the system temp folder
cannot access the system temp folder. please, make sure your application have full control rights on ...
- VC++ 动态生成 成组的 RadioButton 按钮组
先说一下 静态创建的方法: 单选按钮也属于CButton类,但由于单选按钮总是成组使用的,所以它在制作和使用上与普通按钮有一定区别.假设有三个单选按钮组成一组,初始时,第一个单选按钮处于选中状态.我们 ...
- win7的svchost.exe占用内存过高如何解决
方法/步骤 1 在我的电脑上点击鼠标右键,选择[管理] 步骤阅读 2 选择右侧[服务和应用程序]下的[服务]选项 步骤阅读 3 找到名称我Superfetch的服务,双击鼠标左键. 步骤阅读 4 选择 ...
- ProtoType(原型)-对象创建型模式
1.意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 2.动机 通过拷贝或者“克隆”一个类的实例来创建新的实例. 3.适用性 当一个系统应该独立于它的产品创建.构成和表示时,要使 ...
- 使用soureTree删除分支
使用心得 1:使用pull拉取时,自己本地的更改不会覆盖掉 2:删除分枝时,直接选中,可以直接删除远程的分枝
- notepad++对systemverilog的支持
找到notepad++根目录中的"langs.xml",用notepad++打开,并搜索"verilog", 找到后,修改后面那句话为ext=" ...
- [原创][LaTex]LaTex学习笔记之框架及宏包
0. 简介 LaTex在书写文档时的最基本单元就是首部的写作,变相的也可以说是头文件.本文章就来总结一下文档的基本格式和常用宏包. 1. 基本单元 基本单元需要对LaTex语法有一定的了解,这个很简单 ...
- Bridging signals hdu 1950 (最长上升子序列)
http://acm.split.hdu.edu.cn/showproblem.php?pid=1950 题意:求最长上升(不连续or连续)子序列 推荐博客链接: http://blog.csdn.n ...
- JVM调优-Java中的对象
Java对象的大小 基本数据的类型的大小是固定的,这里不做详细说明.对于非基本类型的Java对象,其大小就值得商榷. 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没 ...