【Android基础】-----历史、架构

来源:互联网 发布:字母圈交友软件 编辑:程序博客网 时间:2024/05/17 02:36

转载请标明出处:
http://blog.csdn.net/lxy_cn/article/details/52785365;
本文出自:【李晓阳的博客】

1.移动设备的通信制式

移动通信技术 (手机的不同制式对应不同的运营商 )

    1G 通信标准: 模拟信号              大哥大            2G  通信标准: GSM/CDMA              小灵通 可以发短信、上网wap.baidu.com    2.5G  通信标准: GPRS    2.75G 通信标准: EDGE    3G  通信标准: WCDMA/CDMA2000/TD-SCDMA     电话会议 浏览网页    4G  通信标准: TD-LTE           网络会议 视频聊天 在线视频

速度越来越快
2G、3G、4G的区别:数据传输速度越来越快

2.Android来源

Android之父: Andy Rubin 安迪-鲁宾

2005年8月:由Google低调收购了安迪鲁宾的公司及团队

2007年11月5日:正式向外界展示了这款名为Android的操作系统,同时组建了一个开放手机联盟组织,该组织由34家手机制造商、软件开发商、电信运营商以及芯片制造商共同组成,他们将共同开发Android系统的开放源代码。随后逐渐扩展到平板电脑及其他领域上。

2011年第一季度:Android在全球的市场份额首次超过Symbian,跃居全球第一。

3.Android进化史

Android进化史

1.5 Cupcake (纸杯蛋糕)
1.6 Donut (甜甜圈)
2.1 Éclair (闪电泡芙)
2.2 Froyo (冻酸奶)
2.3 Gingerbread(姜饼)
3.0 Honeycomb(蜂巢)
4.0 Ice cream SandWich(冰激凌三明治)
4.1 Jelly Bean (果冻豆 )
4.2 Jelly Bean (果冻豆 )
5.0 Lollipop (棒棒糖)
6.0 marshmallow (棉花糖)

4.Android体系结构

Android体系结构

(1)Linux Kerner:Linux内核层全部是驱动,Linux操作系统
Display Driver:显示驱动
Camera Driver:照相机驱动
Bluetooth Driver:蓝牙驱动
Flash Memory Driver:闪存驱动
Binder(IPC) Driver:进程间通讯
USB Driver:USB驱动
Keypad Driver:键盘驱动
WiFi Driver:无线网驱动
Audio Driver:音频驱动
Power Management:电源管理

(2)Libraries:这一层是用c和c++代码写的,可以去调用Linux内层的驱动。只有C代码才可以操作驱动

SurFace Manager:界面管理器
Media Framework:多媒体框架
SQLite:开源轻量级数据库,和MySQL类似
OpenGL | ES:游戏引擎,OpenGL的简化版,对硬件要求低,适合手机
FreeType:字体类库,字体管家可以选字体,就系Android系统有很多字体
WebKit:浏览器内核(Android和IOS都用)
SGL:绘图系统
SSL:基于TCP的安全协议
libc:标准的C库

(3)Application FrameWork:
这一层是用Java代码写的,通过JNI调用Libraries层。提供API

Content Providers:内容提供者(手机的通讯录,联系人)
Notification Manager:通知管理器
Package Manager:应用程序包管理器(安装卸载应用)
Telephony Manager:电话管理器
Resource Manager:资源管理器
Location Manager:定位管理器

(4)Application:应用层
手机的上层应用手机里的应用,电话拨号器,短信,浏览器等

(5) Android RunTime:安卓运行时
Dalvik Virtual Machine:davlik虚拟机更适合在手机上运行,
使Java代码可以在Linux系统上运行

5.Dalvik VM和JVM的比较

Java已经有了jvm 虚拟机 为何Android还要搞一个dalvik vm ?
jvm 在设计上考虑的时pc机dalvik在设计上针对手机,
特点:1. 速度快 2. 功耗低 (在移动设备上)

6.ART模式

ART模式是Android RunTime的简称,自动对程序进行代码预读取编译,让程序直接编译成机器语言,免去了Dalvik模式要时时转换代码,实现高效率、省电、占用更低的系统内存、手机运行流畅。但凡事总有正反两面,ART在解决了该问题的同时,同时也有如:会占用略高一些的存储空间、安装程序时要相比普通Dalvik模式要长一些时间来实现预编译。


7.Android开发环境的搭建

目前主流的开发环境主要是Androidstudio和eclipse(个人推荐前者)

androidstudio:

。。。。。。。

eclipse:

获取SDK 工具包
32位操作系统
下载地址:http://dl.google.com/android/adt/adt-bundle-windows-x86.zip
64位操作系统
下载地址:http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20130729.zip
工具包,包含以下内容:
ADT
Android develop tools,安卓开发工具(eclipse的插件)
最新版本23.xxx 不好用。默认强制使用一些新的控件。
SDK
standard develop kits 标准开发工具包
Eclipse + ADT 插件
Android SDK
Android Platform-tools
最新的Android 开发平台 platforms
最新的模拟器镜像

SDK目录结构
add-ons >附加组件,放在一个额外的工具。google api,提供google地图的jar包
* build-tools >编译工具,谷歌sdk升级后采用的目录
* docs >文档目录。开发文档。(了解)
* extras

附加工具 support 文件夹,提供向下兼容的jar包。
和额外的驱动,摄像头驱动,手机驱动
* platform >开发平台(了解)
* platform tools >开发的工具
* sample >实例代码
* source >源代码 (了解)
* system-image >系统镜像
* tools >开发工具
8.创建一个Android模拟器

9.开发第一个Android应用

打开File—new—Android Application Project

10.Android应程序包结构的图解


  • src > 源代码 (重要)
  • gen

工具自动生成的代码
BUildconfig 调试的开关 默认开启
R.java 很多的静态的内部类

  • android.jar
    开发用的jar包
  • android dependence
    依赖,向下兼容的依赖jar包
  • assets
    资产目录 存放一些别的类型的文件
  • bin
    eclipse工具编译的文件夹
  • libs
    应用程序开发用的jar包
  • res(重要)
    应用程序的资源
  • androidmanifest.xml (重要)
    清单文件

  • 11.AndroidManifest.xml 项目清单文件

    project.properties中的target是指在编译的时候使用哪个版本的API进行编译。
    上面的四个值其实是作用于不同的时期:
    target API level是在编译的时候起作用,用于指定使用哪个API版本(SDK版本)进行编译。 minSdkVersion和maxSdkVersion是在程序安装的时候起作用, 用于指定哪些版本的设备可以安装此应用。 targetSdkVersion是在程序运行的时候起作用,用于提高指定版本的设备上程序运行体验。

    12.Android 打包应用程序并安装的过程

    生成 .apk文件
    .java文件编译成.class文件 javac.exe
    把.class文件和图片打包成.apk文件 sdk\platform-tools\dx.bat
    把.apk文件上传到模拟器或者手机上
    安装.apk文件

    0 0
    原创粉丝点击