目录
1.Android 背景与现况
- Android 系统的命名都是以 点心 来命名
- 系统版本众多,必须面对的 Android 的"碎片化"问题:
- 系统碎片化:开发 App 时要做到低版本兼容
- 屏幕碎片化:市面上各种各样屏幕尺寸的手机,还有Android平板,开发时要处理屏幕适配问题
2.Android 系统结构
- 应用框架支持 组件的重用与替换(app 发布时遵守了框架的约定,其他 app 也可以使用该模块)
- Dalvik虚拟机:安卓字节码在 DVM(移动应用特有的虚拟机) 运行时进行解析,集成的浏览器:WebKit
- SQLite:结构化的数据存储
- 优化的图形库:多媒体支持、GSM电话技术、蓝牙等
- 采用 软件叠层 方式构建
3.Android 平台架构
- 架构图组成介绍:
- Application(应用层) :应用层的开发,包括系统内置应用程序,使用 Java语言
- Application Framework(应用框架层) :系统内置、自己编写的App需要用这层【比如来电黑名单,自动挂断,需要用到电话管理(TelephoneManager) 通过该层可以实现挂断操作,而不需要关心底层实现】
- Libraries(库文件) :Android 提供了一组 C/C++库,为平台的不同组件所使用,比如媒体框架
- Android Runtime(Android运行时):由 Android核心库集 + Dalvik虚拟机构成
- Linux内核:涉及底层驱动、系统服务,比如安全性,内存管理以及进程管理等
- Dalvik虚拟机是针对移动设备的虚拟机,特点如下:
- 不需要很快的 CPU计算速度和大量的内存空间
- 每个App都单独地运行在单独的Dalvik虚拟机内,即每个app对应一条 Dalvik进程
- 运行流程:
4.Android 开发及术语解析
- 主流 Android开发环境有:
- Eclipse + ADT + SDK (谷歌不再更新)
- Android Studio + SDK(过渡方向)
- 术语解析:
- Dalvik(DVM): Android 特有的虚拟机,Android 字节代码由 DVM运行解析
- AVD:Android 虚拟机
- ADT:安卓开发工具,链接 IDE 和 SDK的桥梁
- SDK:软件开发工具包,包括库文件和其他开发工具
- DDMS:Android 调试工具
- ADB:Android 调试桥,在 SDK文件夹的 platform-tools目录下,命令行操作
- DX工具:将.class 转换成 .dex文件
- AAPT:安卓资源打包工具
- R.java文件:资源字典,由 AAPT工具 根据 app中的资源文件 自动生成
- AndroidManifest.xml:系统配置文件,app包名 + 组件声明 + 程序兼容的最低版本 + 所需权限等程序配置
- DVM 和 JVM 区别:
- Java :.java文件 -> .class文件 -> .jar文件
- JVM基于栈,编译运行慢;执行.class格式字节码;所有应用都运行在同一个JVM,即一个实例
- Android :.java文件 –> .class文件 -> .dex文件
- DVM基于寄存器,编译运行快;执行.dex格式字节码(压缩.class文件);单个应用单独虚拟机,即单独进程
- Android项目目录:src(主活动文件), gen, bin, res(布局文件). Androidmanifest.xml(系统配置文件)
5.移动应用分类
- 多媒体应用:视频/音频播放器,图形/图像查看工具等
- 实用工具:联系人管理工具、任务管理器、通话管理器等
- 基于 Web的应用:搜索工具、即时通讯等
- 企业应用:Microsoft office Mobile、ThinkFree
6.移动平台分类
- ➢ 厂商开发的私有平台:例如: ✓ iOS apple ✓ 黑莓 (BlackBerry) RIM
- ➢ 第三方私有平台:例如 Windows Mobile、Microsoft
- ➢ 免费和开源平台:例如: ✓ Android google ✓ Symbian Nokia
- 主流平台介绍:
- Ios:苹果公司私有平台,它与底层硬件紧密捆绑.,开发者支持面有限,不开源、可伸缩性低
Android:Google所有,属于开放手机联盟 (83家科技移动组织联盟),开源、可伸缩性高,基于 Linux操作系统、以 java为基础、操作系统分化、硬件效率低
- SDK 和 IDE 区别:
- SDK:能够进行开发的环境,软件开发工具包,可以通过 添加插件 进而 添加其他功能
- IDE:将想要的插件 安装在 SDK上的环境 称为IDE
- 如:Symbian 开发环境由 Qt Creator 和 Qt SDK 组成
- Android 开发环境需要 Android 开发工具 (ADT),是 Eclipse插件
- Ios XCode IDE ,XCode工具 Instruments 用于分析代码性能剖析整个系统
7.Android 四大组件
- Android 应用由 四大组件构建块(简称组件)构建的:
- 活动 activity:一个活动 = 一个屏幕窗口,活动之间通过 Intent 通信,活动必须在 AndroidMainfest.xml 声明
- 服务 service:不提供任何界面,始终 后台运行,用户不能干预
- 内容提供者 content provider:若允许应用查询、修改、访问、共享数据,则应用必须从内容提供者获取权限
- 广播接收器 broadcast receiver:不提供 UI,可创建状态栏通知,当出现广播事件时提醒用户
- View -- 表现层----服务层---持久层---数据库
- 活动----服务---内容提供者—数据库—广播接收器
8.XML可扩展标记语言
- 为了 存储数据 和 跨平台交换数据,XML 以层次结构方式 描述数据结构,如下图所示:
- XML可扩展标记语言示例:
- 选择不同版本的安卓SDK文档学习步骤:ADT→ sdk文件夹→ index.html→ Develop→ Reference
9.MyFirstApp
- 新建项目:
- 工作集:
- 虚拟机:
- 让 app在不同的虚拟机上运行1:
- 让 app在不同的虚拟机上运行2: