SlideShare a Scribd company logo
Android开发入门
Outline
Android 简介
Android 系统架构
Android 应用开发调试
Android 主要组件介绍
Outline
Android 简介
Android 系统架构
Android 应用开发调试
Android 主要组件介绍
Android大事件
• 2003年10月,Andy Rubin等人组建Android团队。
• 2005年8月17日,Google低调收购了成立仅22个月的高科
技企业Android及其团队。
• 2007年11月5日,组建开放手持设备联盟(Open
Handset Alliance): 84家硬件制造商、软件开发商及电信
营运商,以Apache开源许可证的授权方式,发布了Android
的源代码。
• 2008年10月, 第一部Android智能手机发布。
• 2011年第一季度,Android在全球的市场份额首次超过塞
班系统,跃居全球第一。
• 2012年11月数据显示,Android占据全球智能手机操作系
统市场76%的份额,中国市场占有率为90%。
Android 版本
 Android 1.5 Cupcake
 Android 1.6 Donut
 Android2.0/2.0.1/2.1 Eclair
 Android 2.2/2.2.1 Froyo
 Android 2.3 Gingerbread
 Android 3.0-3.2 Honeycomb
 Android 4.0/4.0.3 Ice Cream
Sandwich
 Android 4.1/4.2 Jelly bean
 Android 5.0 Key lime pie
Outline
Android 简介
Android 系统架构
Android 应用开发调试
Android 主要组件介绍
Android全景结构
Android架构
Linux Kernel:
Android的核心系统服务依赖于
Linux2.6内核,包括安全性、内存
管理、进程管理、网络协议栈和驱
动模型。
• 隐藏了硬件、网络等相关的细节,
为上层提供了一个统一接口。
• 通过HAL接口,分离 framework开发
对不同硬件驱动的依赖
• Android的底层实现具备超强的可移
植性
Android架构
核心的和扩展的类库
• 本地的C/C++实现。
• 开源的SQLite、WebKit、OpenGL
• 上层函数调用该层类库必须要通过JNI
的导出相应的接口函数
Android Runtime:
• Dalvik虚拟机,Android
的Java虚拟机
• Java基础库
为上层JAVA程序提供服务
Android架构
框架层
• 所有开发所用的SDK类库
• 一些未公开接口的类库和实现
整个Android平台核心机制的体现
Android架构
应用层
• 系统应用
• 第三方开发的所有应用
两者差别,就是系统应用会用一些隐藏的
类,而第三方的应用,总是基于SDK
提供的类
Outline
Android 简介
Android 系统架构
Android 应用开发调试
Android 主要组件介绍
开发环境准备
• JDK下载
– http://www.oracle.com/technetwork/java/javas
e/downloads/index.html
• Eclips, Android SDK,ADT 下载:
– http://developer.android.com/sdk/index.html
– Eclips->windows->perference->android
简单示例demo
• ADT提供了一个新的工程向导,你可以快速的创建一个新的工程或者在现有代
码上创建工程。创建工程的步骤如下:
• 选择File > New > Project 选择 Android > Android Project, 然后按下
Next
• 选择项目内容:
– 选择 Create new project in workspace, 为编码创建一个全新的工程。
输入工程名称(project name),基础软件包的名称(the base package
name),以及Activity 类的名称。
– 选择Create project from existing source ,为已有代码创建一个工程。
如果你想编译运行SDK中提供的示例程序,可以使用这个选项。示例程序
的存放在SDK的samples/目录下。 浏览包含已有代码的目录,点击ok,如
果目录中包含有可用的android manifest 文件,ADT将为你填写合适的软
件包,activity,和应用程序名称。
• 按下Finish.
• ADT插件会根据你的工程类型创建合适的文件和文件夹,如下:
• src/ 包含stub .java Activity文件的文件夹.
• res/ 资源文件夹.
• AndroidManifest.xml 工程清单.
和Java项目结构相同src文件夹是项
目的所有包及源文件(.java)
res文件夹中则包含了项目中的所有
资源,比如:程序图标(drawable)
、布局文件(layout)、常量
(values)等。
R.java是在建立项目时自动生成的,
这个文件是只读模式,不能更改,
R.java文件是定义该项目所有资源的
索引文件。
AndroidManfest.xml文件则包含了该
项目中所使用的Activity、Service、
Receiver等。
AndroidManifest.xml
Android的应用包生成过程
JAVA 源代码 AndroidManifest.xml 资源文件
处理后的
资源文件
JAVA编译器
处理后的
AndroidManifest.xml
Class字节码
Dex字节码
aapt
进行处理
aapt
进行处理
dx工具
处理
APK包
包的Meta信息
aapt放置到
在res目录
aapt放置到
根目录
aapt放置到
根目录
源程序部分
DDMS 使用
1. DDMS的简介:
 DDMS 的全称是Dalvik Debug Monitor Service
 作用:Debug、为测试设备截屏,针对特定的进程查看正在运行的线
程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、
虚拟地理坐标等等
 安装好ADT后会有一个DDMS的perspective
在坐上角的Devices中,选中要Debug的工程,然后点击 图标,
这样便可以进入Debug模式
DDMS的使用——Debug
DDMS的使用 emulator control
emulator control也是非常重要的,通过它可以像手机发送短信, 打电话,更新手
机位置信息。
• Telephony Status: 通过选项模拟语音质量以及信号连接模式。
• Telephony Actions: 模拟电话接听和发送SMS到测试终端。
• Location Control: 模拟地理坐标或者模拟动态的路线坐标变化并显示预设的地理
标识,可以通过以下3种方式:
Manual: 手动为终端发送二维经纬坐标。
GPX: 通过GPX文件导入序列动态变化地理坐标,从而模拟行进中GPS变化的数值。
KML: 通过KML文件导入独特的地理标识,并以动态形式根据变化的地理坐标显示在测
试终端
• 右边窗口中有threads, heap , file explorer选项卡。分别显示线程统
计信息,栈信息,以及android的文件系统。
• file explorer非常有用,他可以把文件上传到android手机,或者从手机下
载下来,也可以进行删除操作。
选中file explorer选项卡后,按下面三个按钮便可实现对android手机文件
系统的上传,下载,删除操作。
DDMS的使用—信息查看
Outline
Android 简介
Android 系统架构
Android 应用开发调试
Android 主要组件介绍
Android 进程管理
• Android系统会尽可能长的延续一个应用程序进程,但在内存过低的
时候,仍然会不可避免需要移除旧的进程。为决定保留或移除一个进
程,Android 将每个进程都放入一个“重要性层次”中,依据则是它
其中运行着的组件及其状态。重要性最低的进程首先被消灭,然后是
较低的,依此类推。
• 前台进程
• 可视进程
• 服务进程
• 背景进程
• 空进程
Android 四大组件
Activity
Service
BroadcastReceiver
Content Provider
Activity:
• 每个activity都要继承
android.app.Activity类,
• 并重写其中的某些方法
onCreate()
onStart()
onResume()
onPause()
onStop()
onDestroy()
• onSaveInstanceState(B
undle)
• onRestoreInstanceState
(Bundle)
Activity
• Android will display the ANR dialog when:
– No response to an input event (such as key press or
screen touch events) within 5 seconds.
– A BroadcastReceiver hasn't finished executing within
10 seconds.
• In order to avoid ANR and keep your App
responsive, the time-consuming operations
should run in a new thread : AsyncTask ,
thread/handler/looper
Activity
Service
• Service
– perform long-running
operations in the
background and does not
provide a user interface,
ex:play music.
• start/stopService
• bind/unbindService
Service
• Service killed by system?
– Not kill:Running a Service in the Foreground
• startForeground() and stopForeground()
– Restart service :
• onStartCommand()
– START_NOT_STICKY/START_STICKY/START_REDEL
IVER_INTENT
BroadcastReceiver
• BroadcastReceiver:
– receive intents sent by sendBroadcast(). ex:incoming call, sms, battery
change
• 2种监听方式:
– 程序中动态注册registerReceiver/unregisterReceiver
– AndroidManifest.xml中注册
• 生命周期只有十秒左右,如果在 onReceive() 内做超过十秒内的事情,
就会报ANR(Application No Response)
• 如果需要完成一项比较耗时的工作 , 应该通过发送 Intent 给 Service,
由Service 来完成 ,不能使用子线程来解决
Content Provider
• 结构化数据,统一数据访问方式,实现不同应用间数据共享. Ex:联系人
• Content provider提供共享数据, 通过ContentResolver 来跟provider
的一个实例进行交互。
• 每个contentprovider定义一个唯一的公开的URI,用于指定到它的数据
集。一个contentprovider可以包含多个数据集,需要有多个URI与每个
数据集对应。URI 格式 : content://
• 通过 Query, insert,update,retrieve, delete 来进行数据的查询修
改。
Content Provider
创建ContentProvider共享数据,继承ContentProvider并重写下面方法:
public class PersonContentProvider extends ContentProvider{
public boolean onCreate()
public Uri insert(Uri uri, ContentValues values)
public int delete(Uri uri, String selection, String[] selectionArgs)
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String
sortOrder)
public String getType(Uri uri)}
AndroidManifest.xml使用<provider>对该ContentProvider进行配置,为了能让其他应用找
到该ContentProvider , ContentProvider 采用了authorities(主机名/域名)对它进行唯
一标识:
<manifest .... >
<application android:icon="@drawable/icon" android:label="@string/app_name">
<provider android:name=".PersonContentProvider"
android:authorities="cn.itcast.providers.personprovider"/>
</application>
</manifest>
Intent and Intent Filters
• Intent: an abstract description of an action to be performed.
– startActivity()来启动一个activity,
– 由broadcast Intent()来传递给所有感兴趣的BroadcaseReceiver,
– startService()/bindservice()来启动一个service
• Intent组成 :
– action,data
– other parts: category/type/component/extras
• IntentFilter : An IntentFilter can match against actions, categories,
and data (either via its type, scheme, and/or path) in an Intent.
其他开发组件
• UI:
– Button,textview,listview , xxxLayout…
• Input event:
– TouchEvent, KeyDown,multi-touch …
• System service:
– Location service,telephony service,sensor
service, wifi service, usb service …
• http://developer.android.com/index.html
QA

More Related Content

Viewers also liked

Me Hace Feliz Cuando?!
Me Hace Feliz Cuando?!Me Hace Feliz Cuando?!
Me Hace Feliz Cuando?!
joel Gutierrez
 
Dunc+hep+hiv+for+hull+2013
Dunc+hep+hiv+for+hull+2013Dunc+hep+hiv+for+hull+2013
Dunc+hep+hiv+for+hull+2013
Sophie Oakley
 
Taller1 wilson polanco_grupo2
Taller1 wilson  polanco_grupo2Taller1 wilson  polanco_grupo2
Taller1 wilson polanco_grupo2
wardio
 
Хүннү гүрэн
Хүннү гүрэнХүннү гүрэн
Хүннү гүрэнBolzooo
 
Proporzionalità e calcoli di riparto
Proporzionalità e calcoli di ripartoProporzionalità e calcoli di riparto
Proporzionalità e calcoli di ripartoDanieleGnudi
 
20th century poetry eng 3
20th century poetry eng 320th century poetry eng 3
20th century poetry eng 3
stephyweffy_
 
Хүннү гүрэн
Хүннү гүрэнХүннү гүрэн
Хүннү гүрэнBolzooo
 
монгол хатад
монгол хатадмонгол хатад
монгол хатадBolzooo
 
Aplikasi fungsi linier dan sistem persamaan dalam bisnis
Aplikasi fungsi linier dan sistem persamaan dalam bisnisAplikasi fungsi linier dan sistem persamaan dalam bisnis
Aplikasi fungsi linier dan sistem persamaan dalam bisnis
Nailul Hasibuan
 

Viewers also liked (10)

Me Hace Feliz Cuando?!
Me Hace Feliz Cuando?!Me Hace Feliz Cuando?!
Me Hace Feliz Cuando?!
 
Dunc+hep+hiv+for+hull+2013
Dunc+hep+hiv+for+hull+2013Dunc+hep+hiv+for+hull+2013
Dunc+hep+hiv+for+hull+2013
 
Taller1 wilson polanco_grupo2
Taller1 wilson  polanco_grupo2Taller1 wilson  polanco_grupo2
Taller1 wilson polanco_grupo2
 
Хүннү гүрэн
Хүннү гүрэнХүннү гүрэн
Хүннү гүрэн
 
sinh học
sinh họcsinh học
sinh học
 
Proporzionalità e calcoli di riparto
Proporzionalità e calcoli di ripartoProporzionalità e calcoli di riparto
Proporzionalità e calcoli di riparto
 
20th century poetry eng 3
20th century poetry eng 320th century poetry eng 3
20th century poetry eng 3
 
Хүннү гүрэн
Хүннү гүрэнХүннү гүрэн
Хүннү гүрэн
 
монгол хатад
монгол хатадмонгол хатад
монгол хатад
 
Aplikasi fungsi linier dan sistem persamaan dalam bisnis
Aplikasi fungsi linier dan sistem persamaan dalam bisnisAplikasi fungsi linier dan sistem persamaan dalam bisnis
Aplikasi fungsi linier dan sistem persamaan dalam bisnis
 

Similar to Android

Android
AndroidAndroid
Android
donotbeevil
 
Internet System Security Overview
Internet System Security OverviewInternet System Security Overview
Internet System Security Overview
ChinaNetCloud
 
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego daycsdnmobile
 
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego daycsdnmobile
 
Android开发概览
Android开发概览Android开发概览
Android开发概览
heyfluke
 
Android event retrospect
Android event retrospectAndroid event retrospect
Android event retrospectrogeryi
 
开源软件营销策略
开源软件营销策略开源软件营销策略
开源软件营销策略
linhaicaoyuan
 
20140409
2014040920140409
Android开发技巧与性能优化
Android开发技巧与性能优化Android开发技巧与性能优化
Android开发技巧与性能优化
russell_tmp
 
Jira 4.0 白皮书
Jira 4.0 白皮书Jira 4.0 白皮书
Jira 4.0 白皮书YUCHENG HU
 
51 cto下载 android应用程序开发宝典
51 cto下载 android应用程序开发宝典51 cto下载 android应用程序开发宝典
51 cto下载 android应用程序开发宝典sys520084
 
Android简介
Android简介Android简介
Android简介wzwdwx
 
04.layman android google handheld device application design
04.layman android   google handheld device application design04.layman android   google handheld device application design
04.layman android google handheld device application designgaquay086
 
Android ADK
Android ADKAndroid ADK
Android ADK
艾鍗科技
 
Android NFC Application Development Environment Setup
Android NFC Application Development Environment SetupAndroid NFC Application Development Environment Setup
Android NFC Application Development Environment Setup
Chun-Kai Wang
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章浒 刘
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8 浒 刘
 
Android应用开发 - 沈大海
Android应用开发 - 沈大海Android应用开发 - 沈大海
Android应用开发 - 沈大海
Shaoning Pan
 
Android開發app
Android開發appAndroid開發app
Android開發app
騰昱 魏
 
Android开发基础
Android开发基础Android开发基础
Android开发基础ykdsg
 

Similar to Android (20)

Android
AndroidAndroid
Android
 
Internet System Security Overview
Internet System Security OverviewInternet System Security Overview
Internet System Security Overview
 
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
 
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
上午2 intel 杜伟_iadp app_up intro - isn isc chn for idf meego day
 
Android开发概览
Android开发概览Android开发概览
Android开发概览
 
Android event retrospect
Android event retrospectAndroid event retrospect
Android event retrospect
 
开源软件营销策略
开源软件营销策略开源软件营销策略
开源软件营销策略
 
20140409
2014040920140409
20140409
 
Android开发技巧与性能优化
Android开发技巧与性能优化Android开发技巧与性能优化
Android开发技巧与性能优化
 
Jira 4.0 白皮书
Jira 4.0 白皮书Jira 4.0 白皮书
Jira 4.0 白皮书
 
51 cto下载 android应用程序开发宝典
51 cto下载 android应用程序开发宝典51 cto下载 android应用程序开发宝典
51 cto下载 android应用程序开发宝典
 
Android简介
Android简介Android简介
Android简介
 
04.layman android google handheld device application design
04.layman android   google handheld device application design04.layman android   google handheld device application design
04.layman android google handheld device application design
 
Android ADK
Android ADKAndroid ADK
Android ADK
 
Android NFC Application Development Environment Setup
Android NFC Application Development Environment SetupAndroid NFC Application Development Environment Setup
Android NFC Application Development Environment Setup
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章
 
Se2009 ch8
Se2009 ch8 Se2009 ch8
Se2009 ch8
 
Android应用开发 - 沈大海
Android应用开发 - 沈大海Android应用开发 - 沈大海
Android应用开发 - 沈大海
 
Android開發app
Android開發appAndroid開發app
Android開發app
 
Android开发基础
Android开发基础Android开发基础
Android开发基础
 

Android