android开发与架构设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ANDROID
Android架构
1、架构图直观 2、架构详解 2.1、Linux Kernel 2.1、Android Runtime 2.3、Libraries 2.4、Application Framework 2.5、Applications
1、架构图直观
2、架构详解
2.1、Linux Kernel Android基于Linux 2.6提供核心系统服务, 例如:安全、内存管理、进程管理、网络堆栈、 驱动模型。Linux Kernel也作为硬件和软件之 间的抽象层,它隐藏具体硬件细节而为上层提 供统一的服务。 知道OSI/RM,便知道分层的好处就是使 用下层提供的服务而为上层提供统一的服务, 屏蔽本层及以下层的差异,当本层及以下层发 生了变化不会影响到上层。也就是说各层各司 其职,各层提供固定的SAP(Service Access Point),专业点可以说是高内 聚、低耦合。
1.3、Android SDK安装 在Android Developers下载 android-sdk_r05-windows.zip, 下载完成后解压到任意路径。 • 运行SDK Setup.exe,点击 Available Packages。如果没有 出现可安装的包,请点击 Settings,选中Misc中的"Force https://..."这项,再点击 Available Packages 。 • 选择希望安装的SDK及其文档或 者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选 包。 • 在用户变量中新建PATH值为: Android SDK中的tools绝对路 径(本机为 D:\AndroidDevelop\androidsdk-windows\tools)。
1.1、JDK安装
1、环境搭建
Hale Waihona Puke Baidu
如果你还没有JDK的话,先去下载,接下来的工作就是 安装提示一步一步走。设置环境变量步骤如下: a. 我的电脑->属性->高级->环境变量->系统变量中添加以下 环境变量: b. JAVA_HOME值为: D:\Program Files\Java\jdk1.6.0_18(你安装JDK的目录) c. CLASSPATH值 为:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOM E%\lib\dt.jar;%JAVA_HOME%\bin; d.Path: 在开 始追加 %JAVA_HOME%\bin; NOTE:前面四步设置环境变量对搭建Android开发环境不 是必须的,可以跳过。
1.5、创建AVD 为使Android应用程序可以在模拟器上运行,必须创建AVD。 a、在Eclipse中。选择Windows > Android SDK and AVD Manager b、点击左侧面板的Virtual Devices,再右侧点击New c、填入Name,选择Target的API,SD Card大小任意,Skin随便选, Hardware目前保持默认值 d、点击Create AVD即可完成创建AVD 注意:如果你点击左侧面板的Virtual Devices,再右侧点击New ,而 target下拉列表没有可选项时,这时候你: a)点击左侧面板的Available Packages,在右侧勾选https://dlssl.google.com/android/repository/repository.xml,如下图所示: b)然后点击Install Selected按钮,接下来就是按提示做就行了 要做这两步,原因是在1.3、Android SDK安装中没有安装一些必要的可 用包(Available Packages)。
2.2、Android Runtime Android包含一个核心库的集合,提供大部分在 Java编程语言核心类库中可用的功能。每一个 Android应用程序是Dalvik虚拟机中的实例,运行在 他们自己的进程中。Dalvik虚拟机设计成,在一个设 备可以高效地运行多个虚拟机。Dalvik虚拟机可执行 文件格式是.dex,dex格式是专为Dalvik设计的一种压 缩格式,适合内存和处理器速度有限的系统。 大多数虚拟机包括JVM都是基于栈的,而Dalvik 虚拟机则是基于寄存器的。两种架构各有优劣,一般 而言,基于栈的机器需要更多指令,而基于寄存器的 机器指令更大。dx 是一套工具,可以將 Java .class 转换成 .dex 格式。一个dex文件通常会有多个.class。 由于dex有時必须进行最佳化,会使文件大小增加1-4 倍,以ODEX结尾。 Dalvik虚拟机依赖于Linux 内核提供基本功能, 如线程和底层内存管理。
2、HelloWorld
a. 通过File -> New -> Project 菜单,建立新 项目"Android Project" b. 然后填写必要的参数, 如下图所示:(注意这 里我勾选的是Google APIs,你可以选你喜欢 的,但你要创建相应的 AVD )
c. 点击Finish后,点击Eclipse的Run菜单选择Run Configurations… d. 选择“Android Application‖,点击在左上角(按钮 像一张纸上有个“+‖号)或者双击“Android Application‖, 有个新的选项“New_configuration‖ (可以改为我们喜欢的名字)。 e. 在右侧Android面板中点击Browse…,选择 HelloWorld
―确定”后,重新启动计算机。重启计算机以 后,进入cmd命令窗口,检查SDK是不是安装 成功。 运行 android –h 如果有类似以下的输出,表 明安装成功:
1.4、ADT安装 打开 Eclipse IDE,进入菜单中的 "Help" -> "Install New Software" 点击Add...按钮,弹出对话框要求输入Name和 Location:Name自己随便取,Location输入 http://dl-ssl.google.com/android/eclipse。如下 图所示:
2.5、Applications Android装配一个核 心应用程序集合,包 括电子邮件客户端、 SMS程序、日历、 地图、浏览器、联系 人和其他设置。所有 应用程序都是用 Java编程语言写的。
环境搭建及HelloWorld
1、环境搭建 1.1、JDK安装 1.2、Eclipse安装 1.3、Android SDK安装 1.4、ADT安装 1.5、创建AVD 2、HelloWorld
2.3、Libraries Android包含一个C/C++库的集合,供Android系统的各个组件使 用。这些功能通过Android的应用程序框架(application framework) 暴露给开发者。下面列出一些核心库: • 系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式 Linux设备 • 媒体库——基于PacketVideo的OpenCORE。这些库支持播放和录制 许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG • 界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和 三维图形层 • LibWebCore——新式的Web浏览器引擎,驱动Android 浏览器和内嵌 的web视图 • SGL——基本的2D图形引擎 • 3D库——基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包 含高度优化的3D软件光栅 • FreeType ——位图和矢量字体渲染 • SQLite ——所有应用程序都可以使用的强大而轻量级的关系 数据库引擎
安装完成之后,可以在检查JDK是否安装成功。 打开cmd窗口,输入java –version 查看JDK的版本信 息。出现类似下面的画面表示安装成功了:
1.2、 Eclipse安装 如果你还没有Eclipse的话,可以先去下载,下载 如下图所示的Eclipse IDE for Java Developers (92M)的win 32bit版:解压之后既可使用。
确定返回后,在work with后的下拉列表中 选择我们刚才添加的 ADT,我们会看到下 面出有Developer Tools,展开它会有 Android DDMS 和Android Development Tool,勾选他们。 如右图所示: 完成之后: » 选择Window > Preferences... » 在左边的面板选择Android,然后在右侧 点击Browse...并选中SDK路径,本机为: D:\AndroidDevelop\android-sdkwindows » 点击Apply、OK。配置完成。
• 2.4、Application Framework 通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖 的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、 运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。 开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系 结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其 他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这 一机制允许用户替换组件。 所有的应用程序其实是一组服务和系统,包括: • 视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用 程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览 器 • 内容提供者(Content Providers)——使应用程序能访问其他应用 程序(如通讯录)的数据,或共享自己的数据 • 资源管理器(Resource Manager)——提供访问非代码资源,如本 地化字符串、图形和布局文件 • 通知管理器(Notification Manager)——使所有的应用程序能够在 状态栏显示自定义警告 • 活动管理器(Activity Manager)——管理应用程序生命周期,提供 通用的导航回退功能
1、HelloWorld项目的目录结构
(这个HelloWorld项 目是基于Android 2.1的)在Eclipse的 左侧展开 HelloWorld项目, 可以看到如下图的目 录结构:
1.1、src文件夹 src, source code该文件夹是放项目的源代码的。打开 HelloWorld.java文件会看到如下代码: package helloworld.test; import android.app.Activity; import android.os.Bundle; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 可以知道:我们新建一个简单的HelloWorld项目,系统为我们生 成了一个HelloWorld.java文件。他导入了两个类 android.app.Activity和android.os.Bundle,HelloWorld类继承自 Activity且重写了onCreate方法。
f. 在Target面板的Automatic中勾选相应的AVD, 如果没有可用的AVD的话,你需要点击右下角的 Manager…,然后新建相应的AVD。如下图所示:
g. 然后点Run按钮即可,运行成功的话会有 Android的模拟器界面,如下图所示:
相关参数的说明:
A. Project Name: 包含这个项目的文件夹的名称。 B. Package Name: 包名,遵循JAVA规范,用包名来区 分不同的类是很重要的,我用的是helloworld.test。 C. Activity Name: 这是项目的主类名,这个类将会是 Android的Activity类的子类。一个Activity类是一 个简单的启动程序和控制程序的类。它可以根据需 要创建界面,但不是必须的。 D. Application Name: 一个易读的标题在你的应用程序 上。 E. 在"选择栏"的 "Use default location" 选项,允许你 选择一个已存在的项目。
HelloWorld项目的目录结构
1、HelloWorld项目的目录结构 • 1.1、src文件夹 • 1.2、gen文件夹 • 1.3、Android 2.1文件夹 • 1.4、assets • 1.5、res文件夹 • 1.6、AndroidManifest.xml • 1.7、default.properties
Android架构
1、架构图直观 2、架构详解 2.1、Linux Kernel 2.1、Android Runtime 2.3、Libraries 2.4、Application Framework 2.5、Applications
1、架构图直观
2、架构详解
2.1、Linux Kernel Android基于Linux 2.6提供核心系统服务, 例如:安全、内存管理、进程管理、网络堆栈、 驱动模型。Linux Kernel也作为硬件和软件之 间的抽象层,它隐藏具体硬件细节而为上层提 供统一的服务。 知道OSI/RM,便知道分层的好处就是使 用下层提供的服务而为上层提供统一的服务, 屏蔽本层及以下层的差异,当本层及以下层发 生了变化不会影响到上层。也就是说各层各司 其职,各层提供固定的SAP(Service Access Point),专业点可以说是高内 聚、低耦合。
1.3、Android SDK安装 在Android Developers下载 android-sdk_r05-windows.zip, 下载完成后解压到任意路径。 • 运行SDK Setup.exe,点击 Available Packages。如果没有 出现可安装的包,请点击 Settings,选中Misc中的"Force https://..."这项,再点击 Available Packages 。 • 选择希望安装的SDK及其文档或 者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选 包。 • 在用户变量中新建PATH值为: Android SDK中的tools绝对路 径(本机为 D:\AndroidDevelop\androidsdk-windows\tools)。
1.1、JDK安装
1、环境搭建
Hale Waihona Puke Baidu
如果你还没有JDK的话,先去下载,接下来的工作就是 安装提示一步一步走。设置环境变量步骤如下: a. 我的电脑->属性->高级->环境变量->系统变量中添加以下 环境变量: b. JAVA_HOME值为: D:\Program Files\Java\jdk1.6.0_18(你安装JDK的目录) c. CLASSPATH值 为:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOM E%\lib\dt.jar;%JAVA_HOME%\bin; d.Path: 在开 始追加 %JAVA_HOME%\bin; NOTE:前面四步设置环境变量对搭建Android开发环境不 是必须的,可以跳过。
1.5、创建AVD 为使Android应用程序可以在模拟器上运行,必须创建AVD。 a、在Eclipse中。选择Windows > Android SDK and AVD Manager b、点击左侧面板的Virtual Devices,再右侧点击New c、填入Name,选择Target的API,SD Card大小任意,Skin随便选, Hardware目前保持默认值 d、点击Create AVD即可完成创建AVD 注意:如果你点击左侧面板的Virtual Devices,再右侧点击New ,而 target下拉列表没有可选项时,这时候你: a)点击左侧面板的Available Packages,在右侧勾选https://dlssl.google.com/android/repository/repository.xml,如下图所示: b)然后点击Install Selected按钮,接下来就是按提示做就行了 要做这两步,原因是在1.3、Android SDK安装中没有安装一些必要的可 用包(Available Packages)。
2.2、Android Runtime Android包含一个核心库的集合,提供大部分在 Java编程语言核心类库中可用的功能。每一个 Android应用程序是Dalvik虚拟机中的实例,运行在 他们自己的进程中。Dalvik虚拟机设计成,在一个设 备可以高效地运行多个虚拟机。Dalvik虚拟机可执行 文件格式是.dex,dex格式是专为Dalvik设计的一种压 缩格式,适合内存和处理器速度有限的系统。 大多数虚拟机包括JVM都是基于栈的,而Dalvik 虚拟机则是基于寄存器的。两种架构各有优劣,一般 而言,基于栈的机器需要更多指令,而基于寄存器的 机器指令更大。dx 是一套工具,可以將 Java .class 转换成 .dex 格式。一个dex文件通常会有多个.class。 由于dex有時必须进行最佳化,会使文件大小增加1-4 倍,以ODEX结尾。 Dalvik虚拟机依赖于Linux 内核提供基本功能, 如线程和底层内存管理。
2、HelloWorld
a. 通过File -> New -> Project 菜单,建立新 项目"Android Project" b. 然后填写必要的参数, 如下图所示:(注意这 里我勾选的是Google APIs,你可以选你喜欢 的,但你要创建相应的 AVD )
c. 点击Finish后,点击Eclipse的Run菜单选择Run Configurations… d. 选择“Android Application‖,点击在左上角(按钮 像一张纸上有个“+‖号)或者双击“Android Application‖, 有个新的选项“New_configuration‖ (可以改为我们喜欢的名字)。 e. 在右侧Android面板中点击Browse…,选择 HelloWorld
―确定”后,重新启动计算机。重启计算机以 后,进入cmd命令窗口,检查SDK是不是安装 成功。 运行 android –h 如果有类似以下的输出,表 明安装成功:
1.4、ADT安装 打开 Eclipse IDE,进入菜单中的 "Help" -> "Install New Software" 点击Add...按钮,弹出对话框要求输入Name和 Location:Name自己随便取,Location输入 http://dl-ssl.google.com/android/eclipse。如下 图所示:
2.5、Applications Android装配一个核 心应用程序集合,包 括电子邮件客户端、 SMS程序、日历、 地图、浏览器、联系 人和其他设置。所有 应用程序都是用 Java编程语言写的。
环境搭建及HelloWorld
1、环境搭建 1.1、JDK安装 1.2、Eclipse安装 1.3、Android SDK安装 1.4、ADT安装 1.5、创建AVD 2、HelloWorld
2.3、Libraries Android包含一个C/C++库的集合,供Android系统的各个组件使 用。这些功能通过Android的应用程序框架(application framework) 暴露给开发者。下面列出一些核心库: • 系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式 Linux设备 • 媒体库——基于PacketVideo的OpenCORE。这些库支持播放和录制 许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、 H.264、 MP3、 AAC、 AMR、JPG、 PNG • 界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和 三维图形层 • LibWebCore——新式的Web浏览器引擎,驱动Android 浏览器和内嵌 的web视图 • SGL——基本的2D图形引擎 • 3D库——基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包 含高度优化的3D软件光栅 • FreeType ——位图和矢量字体渲染 • SQLite ——所有应用程序都可以使用的强大而轻量级的关系 数据库引擎
安装完成之后,可以在检查JDK是否安装成功。 打开cmd窗口,输入java –version 查看JDK的版本信 息。出现类似下面的画面表示安装成功了:
1.2、 Eclipse安装 如果你还没有Eclipse的话,可以先去下载,下载 如下图所示的Eclipse IDE for Java Developers (92M)的win 32bit版:解压之后既可使用。
确定返回后,在work with后的下拉列表中 选择我们刚才添加的 ADT,我们会看到下 面出有Developer Tools,展开它会有 Android DDMS 和Android Development Tool,勾选他们。 如右图所示: 完成之后: » 选择Window > Preferences... » 在左边的面板选择Android,然后在右侧 点击Browse...并选中SDK路径,本机为: D:\AndroidDevelop\android-sdkwindows » 点击Apply、OK。配置完成。
• 2.4、Application Framework 通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖 的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、 运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。 开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系 结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其 他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这 一机制允许用户替换组件。 所有的应用程序其实是一组服务和系统,包括: • 视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用 程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览 器 • 内容提供者(Content Providers)——使应用程序能访问其他应用 程序(如通讯录)的数据,或共享自己的数据 • 资源管理器(Resource Manager)——提供访问非代码资源,如本 地化字符串、图形和布局文件 • 通知管理器(Notification Manager)——使所有的应用程序能够在 状态栏显示自定义警告 • 活动管理器(Activity Manager)——管理应用程序生命周期,提供 通用的导航回退功能
1、HelloWorld项目的目录结构
(这个HelloWorld项 目是基于Android 2.1的)在Eclipse的 左侧展开 HelloWorld项目, 可以看到如下图的目 录结构:
1.1、src文件夹 src, source code该文件夹是放项目的源代码的。打开 HelloWorld.java文件会看到如下代码: package helloworld.test; import android.app.Activity; import android.os.Bundle; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 可以知道:我们新建一个简单的HelloWorld项目,系统为我们生 成了一个HelloWorld.java文件。他导入了两个类 android.app.Activity和android.os.Bundle,HelloWorld类继承自 Activity且重写了onCreate方法。
f. 在Target面板的Automatic中勾选相应的AVD, 如果没有可用的AVD的话,你需要点击右下角的 Manager…,然后新建相应的AVD。如下图所示:
g. 然后点Run按钮即可,运行成功的话会有 Android的模拟器界面,如下图所示:
相关参数的说明:
A. Project Name: 包含这个项目的文件夹的名称。 B. Package Name: 包名,遵循JAVA规范,用包名来区 分不同的类是很重要的,我用的是helloworld.test。 C. Activity Name: 这是项目的主类名,这个类将会是 Android的Activity类的子类。一个Activity类是一 个简单的启动程序和控制程序的类。它可以根据需 要创建界面,但不是必须的。 D. Application Name: 一个易读的标题在你的应用程序 上。 E. 在"选择栏"的 "Use default location" 选项,允许你 选择一个已存在的项目。
HelloWorld项目的目录结构
1、HelloWorld项目的目录结构 • 1.1、src文件夹 • 1.2、gen文件夹 • 1.3、Android 2.1文件夹 • 1.4、assets • 1.5、res文件夹 • 1.6、AndroidManifest.xml • 1.7、default.properties