Android课堂笔记(一)环境、概念、创建

1.1.1 Android背景与当前的状况

1.Android系统的命名都是以点心来命名。

2.系统版本众多,必须面对的Android的"碎片化"问题:

①系统碎片化:开发App时可能需要做到低版本兼容;各种Rom定制的盛行,国人都喜欢对原生系统做一些更改,这导致了在原生系统上可行,而在定制Rom上不可行的问题,比如相机调用

②屏幕碎片化:市面上各种各样屏幕尺寸的手机,4.3寸,5.3寸等等,还有Android平板,开发时要处理屏幕适配问题。

1.1.2 Android系统特性与平台架构

1.系统结构

①应用程序框架支持组件的重用与替换(app发布时遵守了框架的约定,其他app也可以使用该模块)

②Dalvik虚拟机:安卓字节码在DVM运行时进行解析。DVM是移动应用特有的虚拟机。集成的浏览器:开源的WebKit

③SQLite结构化的数据存储

④优化的图形库:多媒体支持、GSM电话技术、蓝牙等

⑤采用软件叠层方式构建

2.平台架构图

Android课堂笔记(一)环境、概念、创建

3.架构解释

①Application(应用程序层) :应用层的开发,包括系统内置的一组应用程序,使用Java语言。

②Application Framework(应用程序框架层) :系统内置、自己编写的App都需要使用到这层。

比如想弄来电黑名单,自动挂断电话,需要用到电话管理(TelephoneManager) 通过该层可以轻松的实现挂断操作,而不需要关心底层实现。

Libraries(库) + Android Runtime(Android运行时) :Libraries(库) :Android提供了一组C/C++库,为平台的不同组件所使用,比如媒体框架;Android Runtime:由Android核心库集 + Dalvik虚拟机构成。

Dalvik虚拟机是针对移动设备的虚拟机,特点:不需要很快的CPU计算速度和大量的内存空间;每个App都单独地运行在单独的Dalvik虚拟机内,即每个app对应一条Dalvik进程。

运行流程: Android课堂笔记(一)环境、概念、创建

 

④Linux内核:涉及底层驱动,一些系统服务,比如安全性,内存管理以及进程管理等。

※ 架构参考网站:https://www.runoob.com/android/android-architecture.html

1.2.1 开发环境

1.现在主流的Android开发环境有: ①Eclipse + ADT + SDK (谷歌不再更新)②Android Studio + SDK(过渡方向) 

2.术语解析:

  1. Dalvik(DVM): Android特有的虚拟机,安卓字节代码由DVM运行解析。
  2. AVD: (android virtual machine):安卓虚拟设备,就是安卓的模拟器
  3. ADT: (android development tools)安卓开发工具,链接IDE和SDK的桥梁。
  4. SDK:(software development kit)软件开发工具包,为开发者提供库文件和其他开发工具。
  5. DDMS:(dalvik debug monitor service)安卓调试工具
  6. adb:安卓调试桥,在sdk的platform-tools目录下,功能很多,命令行必备
  7. DX工具:将.class转换成.dex文件
  8. AAPT:(android asset packing tool),安卓资源打包工具
  9. R.java文件:由aapt工具根据App中的资源文件自动生成,可以理解为资源字典
  10. AndroidManifest.xml:app包名 + 组件声明 + 程序兼容的最低版本 + 所需权限等程序的配置文件

1.2.2 移动应用

1.移动应用:在移动设备上运行的软件,开发时考虑:目标移动设备、软件性能等。

2.主要类别: ①多媒体应用:视频/音频播放器,图形/图像查看工具等

②实用工具:联系人管理工具/任务管理器/通话管理器等

③基于Web的应用:搜索工具,即时通讯等

④企业应用:Microsoft office Mobile和ThinkFree

其他

1.2.3 移动平台

1.移动平台:用于运行移动应用的软件平台。移动应用是根据底层移动平台开发的。

2.移动平台分类:

➢ 厂商开发的私有平台,例如: ✓ iOS    apple          ✓ 黑莓 (BlackBerry)    RIM

➢ 第三方私有平台,例如 Windows Mobile。Microsoft

➢ 免费和开源平台,例如: ✓ Android    google           ✓ Symbian    Nokia

3.主流平台介绍:

①Ios:ios是苹果公司封闭的私有平台,它与底层硬件紧密捆绑.,ios在开发者支持面有限,不开源、可伸缩性低。

②Android:➢ Android主要由Google所有,更准去来说属于开放手机联盟 (83家科技和移动组织组成的联盟)

Android开源、可伸缩性高、基于Linux的操作系统、应用是以java为基础、操作系统分化、硬件效率低。

➢ Android 平台提供应用可用于与底层 Android 系统交互的开发框架 API,每个Android平台版本都有一个API级别关联。

4.SDK IDE区别:

SDK:能够进行开发的环境。

IDE:SDK环境可以通过添加插件进而添加其他功能,这种将想要的插件安装在SDK上的环境称为IDE。

如:①Symbian 开发环境由 Qt Creator 和 Qt SDK 组成。

②Android 开发环境需要 Android 开发工具 (ADT),是Eclipse的插件。

③Ios XCode IDE ,XCode工具 Instruments 用于分析代码性能剖析整个系统。

 

5.DVM JVM区别:

Java :.java文件 -> .class文件 -> .jar文件

JVM基于栈,编译运行慢;执行.class格式字节码;所有应用都运行在同一个JVM,即一个实例。

Android :.java文件 –> .class文件 -> .dex文件

DVM基于寄存器,编译运行快;执行.dex格式字节码(压缩.class文件);单个应用单独虚拟机,即单独进程。

1.3.1 安卓应用的构建块

1.Android 应用是使用以下四大组件构建块(应用程序组件)构建的:

活动 activity ,服务 service ,内容提供者 content provider ,广播接收器 broadcast receiver

2.View -- 表现层----服务层---持久层---数据库

活动----服务---内容提供者—数据库—广播接收器

 

3.活动:一个activity通常就是一个单独的屏幕(窗口),activity之间通过Intent通信 。

Android的每一个活动必须在AndroidMainfest.xml中声明,否则系统不识别,也不执行。

 

4.服务:是应用程序组件,不提供任何界面,始终在后台运行,用户不能干预。

5.内容提供者:存储和检索数据,使数据可访问;允许应用查询/修改或共享数据,但是应用必须从内容提供者处获取权限。

6.广播接收器:不提供 UI,可创建状态栏通知,当出现广播事件时提醒用户。

1.3.2 安卓项目结构

1.每个 Android 应用在其根目录中都应具有 AndroidManifest.xml 文件。

此文件为 Android 系统提供应用相关的信息,此信息对于 Android 系统执行应用必不可少。

2.Android项目目录 src, gen, bin, res. Androidmanifest.xml

1.3.3 XML可扩展标记语言

概念:XML以标准的层次结构方式描述数据的结构。

目的:存储数据和跨平台交换数据。

Android课堂笔记(一)环境、概念、创建

1.3.4 如何选择下载不同版本的安卓SDK文档学习?

ADT→ sdk文件夹→ index.html→ Develop→ Reference

Android课堂笔记(一)环境、概念、创建

1.4.1 MyFirstApp

1.关于新建项目:Android课堂笔记(一)环境、概念、创建

2.关于工作集:Android课堂笔记(一)环境、概念、创建

3.关于虚拟机:Android课堂笔记(一)环境、概念、创建

4.如何让app在不同的虚拟机上运行?

Android课堂笔记(一)环境、概念、创建

Android课堂笔记(一)环境、概念、创建