Android 手机开发

30
Android 手手手手 手手手手手手手手手手 手手手 手手手 手手 手手手 2014 手 8 手 30 手

description

Android 手机开发. 厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014 年 8 月 30 日. 纲要. Android 概述 平台架构 重要组件 开发环境介绍 Hello World! Demo 演示. Android 概述. Android 手机操作系统是2007年11月5日由美国Google公司基于Linux整合开发的嵌入式系统,后开源并由后由开放手机联盟Open Handset Alliance)开发。在全世界范围内,Moto、HTC(多普达)、联想、三星等众多公司都已经推出Android手机产品和上网本产品,而且有越来越多加速上升的趋势。. - PowerPoint PPT Presentation

Transcript of Android 手机开发

Page 1: Android 手机开发

Android 手机开发厦门大学数据库实验室

报告人:谢荣东导师:林子雨

2014 年 8 月 30 日

Page 2: Android 手机开发

纲要

• Android 概述• 平台架构• 重要组件• 开发环境介绍• Hello World!

• Demo 演示

Page 3: Android 手机开发

Android 概述

• Android 手机操作系统是 2007 年 11 月 5 日由美国 Google 公司基于 Linux 整合开发的嵌入式系统,后开源并由后由开放手机联盟Open Handset Alliance )开发。在全世界范围内, Moto 、 HTC (多普达)、联想、三星等众多公司都已经推出 Android 手机产品和上网本产品,而且有越来越多加速上升的趋势。

Page 4: Android 手机开发

Android 大事件

Page 5: Android 手机开发

Android 大事件

Page 6: Android 手机开发

纲要

• Android 概述• 平台架构• 重要组件• 开发环境介绍• Hello World!

• Demo 演示

Page 7: Android 手机开发

平台架构

Page 8: Android 手机开发

Linux 核心层

• Android 基于 Linux 2.6 提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。 Linux Kernel 也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。

Page 9: Android 手机开发

Libraries 类库层

• Android 包含一个 C/C++ 库的集合,供Android 系统的各个组件使用。这些功能通过Android 的应用程序框架( application framework )暴露给开发者。

Page 10: Android 手机开发

Android Runtime

• 核心库:提供大部分在 Java 编程语言核心类库中可用的功能

• 虚拟机:专为移动设备优化过的虚拟机,每一个Android 应用程序是 Dalvik 虚拟机中的实例

Page 11: Android 手机开发

Application Framework

• 通过提供开放的开发平台, Android 使开发者能够编制极其丰富和新颖的应用程序。

• 简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)

Page 12: Android 手机开发

Application 应用层

• Android 装配一个核心应用程序集合,包括电子邮件客户端、 SMS 程序、日历、地图、浏览器、联系人和其他设置等

• 所有应用程序都是用 Java 编程语言写的• 开发我们自己的手机应用, r u ready?

Page 13: Android 手机开发

纲要

• Android 概述• 平台架构• 重要组件• 开发环境介绍• Hello World!

• Demo 演示

Page 14: Android 手机开发

重要组件

应用程序的显示层。每一个画面对应于你的应用程序,将会是Activity 类的扩展。 Activity使用 Views 去构建 UI 来显示信息和响应用户的行为。就桌面开发而言,一个 Activity 相当于Form用户通知的框架。 Notification用来在不需要焦点或不中断它们当前 Activity 的情况下提示用户。它们是 Service 或 Broadcast Receiver 获得用户注意的首选方式。例如,当设备收到文本信息或外部来电时,它通过闪光,发声,显示图标或显示对话框信息来提醒你。

Android 应用程序中不可见的“工人”。 Service 组件运行时不可见,但它负责更新的数据源和可见的 Activity ,以及触发通知。它们常用来执行一些需要持续运行的处理。类似于windows 的系统服务

Page 15: Android 手机开发

重要组件

Intent 广播的“消费者”。通过创建和注册一个 Broadcast Receiver ,应用程序可以监听符合特定条件的广播的Intent 。 Broadcast Receiver 会自动的启动你的 Android 应用程序去响应新来的Intent 。 Broadcast Receiver是事件驱动程序的理想手段。

提供共享的数据存储。 Content Provider( 内容提供器 ) 用来管理和共享应用程序的数据库。在应用程序间, Content Provider 是共享数据的首选方式。这意味着,你可以配置自己的 Content Provider 去存取其他的应用程序或者通过其他应用程序暴露的Content Provider 去存取它们的数据。 Android 设备本身包含了几个 Content Provider 来访问像联系人信息等有用的数据库。

简单的消息传递框架。使用Intent ,你可以在整个系统内广播消息或者给特定的 Activity 或者服务来执行你的行为意图。系统会决定那个 ( 些 ) 目标来执行适当的行为。

Page 16: Android 手机开发

重要 java 包

• android.app :提供高层的程序模型、提供基本的运行环境• android.content 包含各种的对设备上的数据进行访问和发布的类• android.database :通过内容提供者浏览和操作数据库• android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他

们直接绘制到屏幕上 .• android.location :定位和相关服务的类• android.media :提供一些类管理多种音频、视频的媒体接口• android.net :提供帮助网络访问的类,超过通常的 java.net.* 接口• android.os :提供了系统服务、消息传输、 IPC 机制• android.opengl :提供 OpenGL 的工具 ,3D 加速• android.provider :提供类访问 Android 的内容提供者• android.telephony :提供与拨打电话相关的 API 交互• android.view :提供基础的用户界面接口框架• android.util :涉及工具性的方法,例如时间日期的操作• android.webkit :默认浏览器操作接口• android.widget :包含各种 UI 元素(大部分是可见的)在应用程序的屏幕中使用

Page 17: Android 手机开发

常见界面控件

• TextView

• EditText

• Button

• ImageButton

• Checkbox

• RadioButton

• Spinner

• ListView

• TabHost

Page 18: Android 手机开发

常见布局

• LinearLayout 线性布局• 垂直、水平

• RleativeLayout 相对布局• 相对于另一个控件或容器的布局

• TableLayout 表格布局• 类似于 html 中的 table 布局

• FrameLayout 帧布局• AbsoluteLayout 绝对布局

Page 19: Android 手机开发

纲要

• Android 概述• 平台架构• 重要组件• 开发环境介绍• Hello World!

• Demo 演示

Page 20: Android 手机开发

开发环境搭建

Page 21: Android 手机开发

安卓模拟器

安卓模拟器 (AVD) :Android 为开发人员提供了可以在电脑上直接调试应用程序的虚拟设备 AVD ( Android Virtual Device )。使用 AVD 可以方便地对应用程序进行调试

Page 22: Android 手机开发

程序调试 DDMS

• DDMS 是 Dalvik Debug Monitor Service 的简称,主要功能是监控应用程序的运行并打印日志、模拟电话打入与接听、模拟短信的收发、虚拟地理位置等。有了 DDMS 的帮助,可以大大降低应用程序的测试成本。

Page 23: Android 手机开发

纲要

• Android 概述• 平台架构• 重要组件• 开发环境介绍• Hello World!

• Demo 演示

Page 24: Android 手机开发

Hello world !

• 新建 Android 工程• 选择支持的 android 版本• 确认

源代码

编译后的 class

资源文件夹

图像文件

布局文件字符串资源功能清单文件

Page 25: Android 手机开发

源代码

• 文件位置: Src/com.huaxia.Helloworld.java

• 代码:• 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); }}

Page 26: Android 手机开发

布局文件

• Res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

><TextView

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/></LinearLayout>

采用类似于 HTML 一样的布局文件,将展现和代码分离LinearLayout ( 线性布局 ) 、 AbsoluteLayout( 绝对布局 ) 、 RelativeLayout( 相对布局 ) 、 TableLayout( 表格布

局 ) 、 FrameLayout( 帧布局 )

Page 27: Android 手机开发

字符串资源

• Res/values/strings.xml• <?xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World,

华夏 !</string> <string name="app_name">Helloworld</string></resources>

•类似于 struts 的国际化资源文件。•借助于 apktool 等工具,可以对非汉化版的 apk 包中的values 目录下的资源文件进行汉化后重新打包,完成程序汉化

Page 28: Android 手机开发

Andro

idM

anife

st.xm

l<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.huaxia" android:versionCode="1" android:versionName="1.0"><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.CALL_PHONE" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Helloworld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>

Page 29: Android 手机开发

运行效果

Page 30: Android 手机开发

谢谢欣赏