admin 管理员组文章数量: 1184232
2024年2月26日发(作者:javascript function)
《Android程序设计》期末总结
( 版权所有下载不究 - - )
第一章:
课后习题:
1、下列不属于Android平台的技术架构的是:Java虚拟机JVM
2、下面 Activity 通常就是一个单独的屏幕
3、简述Android的优势:
(1)系统的开放性和免费性
(2)移动互联网的发展
(3)相关厂商的大力支持
(4)技术的进一步完善
(5)开放收集联盟模式的挑战
(6)其他技术的竞争
本章重点:
1、常见的手机操作系统:Symbian、Android、windows
Mobile、IOS、OMS
2、Android平台采用了软件栈,由低到高分为四部分:
Linux内核层
中间层(包括程序库(Libraries)和Android运行时环境)
应用程序框架
应用层
3、一个android应用程序通常由4个组件构成:
(1)活动(Activity),是最基本的android应用程序组件
(2)意图(Intent),利用消息实现应用程序见的交互机制
(3)服务(Service),是android应用程序中具有较长的生命周期但是没有用户界面的程序。
(4)内容提供器(Content Provider),提供了一种多应用间数据共享的方式。
其中活动(Activity)是必要部分。
第二章:
课后习题:
1、Activity生命周期中的(OnCreate())方法用于Activity初次创建时被调用。
2、(暂停)状态下的Activity失去了焦点,但是仍然对用户可见。
3、Activity的可见生命周期是(从调用onStart()方法到onStop()方法的整个过程)
4、Android程序不能直接访问的资源存放在(assets目录)下
5、简述Activity的生命周期中的各种方法。
每个Activity类在定义是都必须继承ty
(1)onCreate():Activity初次创建时被调用,在该方法中一般进行一些静态设置,如创建View视图,进行数据绑定。如果Activity是首次创建,本方法后将会调用onStart(),如果Activity是停止后重新显示,则调用onRestart()。
(2)onStart():当Activity对用户即将可见的时候调用。
(3)onRestart():当Activity从停止状态重新启动时调用。
(4)onResume():当Activity将要与用户交互时调用此方法,此时Activity在Activity栈的栈顶,用户输入信息可以传递给它。如果其他的Activity在它的上方恢复显示,则调用onFreeze ()。
(5)onFreeze():当Activity被暂停而其他的Activity恢复与用户交互的时候,改方法将会被调用,其后总是调用onPause()。
(6)onPause():当系统要启动一个其他的Activity是(其他的Activity显示之前),这个方法将被调用,用于提交持久数据的改变,停止动画等。
(7)onStop():当另外一个Activity恢复并遮盖住当前的Activity,导致其对用户不再可见时,这个方法被调用
(8)onDestroy():在Activity被销毁前所调用的最后一个方法。
6、编写一个Activity显示一张图片。
参见源代码第二章③
本章重点:
1、Activity具有生命周期,共有四种状态
(1)激活或者运行状态。此时Activity运行在屏幕的前台
(2)暂停状态:此时Activity失去了焦点,但是仍然对用户可见
(3)停止状态:此时Activity被其他Activity覆盖
(4)终止状态:此时Activity将会被系统清理出内存
2、Activity的生命周期还可以根据不同标准分类:
(1)完整生命周期:从Activity最初调用onCreate()方法到最终调用onDestroy()方法的过程。
(2)可见生命周期:从Activity调用onStart()方法开始,到调用对应的onStop()方法
(3)前台生命周期:从Activity调用onResume()方法开始,到调用对应的onPause()方法。
3、LogCat视图:
Tag:日志标记
Msg:日志信息
Tr:异常信息
4、资源使用:
Res目录存放android程序能通过R资源类直接访问的资源。
Assets目录存放android程序不能直接访问的资源(原生文件),必须通过assermanager 类以二进制流的形式读取。
5、对于字符串资源,在其他资源文件中使用“@string/资源名称”的形式访问,在代码中可通过“.资源名称”访问
6、对于图片资源,在其他资源文件中使用“@drawable/资源名称”的形式访问,在代码中可通过“R.s drawable.资源名称”访问
第三章:
课后习题:
1、下面不属于Android用户界面元素的是(资源引用R)
2、(事件)不是通过new运算符创建的,而是由用户操作触发的
3、Spinner是(下拉列表)组件。
4、简述创建选项菜单和上下文菜单的步骤
创建选项菜单(Option Menu)步骤:
(1)覆盖Activity的onCreateOptionsMenu()方法,当第一次打开菜单是,该方法被自动调用。
(2)调用Menu的add()方法添加菜单项(MenuItem),可以调用MenuItem的setIcon()方法为菜单设置图标。
(3)当菜单项被选择时,覆盖Activity的OptionsItemSelected()方法来响应事件。
上下文菜单(Context Menu)步骤:
(1)覆盖Activity的onCreateContextMenu()方法,调用Menu的add()方法添加菜单项(MenuItem).
(2)覆盖onContextItemSelected()方法,响应菜单的单击事件。
(3)在Activity的onCreate()方法中,调用registerForContextMenu()方法,为视图注册上下文菜单。
本章重点:
1、用户界面元素分类
视图组件(View)
视图容器(ViewGroup)
布局管理(Layout):LinearLayout(线性布局),RelativeLayout(相对布局),TableLayout (表格布局),AbsoluteLayout(绝对布局)
2、android系统中引用Java的事件处理机制,包括事件,事件源和事件监听器三个事件模型。
(1)事件(Event):是一个描述事件源状态改变的对象,事件不是通过new运算符创建的,而是有用户操作触发的。
(2)事件源(Event Source):即产生事件的对象,事件源通常是UI组件,
(3)事件监听器(Event Listener):当事件产生是,事件监听器用于对该事件进行响应和处理。监听器需要事件监听接口中定义的事
件处理方法。
2.1事件处理步骤:
(1)创建事件监听器
(2)在事件处理方法中编写事件处理代码
(3)在相应的组件上注册监听器
3、常用Widget组件:文本框(TextView),编辑框(EditText),复选框(CheckBox),单选按钮组(RadioGroup),下拉列表(Spinner),图片视图(ImageView),滚动视图(ScrollView),网格视图(GridView),列表视图(ListView)
4、android中提供了两种创建布局的方式:XML布局文件和代码直接实现。
5、android系统中提供了4种对话框:AlertDialog,ProgressDialog,DatePickerDialog,TimePickerDialog。
6、创建提示对话框的步骤如下:
(1)获得AlertDialog的静态内部类Builder对象,由该类创建对话框。
(2)通过Builder对象设置对话框的标题、按钮以及按钮将要响应的事件。
(3)调用Builder的Create()方法创建对话框
(4)调用AlertDialog的show()方法显示对话框。
7、创建Toast的步骤:
(1)调用Toast的静态方法makeText()创建一个指定文本和时长的提示信息。
(2)调用Toast的show()方法显示提示信息。
提示信息(Toast)是android中用来显示提示信息的一种机制。与对话框不同,Toast是没有焦点的,而且Toast显示时间有限,超过一定的时间就会自动消失。
第四章
课后习题:
1、下列Intent的Action属性中,用来标识应用程序入口的是
(ACTION_MAIN)
2、Android系统提供了终端用户用于开发应用程序交互功能的组件,这些组件包括(广播接收器、意图、适配器、内容提供器)
3、下列关于启动Intent的说法,正确的是
ctivity用于启动Activity
ervice()用于启动Service
oadcast()用于发送广播
4、Intent由动作、数据、分类、类型、组件、扩展信息等内容组成
5、简述Intent的过滤机制
Intent过滤器是用来通知系统它们能够处理哪种类型隐式的Intent对象,Activity、Service、Broadcast Receiver能够有一个或多个Intent过滤器。每个过滤器都描述了组件的一种能力,说明了组件将会接受的Intent对象集。它滤如有效的期望类型的Intent对象,滤出不想要的Intent对象。隐式的Intent对象仅能发送给能够通过组件的一个过滤器来传递它的一个组件。
一个Intent过滤器是IntentFilter类的实例。Intent过滤器通常都不是用Java代码来建立的,而是在应用程序的清单文件()中用元素来声明。
过滤器有类似于Intent对象的动作、数据、和分类的字段,过滤器会用这三个域来检测一个隐式的Intent对象。对于要传递给拥有过滤器的组件的Intent对象,必须传递所有的这三个要检测的字段。如果其中之一失败了,Android系统也不会把它发送给对应的组件---至少在基于那个过滤器的基础上不会发送。
6、简述Android广播机制的作用
Android广播机制指的是,可以通过实现广播接收器来监听和响应这些广播的Intent。通常广播Intent用于向监听器通知系统给事件或应用程序事件,从而扩展应用程序间的事件驱动
的编程模型。广播Intent可以使应用程序更加开放,通过使用Intent来广播一个事件,可以在不用修改原始应用程序的情况下,对
事件作出响应。Android中大量使用广播Intent来广播系统事件,如电池电量、网络连接和来电。
7、编写两个程序,使用广播进行通讯
参见源代码第四章③
本章重点:
1、Intent由动作(Action),数据(Data),分类(Category)类型(Type)组件(Component)和扩展信息(Extra)
2、Android系统提供了终端用户用于开发应用程序交互功能的组件,广播接收器(Broadcast Receivers),意图(Intent)、适配器(Adapters)以及内容提供器(Content Providers).
3、Action属性用于描述Intent要完成的动作,对要执行的动作进行一个简要描述。
4、Intent的Data属性是执行动作的URI和MIME类型。
5、Category属性指明一个执行Action的分类。
6、Component属性用于指明Intent的目标组件的类名称。
7、Extra属性用于添加一些附加信息。
8、多Activity的Android应用程序可通过startActivity()方法制定相应的intent对象来启动另外一个Activity。
9、Intent的Extra属性用于添加一些附加信息,利用该属性可以进行消息的传递
10、将传递的信息存放到Extra属性中的两种方式:一种是直接将信息添加到Extra属性中,另一种是将数据封装到Bundle包中。
11、Intent可以通过显式方式或隐式方式找到目标组件,显式方式直接通过设置组件名来实现,而隐私方式则是通过Intent Filter过滤实现。
12、在配置文件中,Intent Filter以元素来指定,一个组件中可以有多个元素,每个元素描述不同的功能。
13、广播接收器(Broadcast Receiver)是接收广播消息,并对消息作出响应的组件。
14、Activity的
sendBroadcast(),sendOrderBroadcast(),sendStrikyBoradcast()方法都可以广播Intent到广播接收器。
第五章
课后习题:
1.下列不是Service特点的是:比Activity的优先级低
2.关于启动、停止Service的说法,错误的是:rvice()启动的Secvice可以调
用rvice()结束
e生命周期方法有onCreate()、onStart()和onDestroy()
4.简述Service的生命周期:
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service 方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
5.编写程序,实现Service声明周期中的启动、创建、停止、绑定等
参见本章代码①
本章重点:
1、Service分为:本地服务和远程服务
2、Service的特点:
①没有用户界面,不与用户交互
②长时间运行,不占程序控制权
③比Activity的优先级高,不会轻易被Android系统终止,即使Service被系统终止,在系统资源恢复后,Service仍将自动运行
④用于进程间通信,解决两个不同进程间的调用和通信问题
3、Service的实现
①创建一个Service类并配置
②启动或绑定Service
③停止Service
4、Service的创建
onCreate()方法:初始化Service,标志Service生命周期开始
onStart()方法:启动一个Service,代表Service进入了运行的状态
onDestroy()方法:释放Service所占用的资源,标志Service声明周期的结束
5、Service的两种启动方式:
启动方式:使用ervice()方法启动Service,调用者与Service之间没有关联,即使调用者退出,Service服务依然运行
绑定方式:通过rvice()启动Service,调用者与Service之间绑定在一起,调用者一旦退出,Service服务也就终止。
第六章
课后习题:
适合结构化数据存储的是:SQLite
1.可以存储为XML文件的存储方式是:Preference
2.关于Android数据存储的说法,不正确的是:Android的文件存储无法使用标准
Java(JavaSE)中的IO机制
3.关于SQLite的说法,不正确的是:
SQLite不支持事务
SQLite只能用于Android系统
SQLite允许网络访问
d的4种数据存储机制是:Preference、文件方式、SQLite、网络。
本章重点:
使用SharedPreference存储数据的步骤:
1、使用getSharePreference()生成SharePreference对象。
2、使用的putXXX()方法保存数据。
3、使用的commit()方法将上一步保存的数据写到XML文件中。
4、使用SharedPreferences的getXXX()方法获取相应的数据。
SQLite的特点:轻量级、独立、便于管理和维护、可移植性、语言无关、事务性
数据库的操作:
(1)创建会打开数据库openDatabase()
(2)删除数据库Database()方法
(3)关闭数据库close()
记录操作:
(1)插入记录:insert()和execSQL()
(2)更新记录:update()和execSQL()
(3)查询记录:query()
(4)删除记录:delete()和execSQL()
在URL后拓展一个记录的ID:withAppendedId()和withAppendedPath()
第七章
课后习题
1.下列不属于Android内置网络支持的是:Firfox浏览器
2.关于使用Socket和ServerSocket进行网络通信的说法,不正确的是:
Socket的accept()方法用于接收客户端连接
服务器端无须使用Socket
3.关于HttpClient的说法,不正确的是:
HttpClient提供了HTML的渲染支持
HttpClient提供了JavaScript的解释器
4.在Android中,针对HTTP进行网络通信有:HttpURLConnection和HttpClient
本章重点:
Android中常用的网络编程方式:
1、针对TCP/IP协议的Socket和ServerSocket
2、针对HTTP协议的网络编程,如HttpURLConnection和HttpClient
3、直接使用WebKit访问网络
/doc/,包中提供了两个Socket类:
/doc/,.Socket是客户端的Socket对应类
/doc/,.ServerSocket是服务器端的Socket对应类,这个类表示一个等待客户端连接的服务器端套接字
Socket工作步骤:
1、根据指定的地址和端口创建一个Socket对象
2、调用getInputStream()方法或getOutputStream()方法打开连接到Socket的输入/出流
3、客户端与服务器根据一定的协议交互,直到关闭连接。
4、关闭客户端的Socket.
ServerSocket的工作步骤:
1、根据指定端口创建一个新的ServerSocket对象
2、调用ServerSocket的accept()方法,在指定的端口监听到来的连接。Accept()一直处在阻
塞状态,直到有客户端试图建立连接。这时accept()方法返回连接的客户端与服务器的Socket对象
3、调用getInputStream()方法或getOutputStream()方法建立与客户端交互的输入/输出流
4、服务器与客户端根据一定的协议交互,直到关闭连接。
5、关闭服务器的Socket
6、回到第二步,继续监听下一个连接。
HTTP网络通讯的两种方式:HttpURLConnection和HttpClient
WebKit引擎:Java引擎库和WebCore引擎库组成
WebView的优点:功能强大、能够对浏览器控件进行详细的设置、能够捕捉到所有浏览器操作
源码部分
源码目录:
第二章
①activity生命周期
②显示文字
③显示图片:
第三章
①实现单击按钮改变屏幕背景颜色
②通过注册窗口演示TextView,Spinner等的使用
③演示菜单背景颜色变换
④演示提示对话框的使用
⑤Toast的创建及显示
⑥使用Toast显示注册信息
第四章
①通过Intent实现多Activity的Android应用的启动
②使用putExtra()方法实现多个Activity消息传递
③使用BroadcastReceiver对象接受sendBroadcast()方法广播的Intent
第五章
①创建启动、停止、绑定、解除Service
②状态栏显示天气通知信息:
第六章
①文本编辑器:输入数据、保存数据、读取数据
②添加音乐记录、删除音乐记录(歌单)
③利用ContentProvider访问联系人,增加和删除联系人记录
第七章
①使用HttpURLConnection访问Servlet,实现用户的登录功能:****************源码*****************
第二章代码
1、activity生命周期
src—
public class MyActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
te(savedInstanceState);
setContentView(/doc/,);
Log.d("MyActivity", "onCreate");
}
protected void onStart() {
t();
Log.d("MyActivity", "onStart");
}
protected void onRestart() {
art();
Log.d("MyActivity", "onRestart");
}
protected void onResume() {
me();
Log.d("MyActivity", "onResume");
}
protected void onPause() {
e();
Log.d("MyActivity", "onPause");
}
protected void onStop() {
();
Log.d("MyActivity", "onStop");
}
protected void onDestroy() {
roy();
Log.d("MyActivity", "onDestroy");
}
}
2、显示文字
Res/layout/
<=""
/android">
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="25sp"
android:text="@string/hello" />
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="25sp"/>
import ty;
import ;
import ew;
public class MyActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
te(savedInstanceState);
setContentView(/doc/,youtp=""
xmlns:android="/doc/,/apk/res
.main);
TextView
t(_name);
}
}
3、显示图片:
<=""
/android">
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/td">
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
第三章代码
3.D.1实现单击按钮改变屏幕背景颜色
<=""
/android">
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<="" android:id="@+id/btnRed" android:text="红色" p="">
p=""
xmlns:android="/doc/,/apk/resp=""
xmlns:android="/doc/,/apk/restv =
(TextView)findViewById(/doc/,);
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<="" android:id="@+id/btnBlue" android:text="蓝色" p="">
android:layout_width="wrap_content"
android:layout_height="wrap_content">
Res/values/ 颜色资源文件
#ff0000
#0000ff
版权声明:本文标题:《Android程序设计》期末总结 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1708935854a534831.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论