Android应用程序开发(上)讲解_第1页
Android应用程序开发(上)讲解_第2页
Android应用程序开发(上)讲解_第3页
Android应用程序开发(上)讲解_第4页
Android应用程序开发(上)讲解_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android应用程序开发演讲提纲Android简介Android开发环境搭建Android常见控件FirstActivity工程Activity和IntentAndroid布局Android简介什么是AndroidAndroid一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。Android简介Android开展历史2005年Google收购了刚刚成立22个月的Android公司2007年11月5日,以Google为首的34家公司宣布成立开放联盟〔OpenHandsetAlliance,简称OHA)2008年9月22日,美国运营商T-MobileUSA在纽约正式发布第一款Google—T-MobileG1Android简介Android开展纲领Android简介Android五大优势一、开放性Android开发的平台允许任何移动终端厂商参加到Android联盟中来。二、挣脱运营商的束缚在过去很长的一段时间,特别是在欧美地区,应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制三、丰富的硬件选择由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。四、不受任何开发商的限制Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻挠。五、无缝结合Google应用Android平台可以无缝结合Google地图、邮件、搜索等优秀的Google效劳。Android简介AndroidVsiPhoneAndroid简介AndroidVsiPhoneAndroid简介Android框架结构图Android简介Activity〔应用表示层〕Activity是一个用户界面的概念,Activity通常表示应用程序中的一个屏幕,他它通常包含一个或多个View。Android简介Intent〔连接组件的纽带〕Intent在不同的组件之间传递消息,将一个组件的请求意图传给另一个组件。针对不同的组件发送相应内容的消息,按相应的方式激活组件。Android简介Service〔效劳〕Service没有可见的用户界面,但能够长时间运行于后台。Android定义了两种类型的Service:本地Service和远程Service。本地Service只是能由承载Service的应用程序访问的组件。而远程Service是供在其他设备上运行的应用程序远程访问的Service。Android简介ContentProvider〔内容提供者〕ContentProvider可以将一个应用程序指定的数据提供给其它应用程序。这些数据可以存储在文件系统中、SQLite数据库中、或以其它合理的方式。ContentProvider解决了应用程序间数据通信、共享的问题。Android简介BroadcastReceiver〔播送接收者〕BroadcastReceiver是接收播送、公告并作出相应的反响的组件。例如:公告时区的改变、电池电量低、已采取图片、用户改变了语言偏好。一个应用程序可以有任意数量的播送接收者去反响任何它认为重要的公告。演讲提纲Android开发环境搭建Android简介Android常见控件FirstActivity工程Activity和IntentAndroid布局Android开发环境搭建JDK安装因为Android平台的应用程序是用Java语言编写,所以还是需要J2SE平台提供最根本的Java编译工具以及运行时环境。1、JDK下载可以从下载最新版的JDK。Android开发环境搭建2、JDK安装配置1〕需要将安装文件夹下的bin和lib子文件夹路径添加到系统的路径环境变量“path”中。2〕创立“JAVA_HOME”环境变量,并将JDK的安装文件夹设置给该变量.例如:JAVA_HOME=“C:\ProgramFiles\Java\jdk1.6.0_24”path=“%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”CLASSPATH=“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”Android开发环境搭建3、验证JRE环境

JDK安装完毕之后,可以通过命令窗口执行“java-version”命令查看JDK版本信息。Android开发环境搭建AndroidSDK安装1、下载SDK1〕从://下载AndroidSDK。Android开发环境搭建2〕AndroidSDK包下载完成后,解压SDK压缩包,进入解压后的文件夹,双击下载SDK开发工具包。3〕选择相应SDK版本下载安装。Android开发环境搭建2、安装配置AndroidSDK因为在开发过程中要用到AndroidSDK中的工具所以需要将SDK包中的“tools”文件夹和platform-tools文件夹的路径参加到“path”中。例如:path=“…..;D:\android-sdk-windows\tools;D:\android-sdk-windows\platform-tools”Android开发环境搭建AndroidSDK内容介绍SDK下载解压之后,其中包含非常丰富的开发资源,包括丰富的辅助工具和完备的开发参考。1〕“add-ons”中包含的附件加资源文件,主要是GoogleAPI第3版的开发包和文档资源。2〕“docs”中包含的是完整的AndroidSDK参考文档,包括SDK发布信息和API参考。3〕“platforms”中包含多个版本的SDK的内容,每个版本的文件夹中,又包含该版本的相关内容。4〕“tools”文件夹中存放的是SDK附带的Android平台的共用工具。Android开发环境搭建Eclipse安装1〕下载Eclipse翻开:///downloads/下载Eclipse开发工具(3.4以上的版本)。2〕安装Eclipse对于Eclipse来说,直接解压之后就可以使用。Android开发环境搭建ADT安装启动Eclipse,选择菜单Help-->InstallNewSoftware,在出现的对话框里,点击Add按钮,在对话框的name一栏输入“ADT”,

然后点击Archive...,浏览和选择已经下载的ADT插件压缩文件。点击OK。返回可用软件的视图,你会看到这个插件,然后选择Developer

Tools,点击Next,然后点Finish,最后根据提示重启Eclipse。Android开发环境搭建设置ADT插件选项1〕通过菜单“window””Preferences”,进入首选项设置界面。2〕选择左侧的“Android”工程,点击”Browse”选择AndroidSDK的位置,然后点击“确定”。Android开发环境搭建验证开发环境1〕创立虚拟设备通过Eclipse的“Window”“AndroidSDKandAVDManager”进入Android虚拟设备管理界面,点击“New”创立模拟器。Android开发环境搭建2〕配置模拟器1、输入模拟器名称2、选择AndroidSDK版本3、设置SDCard卡大小〔设置为256MB〕4、设置屏幕大小〔选择HVGA〕演讲提纲FirstActivity工程Android简介Android常见控件Android开发环境搭建Activity和IntentAndroid布局FirstActivity工程现在创立第一个Android应用程序了,首先编写一个简单的“HelloWorld”程序,执行以下步骤来创立应用程序框架。 (1)启动Eclipse并选择File->New->Project。在NewProject对话框中,展开Android目录,选择AndroidProject,然后单击Next,将看到NewAndroidProject对话框。Eclipse可能已将“AndroidProject”添加到New菜单中,如果存在此菜单项,那么可以使用它。工具栏上还有一个NewAndroidProject按钮可供使用。FirstActivity工程(2)在NewAndroidProject对话框中,输入HelloAndroid作为工程名称,HelloAndroidApp作为应用程序名称,com.xunfang作为包名称,HelloActivity作为CreateActivity的名称。注意,对于真实的应用程序,将需要使用有意义的应用程序名称,因为它将在应用程序段标题栏中显示。在BuildTarget中选择Android版本,并在MinSDKVersion填入你所选择的Android版本后对应的APILevel。FirstActivity工程现在可以在创立好的模拟器里运行我们的应用程序了,选择HelloAndroid工程,右键选择Runas,选择AndroidApplication。或者右键选择Runas,选择RunConfigurations在Target选项卡中选择已经存在的模拟器,单击Run,运行效果如以下图。FirstActivity工程Android应用程序结构分析尽管各种Android应用程序的大小和复杂性可能相差甚大,但它们的结构是类似的,右图展示了刚构建的“HelloWorld”应用程序的结构。 Android应用程序除了包含必需的元素外,还包含一些可选元素。FirstActivity工程元素描述是否必需AndroidManifest.xmlAndroid应用程序的描述文件。是src(文件夹)包含应用程序源代码是assets任意文件夹和文件集合否res(文件夹)包含应用程序的资源,是drawable、anim、layout、menu、values、xml、和raw的父文件夹是drawable(文件夹)包含应用程序所使用的图像或图像XML描述符文件否layout(文件夹)包含应用程序的View否values(文件夹)包含应用程序使用的其他资源,包括字符串、样式和颜色否演讲提纲Activity和IntentAndroid简介Android常见控件FistActivity工程Android开发环境搭建Android布局Activity和IntentActivityActivity是一个用户界面的概念,这个界面里面可以放置各种控件,通常表示应用程序的一个屏幕,主要负责和用户交互,右图就是一个Activity样例。Activity和IntentActivity创立1、新建一个继承Activity的类,如:NewActivity,重写onCreate()方法。2、需要在功能清单AndroidManifest.xml文件中注册新建的Activity,添加配置代码(红色局部): <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">…… <activityandroid:name=".NewActivity"android:label="新activity的页面标题“/></application>Activity和IntentActivity生命周期Activity有四个状态:当它在屏幕前台时〔位于当前任务堆栈的顶部〕,它是激活或运行状态,它就是响应用户操作的Activity。当它失去焦点但仍然对用户可见时,它处于暂停状态。即在它之上有另外一个Activity。这个Activity也许是透明的,或者没有完全覆盖全屏,所以被暂停的Activity仍对用户可见。暂停的Activity仍然是存活状态〔它保存着所有的状态和成员信息并保持和窗口管理器的连接〕,但系统处于极低内存时仍然可以杀死这个Activity。完全被另一个Activity覆盖时那么处于停止状态。它仍然保存所有的状态和成员信息。然而对用户是不可见的,所以它的窗口将被隐藏,如果其它地方需要内存,那么系统经常会杀死这个Activity。Activity被系统杀死回收或者没有被启动时处于死亡状态。Activity和Intent

当Activity从一种状态转变到另一种状态时,会调用以下保护方法来通知这种变化:

onCreate()

onStart()onRestart()

onResume()

onPause()

onStop()

onDestroy()Activity和Intent这七个方法定义了Activity的完整生命周期。实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环:完整生命周期:Activity自第一次调用onCreate()开始,直至调用onDestroy()为止。Activity在onCreate()中设置所有“全局”状态以完成初始化,而在onDestroy()中释放所有系统资源。可视生命周期:Activity的可视生命周期自onStart()调用开始直到相应的onStop()调用结束。在此期间,用户可以在屏幕上看到Activity,尽管它也许并不是位于前台或者也不与用户进行交互。在这两个方法之间,我们可以保存用来向用户显示这个Activity所需的资源。前台生命周期:Activity的前台生命周期自onResume()调用起,至相应的onPause()调用为止。在此期间,Activity位于前台最上面并与用户进行交互。Activity会经常在暂停和恢复之间进行状态转换——例如当设备转入休眠状态或者有新的Activity启动时,将调用onPause()方法。当Activity获得结果或者接收到新的Intent时会调用onResume()方法。Activity和Intent

Android是通过一种Activity栈的方式来管理Activity的,一个Activity的实例的状态决定它在栈中的位置。Activity和Intent应用程序启动之后,运行第一个Activity之后,该Activity对象被压入到栈中。Activity和Intent

点击按钮后启动第二个Activity,该Activity对象被压入栈中。Activity和Intent

点击第三个Activity的按钮之后,启动第三个Activity,该Activity对象被压入到栈中。Activity和Intent

点击第四个Activity的按钮之后,启动第四个Activity。Activity和Intent点击Back按钮,这时SMSActivity对象从堆栈中弹出,显示ThirdActivity。Activity和Intent点击Back按钮之后,显示SecondActivity,ThirdActivity从栈中弹出。Activity和Intent再次点击Back按钮之后,显示FirstActivity,SecondActivity从栈中弹出。Activity和IntentIntentAndroid根本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件。使用Intent可以激活Android应用的三个核心组件:活动、效劳和播送接收器。Activity和IntentIntent的根本作用一个Intent对象包含了一组信息:1.Componentname2.Action3.Data4.Category5.Extras6.FlagsActivity和IntentIntent的根本使用方法………Intentintent=newIntent();Intent.setClass(Activity01.this.Activity02.class);startActivity(intent);…….Activity和IntentIntent发送消息………Intentintent=newIntent(this,Activity.class);Intent.putExtra(“message”,”HelloWorld!”);startActivity(intent);…………演讲提纲Android常见控件Android简介Android开发环境搭建FirstActivity工程Activity和IntentAndroid布局Android常见控件AndroidUIAndroidSDK包含很多控件,可以使用它们来为应用程序构建用户界面。与其他SDK类似,AndroidSDK提供了文本字段、按钮、列表等控件,此外,Android还提供了一组适合移动设备的控件。 常见控件的核心是两个类:android.view.View和android.view.ViewGroup。由第一个类的名称可以看出,View类表示一个通用的视图对象,Android中的常见控件最终都会扩展View类。ViewGroup也是一个视图,但它还包含其他视图,它是一些布局类的基类。同Swing一样,Android使用布局的概念来管理控件在容器视图中的摆放方式。 在Android中构建用户界面,有多种方法可供选择。可以通过代码完整的构建用户界面,也可以在XML中定义用户界面,甚至可以结合使用两种方法——在XML定义用户界面,然后在代码中引用和修改它。下面开始介绍Android中的一些常用控件和布局管理器。Android常见控件文本控件—TextViewTextView控件用于显示文本,但不允许进行编辑。1.根据ID获取TextView对象TextViewtextView1=(TextView)findViewById(R.id.textview1);2.设置TextView内容

textView1.setText(“通过setText()方法设置的值”);3.设TextView背景颜色

textView1.setBackgroundColor(Color.WHITE);4.设字体大小textView1.setTextSize(16);5.设置字体颜色textView1.setTextColor(Color.RED);Android常见控件文本控件—EditText EditText是TextView的子类,从其名称可以看出,EditText控件支持文本编辑。

<EditText

android:id=“@+id/edittext1”//设置空间id

android:layout_width=“fill_parent“//设置控件宽度

android:layout_height=“wrap_content”//设置控件高度

android:text=“@string/textvalue”//设置内容

android:singleLine=“true“//限定行数 />Android常见控件AutoCompleteTextViewAutoCompleteTextView控件是一个具有自动完成功能的EditText。换句话说,当用户输入内容时,该控件可以显示建议输入供用户选择。1.根据id获取控件对象AutoCompleteTextViewactv=(AutoCompleteTextView)this.findViewById(R.id.ccactv);2.创立内容字符串数组String[]Counts=newString[]{“English”,“Hebrew”,“Hindi”,“Spanish”,“German”,“Greek”}2.创立适配ArrayAdapter<String>aa=newArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,Counts);3.为控件设置适配器actv.setAdapter(aa);Android常见控件按钮控件—Button1.根据Id获取Button对象 Buttonbtn=(Button)this.findViewById(R.id.ccbtn1);2.为Button设置监听事件btn.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){Toast.makeText(this,”BasicButton”,0).show();}});Android常见控件按钮控件—ImageButtonAndroid通过android.widget.ImageButton提供图像按钮图像按钮的用法类似于根本按钮Button。 可以通过setImageResource()或修改XML布局文件(将android:src属性设置为图像ID)设置按钮的图像。1.根据id获取ImageButton对象 ImageButtonbtn=(ImageButton)this.findViewById(R.id.imageBtn);2.设置ImageButton内容 btn.setImageResource(R.drawable.icon);3.布局Xml文件中的配置 <ImageButtonandroid:id="@+id/imageBtn" android:src="@drawable/icon" android:layout_width="wrap_content" android:layout_height="wrap_content"/>Android常见控件按钮控件—CheckBox 复选框也是一种具有两种状态的按钮,允许用户切换其状态。1.布局文件中的配置 <CheckBoxandroid:id="@+id/checkboxjava" android:layout_width=“wrap_content”android:layout_height="wrap_content"android:text="java"/>2.可以调用setChecked()来切换复选框的状态,3.调用isChecked()来获取它的状态。4.如果要在选中或取消选中复选框时实现特定的逻辑,可以调用setOnCheckedChangeListener()设置监听事件。Android常见控件按钮控件—RadioButton要创立一组单项选择按钮,首先要创立RadioGroup,然后向其中填充单项选择按钮。1.RadioGroup在xml中的相关设置 <RadioGroup android:id="@+id/radioGroup" android:layout_width="fill_parent" android:layout_height="wrap_content"> <RadioButton android:text="@string/chinese" android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height=“wrap_content”/></RadioGroup>Android常见控件列表控件—ListViewListView以垂直的方式显示一组项,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。先说说ListView的实现:列表的显示需要三个元素:1.ListVeiw:用来展示列表的View。2.适配器:用来把数据映射到ListView上的中介。3.数据:具体的将被映射的字符串、图片或者根本组件。4.根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter。ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方 面的把数据库的内容以列表的形式展示出来。Android常见控件图像控件—ImageView

ImageView可以用来显示任意图像,例如图标。1.Xml方式设置ImageView <ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content" android:src="@drawable/android1"/>2.通过id获取ImageView对象ImageViewimageView=(ImageView)findViewById(R.id.imageview);3.设置ImageView内容imageView.setImageDrawable(getResources().getDrawable(R.drawable.android1));//imageView.setImageResource(R.drawable.android1);Android常见控件图像控件—GridViewGridView控件用于把一系列的空间组织成一个二维的网格显示出来。1.GridView在布局文件中的配置<GridViewandroid:id="@+id/gridview"android:layout_width="fill_parent"android:layout_height="wrap_content"android:columnWidth="90dp"android:numColumns="auto_fit"android:verticalSpacing="10dp"android:horizontalSpacing="10dp"android:stretchMode="columnWidth"android:gravity="center“/>2.根据id获取GridView对象gridview=(GridView)findViewById(R.id.gridview);3.创立内容字符串对象list=newString[]{"C++","JavaScript","C","Java"};4.创立适配器ArrayAdapter<String>adapter=newArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,list);5.给GridView设置适配器gridview.setAdapter(adapter);演讲提纲Android布局Android简介Android常见控件FirstActivity工程Activity和IntentAndroid开发环境搭建Android布局Android提供下表所示的五种布局。布局名称说明LinearLayout水平或垂直组织其子控件TableLayout以表格形式组织其子控件RelativeLayout以与兄弟控件或父控件的相对位置来组织其子控件FrameLayout在屏幕中开辟一块区域,可以在这块区域内添加多个子控件,但是所有的控件都对向左对齐。AbsoluteLayout控制每个子控件的坐标,已不推荐使用。Android布局线性布局—LinearLayout

线性布局根据orientation属性的值,以水平或垂直方式组织其子控件。<LinearLayout android:layout_width=“fill_parent”android:layout_height="wrap_content" android:orientation="horizontal">horizontal表示控件以水平方式布局。vertical表示控件以垂直方式布局Android布局线性布局—LinearLayout通过layout_weight属性可以设置控件在容器中占用空间大小的比例; layout_gravity属性设置控件在容器中的对齐方式;gravity属性设置控件内文本的对齐

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论