初识Android
2015-12-10 21:58
501 查看
Android概述
一、手机制式的发展
所谓的4G中的G指的是Generation,即移动通信技术世代。1G 语音通话,模拟信号,无线电
2G (GSM\GPRS\EDGE)增加接收数据的功能,接收邮件和网页(wap),java程序(J2ME)
3G 无线通信技术结合互联网等多媒体通信
4G 集高速无线网络和有线网络WLAN一体的通讯网络
二、IT业的三大热点
云计算通过Internet以服务的方式提供动态可伸缩的虚拟化的资源的计算模式
简单理解:个人资料都存储在云服务器上,所有操作的处理都是云服务器来处理的,个人计算机只需要能安装浏览器
瓶颈:网速、服务器性能、云计算(分析用户行为数据,使用大数据技术,hadoop分布式文件存储系统)
物联网
Internet of Things(IOT)物物相连的互联网
通过信息传感设备把物品和互联网连接,进行信息交换和通信的网络
移动互联网
结合移动通信和互联网
移动智能操作系统:Android 、IOS、Windows Phone、Blackberry等
三、Android历史
1. 安卓之父
Andy Rubin(安迪-鲁宾),Android平台创始人,Google移动平台副总裁。2. 发展史
05年,Google收购了 Android inc.07年,Google号召84家厂商组建开放手机联盟共同研发改良Android系统,SDK1.0预览版发布
08年,第一款Android手机G1(HTC代工)诞生,并通过Apache License开源
四. Android版本
1.版本发展
1.X版本 入门级,只适用手机2.X版本 趋于成熟,只适用手机
3.X版本 支持平板
4.X版本 整合了平板和手机
5.X版本 支持64位CPU,默认使用ART运行模式
6.X版本 趋于成熟,电源管理优化,支持USB 3.0接口
2. Android Level
版本 | 代号 | API Level |
---|---|---|
Android 1.5 | Cupcake(纸杯蛋糕) | 3 |
Android 1.6 | Donut(甜甜圈) | 4 |
Android 2.0/2.0.1/2.1(松饼) | Eclair | 5、6、7 |
Android 2.2/2.2.1 | Froyo(酸冻奶) | 8、9 |
Android 2.3 | Gingerbread(姜饼) | 10 |
Android 3.0/3.1/3.2 | Honeycomb(蜂巢) | 11、12、13 |
Android 4.0/4.0.3 | Ice Cream Sandwich(冰激凌三明治) | 14、15 |
Android 4.1/4.2/4.3 | Jelly Bean(果冻豆) | 16、17、18 |
Android 4.4 | Kikat(奇巧巧克力) | 19 |
Android 5.0 | Lollipop (棒棒糖) | 20 |
Android 6.0 | Marshmallow(棉花糖) | 23 |
五、Android体系
1. Linux Kernel
说明:Linux内核,驱动组成:
名称 | 解释 |
---|---|
Display Driver | 显示驱动 |
Camera Driver | 相机驱动 |
Flash Memory Driver | 闪存驱动 |
Keypad Driver | 键盘驱动 |
WiFi Driver | 无线网卡驱动 |
Audio Driver | 音频驱动 |
Power Management | 电源管理 |
Binder Driver | 绑定驱动 |
2. Libraries
说明:类库层,C/C++编写的访问驱动的原生组件组成:
名称 | 解释 |
---|---|
OpenGL ES | 3D 渲染引擎 |
Surface Manager | |
SQLite | 数据库引擎 |
WebKit | 浏览器引擎 |
SGL(Skia Graphics Library) | 2D图像渲染引擎 |
OpenCORE | 多媒体引擎 |
SSL | 互联网安全协议 |
3. Android Runtime
说明:Android运行时组成:
名称 | 解释 |
---|---|
Core Libraries | Java核心库 |
Dalvik Virtual Machine | DVM,因为JVM不免费 |
4. Application Framework
说明:应用框架层,Java写的API组成:
名称 | 解释 |
---|---|
Activity Manager | 应用管理器 |
Windows Manager | 桌面管理器 |
Content Providers | 内容提供者 |
View System | 视图系统 |
Package Manager | 包管理器 |
TelePhony Manager | 通讯管理器 |
Resource Manager | 资源管理器 |
Location Manager | 位置管理区 |
Notification Manger | 通知管理器 |
5 .Application
说明:应用层,基于Android平台开发的应用组成:系统应用和第三方应用
六、JVM和DVM的区别
DVM,即Dalvik Virtual Machine,是安卓虚拟机1. 代码执行
JVM.java文件–>.class文件–>.jar文件(每个class文件都有一个常量池)
DVM
.java文件–>.class文件–>.dex文件(所有class文件拥有公共的常量池,减少IO操作)
2. 基于架构不同
Java基于栈(内存上)
Android
基于寄存器(CPU上)
ART(Android Runtime)运行模式
4.4版本后出现的
在安装应用程序时,自动对应用程序进行预编译,不用在每次运行时转换代码
高效,省电,流畅但占内存
5.0后全面使用ART虚拟机
七、搭建开发环境
1. 工具
JDK+Eclipse+ADT+Android SDK2. SDK目录结构
目录 | 说明 |
---|---|
add-ons | 谷歌的额外工具(Google Map API等) |
build-tools | 项目构建工具 (dx.bat 构建dex文件,aapt.exe 构建apk文件) |
docs | 参考文档(中文文档参考www.android-doc.com) |
extras | 额外的工具,比如模拟器加速器,android版本的兼容jar包 |
plateforms | 平台,存储模拟器可使用的平台版本 |
plateforms-tools | 平台工具(adb在windows下调试安卓设备,sqlites在windows下查看安卓的数据库) |
samples | 学习Android的官方例子 |
sources | 源代码 |
system-images | cpu镜像文件 |
temp | 临时文件 |
tools | 第三方工具(draw9patch.bat画图,emulator模拟器控制器,ddms) |
3. 创建Android模拟器
略过4. 创建Android项目
项目结构src 编写java代码
gen
BuildConfit.java是否支持debug调试
R.java资源的索引文件
android.support.v7.appcompat向下兼容的支持库
assets 存放比较大的资源文件
bin 存放class文件、dex文件和apk文件
libs 使用的第三方jar包
res 存放资源文件,存放的文件会在R文件中注册ID
drawable 图片资源
layout 布局文件
menu 菜单资源文件
values 存放字符串、尺寸和样式的资源文件
dimens.xml尺寸
strings.xml字符串
styles.xml样式
project.properties 目标版本、兼容类库和开启代码混淆功能
proguard-project.txt 代码混淆工具
AndroidManifest.xml 清单文件,所有的Activity都要在上面注册
要在上面注册
Manifest
package:一个应用的唯一标识(应用的更新和覆盖)
versionCode:当前项目的版本,给Android系统看的,int值
versionName:当前项目的版本,给用户看的,String值
uses-sdk
minSdkVersion:最低运行的sdk版本
targetSdkVersion:目标sdk版本
application
icon:应用图标
label:应用名称
theme:应用主题
activity
八、小项目
1. 电话拨号器
核心代码btnCall.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String number = etPhone.getText().toString(); startActivity(new Intent().setAction(Intent.ACTION_CALL) .setData(Uri.parse("tel:" + number))); } });
使用权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
2. 短信发送器
核心代码btnSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String phone = etPhone.getText().toString(); String content = etContent.getText().toString(); SmsManager manager = SmsManager.getDefault(); manager.sendTextMessage(phone, null, content, null, null); }; });
使用权限
<uses-permission android:name="android.permission.SEND_SMS"/>
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories