1.一、1G-4Ghtml
1G:模拟制式手机,1995年问世的第一代模拟制式手机,只能进行语音通话,java
2G:手机使用GSM,CDMA(9K/s),增长了接收数据的功能linux
2.5G:EDGE (172k/s)android
3G:第三代数字通信技术(3rd, Generation),web
电国电信:CDMA2000,(日,韩和北美)sql
中国联通:WCDMA(世界上大部分3G网络都采用)shell
中国移动:TD-SCDMA(中国)数据库
4G:LTE,长期演进.该技术包括 TD-LTE 和 FDD-LTE 两种制式。4G 是集 3G 与 WLAN 于一体,并可以传输高质
量视频图像编程
GSM->GPRS->EDGE->WCDMA->HSDPA-FDD-LTE长期演进windows
9k 42k 172k 364k 7.2M 300M
1.二、Adnroid由来
Android 系统最初由安迪·鲁宾等人开发制做,最初开发这个系统的目的是建立一个数码相机的先进操做系统;后来发现市场需求不够大,加上智能手机市场快速成长,因而 Android 被改造为一款面向智能手机的操做系统,
2005 年由 Google 收购注资,并组建开放手机联盟。2007 年 11 月 12 日,Android Beta
操做系统 SDK 正式发布。
1.三、进化史
1.四、Android 系统架构
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
1.Applications:提供了一些系统级的应用程序如:浏览器,电话本,email,拔号器等
2.Application Framwork:应用程序框架
3.库系统运行库
Android 运行库
Core Library:Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能
Dalvik虚拟机:依赖于linux内核的一些功能,好比线程机制和底层内存管理机制。
每个Android应用程序都在它本身的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备能够同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用作了优化。同时虚拟机是基于寄存器的,全部的类都经由JAVA编译器编译,而后经过SDK中 的 "dx" 工具转化成.dex格式由虚拟机执行。
4.Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时做为硬件和软件栈之间的抽象层。
1.四、JVM与Dalvik虚拟机的区别
2.一、开发环境
目前主流的开发工具备两个,一个是 Eclipse 另一个是 Android Studio。 Eclipse 须要和 ADT(Android
Develop Tool)插件整合后才能使用,不过 Google 官方已经直接提供了 Eclipse 和 ADT 集成好的开发工具,
叫 ADT-Bundle。
Android Studio 是 Google 基于 IntelliJ IDEA 开发的 Android 集成开发工具,目前国内使用该开发工具
的企业也愈来愈多。Android 基础阶段咱们依然使用 Eclipse 做为开发工具,在后面的课程中才会使用到
Android Studio。
2.二、ADT-Bundle 的下载和安装
第一步:JDK 的安装:
官方下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.htmle
下载好之后安装,并配置系统环境变量,这里就再也不赘述。
第二步:下载 ADT-Bundle for Windows
官方下载地址:http://developer.android.com/sdk/index.html
因为该网址在国内已经被屏蔽掉了,所以本人提供了一个百度网盘的下载地址。
网盘下载地址:http://pan.baidu.com/s/1gdwIAER
第三步:安装 ADT-Bundle
直接把下载下来的 adt-bundle-windows-xxx-xxx.zip 解压到须要安装的位置
2.三、SDK 目录结构
将下载好的 ADT-Bundle 解压后根目录结构如图 1-2 所示,总共包括 3 个部分,eclipse、sdk、SDK
Manager.exe。
一、add-ons 这里面保存着附加库,好比 GoogleMaps,固然你若是安装了 OphoneSDK,这里也会有一
些类库在里面;
二、build-tools 这里保存着与编译相关的重要工具,好比 aapt、aidl、逆向调试工具 dexdump 和编译脚
本 dx,
三、docs 这里面是 Android SDKAPI 参考文档,全部的 API 均可以在这里查到;
四、extras 拓展开发包,这里面包括下向下兼容开发包以及 Intel 硬件加速程序等;
五、 platforms是每一个平台的 SDK 真正的文件, 里面会根据 API Level 划分 SDK 版本, 这里就以 Android2.3
来讲,进入后有 一个 android-10 的文件夹,android-10 进入后是 Android2.3 SDK 的主要文件,其中 data
保存着一些系统资源,images 是模拟器映像文件,skins 则是 Android 模拟器的皮肤,templates 是工程建立
的默认模板,android.jar 则是该版本的主要 framework 文件;
六、platform-tools 保存着一些通用工具,好比 adb.exe;
七、sources Android 系统源码目录,文件夹里能够包含多份源码,根据 API Level 划分为不一样的文件夹;
八、system-images Android 系统镜像文件;
九、 tools 这里包含了重要的工具,好比 ddms 用于启动 Android 调试工具,draw9patch 则是绘制 android
平台的可缩放 png 图片的工具,sqlite3 能够在 PC 上操做 SQLite 数据库,emulator 是 Android SDK 模拟器
主程序,traceview 做为 android 平台上重要的调试工具;
2.四、SDK Manager
SDK Manager.exe 是 ADT 根目录下的一个 SDK 管理程序,该程序负责下载、更新、删除与 sdk 相关
的文件
该管理器主要分为如下几部分:
一、Tools 又分为 Android SDK Tools、Android SDK Platform-tools、Android SDK Build-tools。分别对
应 sdk 目录中的 tools、platform-tools、build-tools 三个目录。其中的 Rev. 表明版本号,Status 表明状态。
二、 Android x.x.x(API xx) 通常会有多个,一个 API 就有一个条目。该条目下分为 SDK Platform、 System
Image、Sources for Android SDK。分别对应 sdk 目录中的 platforms、system-images、sources 目录。
三、Extras 主要分为 Android Support Library 和 HAXM(Inter x86 模拟器加速器),对应 sdk 目录中的tools 文件。
因为 SDK Manager 须要经过链接国外互联网才能够对 sdk 进行升级管理,可是国内是被屏蔽了的,因
此你们能够直击从网站上下载现成的 sdk 文件,而后放到相应的目录下,这样就不须要 SDK Manager 进行
额外的管理工做。
2.五、AVD的建立与使用
上面的各个选项介绍以下:
一、AVD name 自定义的模拟器名称,建议见名知意的命名原则;
二、Device 选择设备屏幕分辨率;
三、Target 选择 Android 操做系统版本;
四、CPU/ABI 选择 CPU 架构。只有 x86 的才支持硬件加速。
五、Keyboard 勾选上后可使用本身电脑键盘做为模拟器的键盘,不勾选的话默认使用模拟器键盘;
六、Skin 勾选上后显示模拟器实体按键,不勾选没有实体按键,建议勾选上;
七、Front Camera 选择前置摄像头设备,不用选;
八、Back Camera 选择后置摄像头设备,不用选;
九、Memory Options RAM 表明模拟器运行内存,VM Heap Dalvik 虚拟机堆内存大小,不建议改动;
十、Internal Storage 模拟器内置存储大小;
十一、SD Card Size 设置 SDCard 的大小;
十二、Emulation Options 模拟器选项,Snapshot 若是被勾选了,模拟器被关闭时至关因而使用了休眠的形式;
下次开启时会从新恢复到关机前状态,不建议勾选。User Host GPU,勾选上表明使用电脑提供图形处理;
通常若是咱们的应用不涉及 3D 图像处理不须要勾选,甚至在有些电脑上勾选后反而致使模拟器没法运行。
当咱们建立好模拟器以后,若是须要修改那么能够在图 1-7 中选中要修改的虚拟机,而后点击 Edit...,
若是须要删除,点击 Delete...,若是须要启动点击 Start...
在上图界面中有两个比较重要的选项。Scale display to real size 和 Wipe user data。后者很好理解,若是
勾选上了,那么启动时至关于恢复出厂设置。前者用的比较多,是用来缩放咱们的模拟器界面的,若是不
勾选的话屏幕会显示模拟器的真实大小,肯能会占据咱们的整个屏幕,所以能够选择勾选,而后将 Screen
Size 改成 6
点击 Launch,就开始启动模拟器,若是没有硬件加速可能须要 3 到 5 分钟的时间。
2.六、DDMS 简介
DDMS 是 Dalvik Debug Monitor Service 的简称。DDMS 为 IDE 和 emulator 以及 Android 真机架起来
了一座桥梁。开发人员能够经过 DDMS 看到目标机器上运行的进程/线程状态,能够看进程的 heap 信息,
能够查看 logcat 信息,能够查看进程分配内存状况,能够向目标机发送短信以及打电话,能够向 Android
发送地理位置信息。下面以 Eclipse 的 DDMS perspective 为例简单介绍 DDMS 的功能
左上部分为 Devices 窗口,列出了全部已经跟 adb 成功链接的模拟器(包括真机)以及各个模拟器中
全部运行的进程。如图 1-12 所示,最上面一排从左到右一共有 9 个可用按钮,分别为: 调试某个进程,
更新进程堆栈信息, 下载进程堆栈数据到本地, 调用垃圾回收器, 更新线程, 开启方法性
能分析数据收集, 中止某个进程, 抓取 Android 目前的屏幕, 查看当前界面视图树结构。
3.一、建立Helloworld
点击 ADT 左上角的 File 按钮,而后选择 New,而后点击 Android Application Project开
始 Android 工程的建立。(或者鼠标右击,在弹出的快捷菜单中建立也能够)。
该界面展现了是否建立图标,是否建立 activity,是否将该工程做为库工程,是否将
该工程添加到当前工做空间,是否将该工程添加到指定工做集等信息,一般状况下不须要咱们修改默认的
配置,直接 Next 就行。
该界面提供了配置图标选项, 咱们经过点击 Browser 按钮能够选择咱们个性化的图标。
在学习阶段不须要使用,而后点击 Next...。
该向导界面可让咱们选择建立一个什么样式的 Activity,通常使用系统默认的 Blank
Activity 便可,而后点击 Next...。
这是最后一个向导界面了。 Activity Name 和 Layout Name 分别是让咱们设置主 Activity
和其布局的名字,一般状况下使用默认名字便可。Navigation Type 是主界面 Activity 切换类型,使用 None
便可。而后点击 Finish 完成 Android 工程的建立。
4.一、结构
4.二、目录简述
一、src java 源代码存放目录。
二、gen 自动生成的目录
gen 目录中存放全部由 Android 开发工具自动生成的文件。目录中最重要的就是 R.java 文件。 这
个文件由 Android 开发工具自动产生的。Android 开发工具会自动根据你放入 res 目录的资源,同步更
新修改 R.java 文件。正由于 R.java 文件是由开发工具自动生成的,因此咱们应避免手工修改 R.java。
另外编绎器也会检查 R.java 列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这
样能够减小应用在手机占用的空间。
三、bin 用于存放 ADT 编译时产生的临时文件, Android 工程最终会被打包成一个 xxx.apk
四、res 资源(Resource)目录
在这个目录中咱们能够存放各类各样的资源,如 xml 界面文件,图片或数据,该目录下包含多个
子目录。
4.一、res/drawable
存放 png、jpg 等图标文件。在代码中使用 getResources().getDrawable(resourceId)获取该目录下的
资源。
4.二、res/layout
存放 xml 界面文件,xml 界面文件和 HTML 文件同样,主要用于显示用户操做界面。
4.三、res/values
存放应用使用到的各类类型数据。不一样类型的数据存放在不一样的文件中。好比:
4.3.1 strings.xml 定义字符串和数值
4.3.2 colors.xml 定义颜色和颜色字串数值
4.3.3 dimens.xml 定义尺寸数据
4.3.4 styles.xml 定义样式
4.四、res/anim/
存放自定义动画的 XML 文件。
4.5 res/xml/
在 Activity 中使用 getResources().getXML()读取该目录下的 XML 资源文件。
4.6 res/raw/
该目录用于存放应用使用到的原始文件,如音效文件等。编译软件时,这些数据不会被编译,它
们被直接加入到程序安装包里。
五、libs 支持库目录
程序开发时须要的一些三方的 jar 包能够放在这个目录,一般系统会自动把里面的 jar 包,添加到环境
变量,若是自动添加不了那么就须要手动添加。
六、assets 资源目录
Android 除了提供 res 资源文件外,在 assets 目录中能够存放资源文件,并且 assets 目录下的资源文件
不会在 R.java 中自动生成 id。
七、AndroidManifest.xml 项目清单文件
该文件用于配置四大组件、声明权限、配置应用版本等参数。
八、project.properties 项目环境信息,通常是不须要修改此文件。
九、proguard-project.txt 用于配置代码混淆参数。
4.三、运行
4.四、打包过程
ADT 将 Android 工程编译成 APK 中间经历了一系列过程,
Android 打包过程
ADT 将 Java 源文件编译成.class,而后调用 dx 工具将全部的.class 抽取到一个叫 classes.dex 的文件中。
而后调用 aapt 工具将 Android 中全部的资源,包括 res 和 assets 资源以及清单文件一块儿打包成 apk 文件,
而后在部署的时候给 apk 进行签名操做,最后经过 ADB 工具将签名后的 APK 部署到模拟器上。
上面的过程彻底是 ADT 自动帮咱们完成的。签名是用于区分同一包名的时候应用身份的,也就是如
果应用的包名相同签名不同是不能够安装到同一个手机上的,若是包名相同签名也相同则能够覆盖安
装。
5.一、ADB 介绍
adb 是 Android Debug Bridge 的简称,经过 adb 能够在 Eclipse 中经过 DDMS 来调试 Android 程序, adb
启动时会占用 5554 端口,所以要避免其余应用跟该端口冲突。默认状况下因此当咱们运行 Eclipse 时 adb
进程就会自动运行。
adb 还能够经过命令行使用,前提是将 adb.exe 所在路径已经配置到了系统环境变量。adb.exe 位于sdk/platform-tools 目录下。环境变量的配置跟 JDK 类似,
5.二、ADB 经常使用命令
一、adb devices 列出当前链接上全部设备
二、adb install xxx.apk 将 xxx.apk 安装到模拟器上
多个设备链接时,选择设备安装
三、adb uninstall 包名 卸载应用
多个设备链接卸载
四、adb push <本地路径><远程路径> 将本地文件上传到模拟器上
五、adb pull <远程路径><本地路径> 将模拟器上文件下载到本地
六、adb kill-server 杀死 adb 进程
七、adb start-server 启动 adb 进程
八、adb shell 进入 Linux shell 命令行