Android开发学习总结——Android开发的一些相关概念(转)

一、什么是3G、4G

  1995年问世的第一代模拟制式手机1G只能进行语音通话。

  1996到1997年出现的第二代GSM、CDMA等数字制式手机2G便增加了接收数据的功能

  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计算速度和大量的内存空间它主要有如下两个特点

    1. 运行专有的.dex文件。专有的.dex文件减少了.class文件中的冗余信息而且会把所有.class文件整合到一个文件中从而提高运行性能 而且DX工具还会对.dex文件进行一些性能的优化。
    2. 基于寄存器实现。大多数虚拟机(包括JVM)都是基于栈的而Dalvik虚拟机则是基于寄存器的。一般来说基于寄存器的虚拟机具有更好的性能表现但在硬件通用性上略差。

  5、Linux内核

    Android系统建立在Linux 2.6之上。Linux内核提供了安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务。除此之外Linux内核也是系统硬件和软件叠层之间的抽象层。

2.3、Android进化史

  

2.4、各种Android设备

  

  一张Android和Apple互相PK的图片挺有趣的。

  

  掌握了移动互联网就掌握了将来谁输在了移动互联网上谁就输了未来谁抓住了移动互联网的机会谁就有了未来成功的门票。

 

http://www.cnblogs.com/xdp-gacl/p/4324503.html

时间: 2024-09-15 18:17:28

Android开发学习总结——Android开发的一些相关概念(转)的相关文章

《Android Studio应用开发实战详解》——第1章,第1.5节Android开发学习路线图

1.5 Android开发学习路线图 Android系统是一个巨大的智能设备系统,从系统架构到最终的问世发布,并经过一步步的完善,整个过程无不体现了科技界巨头--谷歌公司工程师们的智慧结晶.作为一名Android开发初学者来说,刚接触时会有或多或少的迷茫.在本节的内容中,将引领读者一起探讨Android开发的学习之路. 1.5.1 Android开发的两大方向 1.应用程序开发方向 移动应用程序就是经常提到的APP程序,和1.3.5节中的内容相对应,通常使用Java语言实现.这是当前Androi

移动开发iOS&Android对比学习--异步处理

在移动开发里很多时候需要用到异步处理.Android的主线程如果等待超过一定时间的时候直接出现ANR(对不熟悉Android的朋友这里需要解释一下什么叫ANR.ANR就是Application Not Responding,应用无响应的意思.系统在应用一段时间无响应的时候会弹出这个对话框.用户可以选择继续等待或者强制关闭).这些还是次要的,最主要的还是心急的用户.让用户长时间等待是得罪他们的最好办法! Android有一个很简单的办法实现异步处理:AnsyncTask.使用的时候你需要继承一个基

Android开发学习---使用Intelij idea 13.1 进行android 开发

原文:Android开发学习---使用Intelij idea 13.1 进行android 开发 1.为什么放弃eclipse?太卡!! 实在受不了eclipse的卡了,运行WEB项目还好,但android开发实在太慢,太慢!经常卡死,CPU经常被占满! 看网上很多人都说比Intelij idea好用,就试下,目前还在test阶段,总之是各种不习惯,很多快捷键之类的跟eclipse完全不一样.还要多熟悉! 另外android studio 也比较卡,而且用起来相当难受,完全是intelij 的

友善之臂Mini6410之Android开发学习笔记(4)-EEPROM Demo

友善之臂Mini6410之Android开发学习笔记源码同步更新,请使用git工具进行同步.关于Git工具更多信息,请参考:http://progit.org/book/zh/ git clone https://code.google.com/p/androiddemoformini6410/ EEPROMActivity.java package com.mini6410.EEPROM; import android.app.Activity; import android.os.Bundl

友善之臂Mini6410之Android开发学习笔记(1)-LED Demo

友善之臂Mini6410之Android开发学习笔记源码同步更新,请使用git工具进行同步.关于Git工具更多信息,请参考:http://progit.org/book/zh/ git clone https://code.google.com/p/androiddemoformini6410/ LEDActivity.java package com.mini6410.LED; import com.friendlyarm.AndroidSDK.HardwareControler; impor

友善之臂Mini6410之Android开发学习笔记(3)-ADC Demo

友善之臂Mini6410之Android开发学习笔记源码同步更新,请使用git工具进行同步.关于Git工具更多信息,请参考:http://progit.org/book/zh/ git clone https://code.google.com/p/androiddemoformini6410/ ADCActivity.java package com.mini6410.ADC; import java.util.Timer; import java.util.TimerTask; import

《Android深度探索(卷1):HAL与驱动开发》——1.5节如何学习Linux驱动开发

1.5 如何学习Linux驱动开发 Android深度探索(卷1):HAL与驱动开发 由于Linux的内核版本更新较快(稳定版本1至3月更新一次,升级版本1至2周更新一次),每一次内核的变化就意味着Linux驱动的变化(就算不需要修改驱动代码,至少也得在新的Linux内核版本下重新编译),所以Linux内核的不断变化对从事Linux驱动开发的程序员影响比较大.不过这对于学习Linux驱动开发来说影响相对较小.因为不管是哪个版本的Linux内核,开发Linux驱动的方法和步骤基本相同,只要掌握了一

友善之臂Mini6410之Android开发学习笔记(2)-PWM Demo

友善之臂Mini6410之Android开发学习笔记源码同步更新,请使用git工具进行同步.关于Git工具更多信息,请参考:http://progit.org/book/zh/ git clone https://code.google.com/p/androiddemoformini6410/ PWMActivity.java package com.mini6410.PWM; import android.app.Activity; import android.os.Bundle; imp

Android开发学习路线的七大阶段_Android

看了专业的培训机构的课程大纲,才知道,自己学习android的路途才刚刚开始!特此整理分享一下,希望能帮到那些准备学习android开发,或者正在学习android开发,但是又没有找到明确路线的童鞋们!(PS:特此声明,这篇文章不是给培训机构做广告哈,本人也是在自学android开发!!) 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环. 2.String和StringBuffer的使用.正则表达式. 3.面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收: