厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日

Slides:



Advertisements
Similar presentations
开发入门 一个 android 初学者的心得与体会. 前言 两周前张老师通知我说,让我根据教练助手的学习与开发的过程讲下 android 开发的心得与体会,我觉得自己在这么多 Android 前辈大佬面前讲 android 简 直是班门弄斧。由于是刚入门的初学者,水平有限,很多方面还很不足,对 错误或不周到之处欢迎批评指正。顺便还得提下,我这个标题有抄袭积聚童.
Advertisements

Android ADT + Android SDK Eclipse Eclipse 編輯器 JAVA JAVA 開發工具.
第二章:行動裝置與擴增實境.
Android开发入门 -----第一个Android程序 主讲:李晓蕾
第2章  Android应用的界面编程.
第一章 Android简介与环境搭建 QQ号: QQ群: (Android编程入门) 网络资源:
浅谈我与Android相处的点滴 一、个人自动化经验分享 二、Android基本架构了解 三、MonkeyTest指令学习
Android环境搭建 倚动软件工厂实验室 网络课程地址:
實驗五:多媒體播放器選單介面.
Part 2 開發Android應用程式的流程
位置與地圖應用 此投影片為講解Android如何取得定位經緯度和使用Google Map地圖.
Activity之间的数据传递.
ArrayAdapter & Spinner
Android App 系統開發教學 Luna 陳雯琳 2014/12/18
建立Android新專案 建國科技大學 資管系 饒瑞佶 2010/10.
APP課程:Android程式設計開發環境與工具介紹
Review: Android简介.
實驗四:單位轉換程式.
第2章 建立Android應用程式 2-1 Java語言、XML文件與Android 2-2 建立第一個Android應用程式
Android + JUnit 單元測試 建國科技大學資管系 饒瑞佶 2012/8/19V4.
實驗十三:顯示目前經緯度位置.
Ch06 再談選單元件 物件導向系統實務.
使用Android控制Arduino 史先强
Android程式開發準備 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
Introduction on Smartphone Platform
Android開發環境建置與設定 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第9章 位置服务与地图应用.
第一个Android程序 本讲大纲: 1、创建Android应用程序 2、Android项目结构说明 3、运行Android应用程序
Chapter 6 Advanced UI Design.
Ch5 Android應用程式的主要組成.
Chapter 7 Android應用元件 Android應用元件可以幫助我們獲得系統資源訊息(ActivityManager)、提供系統服務(Service)、搜尋系統服務(SearchManager)、監聽Intent訊息(Broadcast Receiver)以及資料共享(ContentProvider和ContentResolver)。
Android介面設計 Android智慧型手機程式設計 建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2
Android Intent 建國科技大學 資管系 饒瑞佶 2011/1.
Chapter 6 進階UI設計.
第4章 Android生命周期.
第9章 使用意圖啟動活動與內建應用程式 9-1 意圖的基礎 9-2 使用意圖啟動活動
开发Eclipse插件的基本步骤 插件通过添加到预定义的扩展点来向平台添加功能。要将程序代码变成插件,需要: 决定插件如何与平台集成
Android 课程讲义 智能手机开发
ANDROID PROGRAMMING2.
CH7 佈局、按鈕與文字編輯元件.
Android + Service 建國科技大學 資管系 饒瑞佶.
Native Development Kit
實驗十四:顯示與控制地圖.
第2讲 移动应用开发基础知识(二) 宋婕
建立Android新專案 Android智慧型手機程式設計 程式設計與應用班 建國科技大學 資管系 饒瑞佶 2012/4 V1
第6章 建立Android使用介面 6-1 介面元件的基礎 6-2 Android的事件處理 6-3 按鈕元件 6-4 文字元件
Android手动测试实践 ——绮珠.
Android 视频教程简介.
建國科技大學 資管系 饒瑞佶 2012/4 V1 2012/8 V2 2013/2 V3 2014/9 V4
Android智慧型手機程式設計實務應用班
實驗十一:待辦事項程式 (儲存在手機上).
主编:钟元生 赵圣鲁.
Android Studio介面設計 建國科技大學資管系 饒瑞佶 2016/3 V1.
Android Application Component
網路應用.
Chapter 5 Basic UI Design.
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
實驗九:延續實驗八, 製作一個完整音樂播放器
Location Based Services - LBS
Android視窗介面 建國科技大學 資管系 饒瑞佶 2010/10.
實驗十六:匯出APK安裝檔與軟體上架.
Android Speech To Text(STT)
用Intent啟動程式中的其他Activity、運用WebView顯示網頁 靜宜大學資管系 楊子青
第9章 BroadcastReceiver的使用
Android进程间通讯.
布局管理器 本讲大纲: 1、线性布局 2、表格布局 3、帧布局 4、相对布局 5、范例1:使用表格布局与线性布局实现分类工具栏
加速感測器 靜宜大學資管系 楊子青.
控制UI界面 本讲大纲: 1、使用XML布局文件控制UI界面 2、在代码中控制UI界面 3、使用XML和Java代码混合控制UI界面
Part 8 Broadcast Receiver、Service和App Widget
社群定位資訊系統 葉國賢 組員: 吳俊億 鄧硯文 郭冠良 魏毓男
Presentation transcript:

厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日 Android手机开发 厦门大学数据库实验室 报告人:谢荣东 导师:林子雨 2014年8月30日

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

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

Android大事件 2005 2007 2008 Google收购了成立仅22个月的高科技企业Android 9月22日,谷歌正式对外发布第一款Android手机——HTC G1 9月23日,谷歌发布Android1.0

Android大事件 2009 2010 2011 2012 4月3日,Android1.5正式发布 5月19日,Google正式对外发布Android2.2智能操作系统 12月7日,Google正式发布Android2.3操作系统 2011 2月2日,Android3.0正式发布 2月3日,谷歌发布了专用于平板电脑的Android 3.0蜂巢系统 10月19日,谷歌正式发布Android 4.0操作系统 2012 1月4日,Android Market上的应用程序数量突破40万个,每4个月增加10万个应用程序 3月1日,Google对外宣布,Android Market的累计下载量已经突破130亿次

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

平台架构

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

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 ——所有应用程序都可以使用的强大而轻量级的关系数据库引擎

Android Runtime 核心库:提供大部分在Java编程语言核心类库中 可用的功能 虚拟机:专为移动设备优化过的虚拟机,每一个 Android应用程序是Dalvik虚拟机中的实例

Application Framework 通过提供开放的开发平台,Android使开发者能 够编制极其丰富和新颖的应用程序。 简化组件软件的重用;任何一个应用程序都可以 发布它的功能块并且任何其它的应用程序都可以 使用其所发布的功能块(不过得遵循框架的安全 性限制)

Application应用层 Android装配一个核心应用程序集合,包括电子 邮件客户端、SMS程序、日历、地图、浏览器、 联系人和其他设置等 所有应用程序都是用Java编程语言写的 开发我们自己的手机应用,r u ready?

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

Broadcast Receivers(广播接收器) 重要组件 Services(服务) Broadcast Receivers(广播接收器) Notifications(通知) …… Intents(意图) Content(内容) Activities(活动) 应用程序的显示层。每一个画面对应于你的应用程序,将会是Activity类的扩展。Activity使用Views去构建UI来显示信息和响应用户的行为。就桌面开发而言,一个Activity相当于Form Android应用程序中不可见的“工人”。 Service组件运行时不可见,但它负责更新的数据源和可见的Activity,以及触发通知。它们常用来执行一些需要持续运行的处理。类似于windows的系统服务 用户通知的框架。Notification用来在不需要焦点或不中断它们当前Activity的情况下提示用户。它们是Service或 Broadcast Receiver获得用户注意的首选方式。例如,当设备收到文本信息或外部来电时,它通过闪光,发声,显示图标或显示对话框信息来提醒你。

Broadcast Receivers(广播接收器) 重要组件 Services(服务) Broadcast Receivers(广播接收器) Notifications(通知) …… Intents(意图) Content(内容) Activities(活动) Intent广播的“消费者”。通过创建和注册一个Broadcast Receiver,应用程序可以监听符合特定条件的广播的Intent。Broadcast Receiver 会自动的启动你的Android应用程序去响应新来的Intent。Broadcast Receiver是事件驱动程序的理想手段。 提供共享的数据存储。Content Provider(内容提供器)用来管理和共享应用程序的数据库。在应用程序间,Content Provider是共享数据的首选方式。这意味着,你可以配置自己的Content Provider去存取其他的应用程序或者通过其他应用程序暴露的Content Provider去存取它们的数据。Android设备本身包含了几个Content Provider来访问像联系人信息等有用的数据库。 简单的消息传递框架。使用Intent,你可以在整个系统内广播消息或者给特定的Activity或者服务来执行你的行为意图。系统会决定那个(些)目标来执行适当的行为。

重要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元素(大部分是可见的)在应用程序的屏幕中使用

常见界面控件 TextView EditText Button ImageButton Checkbox RadioButton Spinner ListView TabHost

常见布局 LinearLayout 线性布局 RleativeLayout 相对布局 TableLayout 表格布局 垂直、水平 RleativeLayout 相对布局 相对于另一个控件或容器的布局 TableLayout 表格布局 类似于html中的table布局 FrameLayout 帧布局 AbsoluteLayout 绝对布局 FrameLayout对象好比一块在屏幕上提前预定好的空白区域,可以将一些元素填充在里面,如图片。所有元素都被放置在FrameLayout区域的最左上区域,而且无法为这些元素制指定一个确切的位置,若有多个元素,那么后面的元素会重叠显示在前一个元素上

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

开发环境搭建 安装JDK(需要1.5+) 安装Eclipse 安装Android SDK 安装Eclipse插件ADT(Android Development Tools) 重启Eclipse,配置android SDK路径

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

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

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

Hello world ! 新建Android工程 选择支持的android版本 确认 源代码 编译后的class 资源文件夹 图像文件 src/ java原代码存放目录 gen/ 自动生成目录 gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。 这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。 res/ 资源(Resource)目录 在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图标或常量 res/drawable 专门存放图标文件 res/layout 专门存放xml界面文件,xml界面文件和HTML文件一样,主要用于用户界面显示 res/values 专门存放应用使用到的各种常量,作用和struts中的国际化资源文件一样。 AndroidManifest.xml 功能清单文件 这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity 图像文件 布局文件 字符串资源 功能清单文件

源代码 文件位置: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); }

布局文件 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_height="wrap_content" android:text="@string/hello" /> </LinearLayout> 采用类似于HTML一样的布局文件,将展现和代码分离 LinearLayout (线性布局)、AbsoluteLayout(绝对布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、 FrameLayout(帧布局)

字符串资源 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目录下的资源文件进行汉化后重新打包,完成程序汉化

AndroidManifest.xml <?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> 应用程序申请的权限,在安装过程中会提示用户

运行效果

谢谢欣赏