《作业习题_Android系统应用开发(Android程序设计基础版)第1-23章.doc》由会员分享,可在线阅读,更多相关《作业习题_Android系统应用开发(Android程序设计基础版)第1-23章.doc(137页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Android系统应用开发作业习题暨总复习题(Android程序设计基础版)2013-2014-2学期主讲教师:贾震斌目录第1章 认识一下ANDROID1第2章 搭建ANDROID应用开发环境2第3章 ACTIVITY组件4第4章 界面布局7第5章 资源管理11第6章 INTENT组件16第7章 SERVICE29第8章 BROADCASTRECEIVER41第9章 CONTENT PROVIDER45第10章 FRAGMENT49第11章 基本UI组件54第12章 高级UI组件68第13章 MENU79第14章 ACTIONBAR87第15章 通知91第16章 DIALOG96第17章 AL
2、ARM101第18章 触摸处理105第19章 深入VIEW109第20章 线程与进程114第21章 PREFERENCES119第22章 文件操作125第23章 数据库129结束131第1章 认识一下Android1. Android系统内核基于什么操作系统?答:Android是一个完整的移动操作系统,利用Linux作为系统内核,实现了存储管理、设备管理、文件管理、进程管理、安全管理等操作系统的基本功能。2. Google发布的基于Linux平台的开放源代码移动操作系统平台名称是什么?答:Android。3. Android运行的虚拟机名称是什么?虚拟机内运行的字节码文件后缀名是什么?答:An
3、droid运行的虚拟机不是Java虚拟机,而是经过改造的Dalvik 虚拟机,在虚拟机内运行的并不是Java编译后的字节码,而是后缀名为dex内部格式文件。4. Android采用什么软件架构?整个系统包括哪几个层次?答:Android采用堆栈式软件架构,整个系统从底层操作系统到顶层核心应用在内分为5个层次:Linux内核、Android运行环境(Android Runtime)、库集合(Libraries)、应用框架(Application Framework)、应用(Application)。5. 请自行上网搜集目前三大主流移动操作系统名称及所属公司、技术特点、首次发布时间、目前最新版本号
4、,并根据你的了解分析这几个移动操作系统各自的市场前景,面临的挑战和机遇。答:(本题为开放式探讨题,无标准答案,要求学生搜索资料、有理有据、观点明确即可。)第2章 搭建Android应用开发环境1. Android开发组件主要包括哪三部分?答:Android SDK、Android SDK Tools和Android SDK Platform-tools。2. Android提供的专门用于Eclipse IDE开发环境可以让 Android SDK 集成到 Eclipse环境中的插件名称?答:ADT或Android Development Tools。3. 请根据下图中Android工程目录结构
5、,回答以下问题:(1)应用项目名称?(2)各文件夹名称及功能?(3)包名称、主程序文件名及类名?(4)Android 应用可以打包成什么格式文件进行发布?在工作空间的哪个目录中可以找到这个文件?图中这个文件名称是什么?(5)Android应用项目配置清单文件名称是什么?答:(1)chapter2(2)src:存放源文件gen:开发环境自动生成的文件,其中包含R.java文件,注意此文件会自动更新,不要去直接修改Android X.X.X:对应“X.X.X”版本号的Android Platform的类库:android.jar。res:资源文件夹,在 Android 中除了 Java 代码外,其
6、他一切均可看作资源,包括图标、图像、常量定义等。该文件夹下存在多个子文件夹layout:保存界面的布局文件values:保存常量信息drawable:分成几个子文件夹,分别保存不同分辨率的图像,以便兼容不同平台(3)包名称:cn.edu.jssvc.ced. 主程序文件名:main.java类名:main(4)Android 应用可以打包成apk格式文件进行发布,在bin文件夹下 。chapter2.apk(5)AndroidMainfest.xml。4. Android SDK提供了哪两种应用测试方式?其提供的模拟器英文名称是什么?分别请提供这种测试方式的截图。答:(1)Android SD
7、K提供了虚拟设备测试应用和真实设备测试应用两种方式;(2)进行虚拟设备测试的模拟器称为 AVD (Android Virtual Device);(3)截图:略。5. 搭建基于Eclipse的Android应用开发环境需要哪些软件及步骤?答:(1)安装JDK(Java Development Kit);(2)安装Eclipse;(3)安装Android SDK;(4)在Eclipse中安装ADT(或Android Development Tools)插件。6. Android开发环境中什么组件可以为开发人员提供如测试屏幕截图、进程查看、堆信息、LogCat、广播状态信息、模拟电话呼叫、接收SM
8、S、虚拟地理坐标等功能支持来调试Android应用?请提供截图。答:DDMS (Dalvik Debug Monitor Service)截图:略。第3章 Activity组件1. 什么是Activity?主要功能是什么?答:Activity是一个独立的可以与用户交互的Android应用组件功能:作为应用程序框架动态加载各种用户界面视图,实现底层消息传递等,它是一个功能强大的界面管理者,负责调度各种界面视图,实现Android应用与用户之间的交互。2. 请你参照教材3.2节步骤,并按以下要求创建一个Activity,说明创建过程步骤,并配以相应截图。(1)应用项目及Activity名称为:学生
9、本人姓名全拼;(2)Layout为系统默认。答:3. 根据下面Android 应用的配置清单文件内容回答以下问题。(1)该应用的包名是什么?(2)该应用能运行的Android SDK 最低版本号是多少?(3)该应用中Actitity 主类名称是什么?答:(1)包名:cn.edu.jssvc.ced(2)10(3)main4. 请参考3.4节中程序3-3说明Android 应用开发中回调方法有何特点? 答:回调方法有以下特点:(1)接受Androi操作系统发出的事件消息,由事件消息触发而被调用;(2)开发者可以根据应用需要在自定义的类中重载并实现回调方法。5. Android回调方法与Activ
10、ity生命周期有何关系?答:1)Android 为Activity生命周期设计了若干个阶段,每个阶段Android操作系统都会向Activity发出相应的事件消息,触发Activity中对应的回调方法;2)Activity回调方法的名称是系统事先规定的,否则Android系统无法知道回调方法名称,也就无法发其发送事件消息,更不能触发回调方法被调用;3)尽管系统会按事先设计的生命周期中每个阶段向Activity发送事件消息,但开发者可以根据实际需要选择实现哪些回调方法,并不要求开发者实现所有回调方法。6. 参考3.4节中程序3-3说明 Activity生命周期中onCreate()回调方法有什么
11、特点?答:(1)onCreate()回调方法是Activity实例被启动时调用的第一个方法,通常作为应用程序的入口点;(2)Activity实例创建后只要仍然在内存的Activity管理栈没有被销毁,即使暂停运行后再再次启动,onCreate()方法也不会被再次回调,此时会回调Activty生命周期中的onStart()方法,只有当Activity再次实例化时onCreate()才会被回调。7. 参照3.4节中程序3-3,掌握Activity生命周期中下列回调方法的调用时刻:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy
12、()提示:通过观察LogCat窗口中Log.i()方法输出信息出现的先后顺序来掌握对应方法的回调时序,要求提供对LogCat窗口截图。答:略8. Android如何管理Activity?答:(1)Android通过栈的方式管理Activity;(2)Activity的实例的状态决定它在栈中的位置,处于前台的Activity总是在栈的顶层,当前台的Activity因为异常或其他原因被销毁时,处于栈下一层的Activity的Activity将上升到顶层并被激活。当新的Activity被启动后将进入栈的顶层,而原来在顶层的Activity则被压到下一层。栈顶层的Activity处于活动状态,其他的A
13、ctivity都有可能在系统内存不足时被回收(即被销毁),以便释放系统内存。(3)Android提供的标准返回按钮操作时会把栈顶层的Activity销毁,让位于下一层处于暂停或停止状态的Activity上升到栈顶,从而回到活动状态,成为当前正在运行的应用。9. 请逐行注释下面程序片断,并说明其功能。static final String Activity_ID = First;Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.l
14、ayout.main); Log.i(Activity_ID, onCreate has been called); Button finish = (Button)findViewById(R.id.testfinish); finish.setOnClickListener(new OnClickListener() public void onClick(View v) finish();/退出activity );答:(1)注释/ 定义字符串常量值static final String Activity_ID = First;/ 表示覆写父类方法的宏Overridepublic voi
15、d onCreate(Bundle savedInstanceState) / 类对象创建时回调方法/调用超类同名方法,完成由超类预先定义的功能 super.onCreate(savedInstanceState); /加载界面布局文件main.xml setContentView(R.layout.main);/调用Log类的i方法输出调试信息 Log.i(Activity_ID, onCreate has been called);/从布局资源中获得id为testfinish按钮组件的引用并保存到finish对象中 Button finish = (Button)findViewById(
16、R.id.testfinish);/为按钮设置点击事件监听器 finish.setOnClickListener(new OnClickListener()/创建匿名点击事件对象 /实现点击事件处理方法 public void onClick(View v) finish(); /退出activity );(2)功能:Activity的加载回调方法onCreate(),加载界面布局文件,从界面中获取按钮视图对象,并为按钮设置点击监听方法,点击后退出运行。第4章 界面布局1. Android应用界面中UI(User Interface)组件间有严格的层次关系,有哪两种类型的视图组件?答:有两种类
17、型的组件:ViewGroup :相当于容器可以包含其他UI组件,如各种Layou组件。View:不能包含其他组件,代表具体控件,如文本输入框、按钮等。2. Android定义用户界面有哪两种方式?答:用代码动态创建,通过调用方法定义组件属性和布局参数。通过XML文件声明界面布局。3. Android 程序设计中用XML文档定义布局有何优点?答:实现应用的表现层与逻辑层分离,即描述界面的表现层与描述程序运行的逻辑层分别由XML文件和程序代码文件定义,使得代码简洁且易于维护。方便了用户界面适应不同的硬件环境,将不同运行环境中对应的布局信息定义在不同的XML文件中,让Android根据运行环境灵活切
18、换到合适的用户界面布局信息。4. 什么是布局属性?答:Android界面布局文件中,对于布局节点(即能嵌套其他子节点的节点)有一类常用属性,统一以“layout_”开头,称为布局属性,这些属性决定于View或ViewGroup组件在界面中的位置、方向和大小等属性。5. LayoutParams类有什么功能?答:Android应用在开发时可以通过XML文档描述界面布局,也可以直接通过Java代码设计界面布局,LayoutParams是ViewGroup组件的内置类,提供通过编程方式访问与布局相关的属性。6. 什么是LinearLayout?答:LinearLayout是一种应用界面视图组件布局方
19、式,它的orientation属性可以选择水平或垂直方向,根据这个排列方向属性,将所有视图组件在水平或垂直方向排列成一行或一列。7. 什么是TableLayout?答:TableLayout是一种应用界面视图组件布局方式,以类似于表格的行列形式排列视图组件,每行为一个TableRow对象。8. 什么是RelativeLayout?答:RelativeLayout是一种应用界面视图组件布局方式,根据视图组件之间相对位置关系作为布局参照进行布局。9. 什么是FrameLayout?答:FrameLayoutRelativeLayout是一种应用界面视图组件布局方式,它将布局中的视图组件以层叠方式显
20、示,即第一个添加到布局中的组件在最底层,最后一个添加到最上层,上层的组件会覆盖下层的组件,这种布局方式类似于堆栈。10. 请根据下面Layout的XML文档内容回答以下问题: (1)布局类型是什么?(2)界面中有哪几种组件?对应的id 是什么?(3)分别说出TextView元素中以下属性含义是什么:android:id=+id/textView1 android:layout_width=match_parentandroid:layout_height=wrap_contentandroid:text=string/hello_world(4)分别说出Button元素中以下属性含义是什么:a
21、ndroid:layout_below=+id/textView1android:layout_centerHorizontal=trueandroid:layout_marginTop=36dpandroid:text=确定答:(1)RelativeLayout,即相对界面布局(2)布局中有几个View组件?请说出各个组件的名称、id?2个View组件。组件名称idTextViewtextView1Buttonbutton1(3)Android系统定义的TextView的 id 属性:它的属性值是“+id/textView1”,其中 表示资源引用,“+”表示通知 Android 系统新建此资
22、源,id为textView1;Android系统定义的TextView的宽度属性:View 组件填充匹配父节点组件宽度;Android系统定义的TextView的高度属性:View 组件填充匹配父节点组件高度;Android系统定义的TextView的文本内容:引用String资源中名字为hello_world的内容。(4)分别说出Button元素中以下属性含义是什么:android:layout_below=+id/textView1:按钮组件在id为textView1组件下方android:layout_centerHorizontal=true:按钮在Layout中水平居中android
23、:layout_marginTop=36dp:与上方组件边距值为36dp;android:text=确定:Button所显示的文本为“确定”11. 现有名为 relative.xml 的布局文档,请根据下面Activity 的onCreate()方法中注释提示,在空白划线上填写相应代码补充完整程序。public class Chapter4_RelativeLayoutActivity extends Activity Override public void onCreate(Bundle savedInstanceState) /调用父类中onCreate()方法 (1)_ /加载布局文档
24、 (2)_ 答:(1)super.onCreate(savedInstanceState);(2)setContentView(R.layout.relative)12. 请说明以下组件布局尺寸的度量单位含义:(1)px:(2)in(3)mm(4)pt:(5)dp 或 dip:(6)sp:(7)dpi:答:刻度是组件布局尺寸的度量单位,有以下几种:px (Pixels,像素):对应屏幕实际像素点in (Inches,英寸):屏幕物理长度单位mm (Millimeters,毫米):屏幕物理长度单位pt(Points):物理长度单位,1/72 英寸dp 或 dip:逻辑像素长度单位,在160dpi
25、屏幕上,1dp = 1px = 1/160 英寸sp:可以根据用户字体大小首选项缩放的逻辑像素单位dpi:(dot per inch):英寸像素值,通常比较屏幕分辨率13. 请根据以下布局文档实现界面,并提供你运行后的界面截图,注意需在界面中输入你的姓名。 答:略第5章 资源管理1. 在Android应用中提供程序使用的字符串、菜单、图像、声音、视频等信息内容称为什么?答:Resource(资源)2. Eclipsek中开发Android应用时,工程中下列资源分别存放在什么文件夹中?(1) String(2) Color(3) Drawable(4) Layout(5) Menu(6) Raw
26、(7) XML(8) Dimension:(9) Style:答:(1) String:res/values(2) Color:res/values(3) Drawable:res/drawable(4) Layout:res/layout(5) Menu:res/menu(6) Raw:res/raw(7) XML:res(8) Dimension:res/values(9) Style:res/values3. Android 应用中的所有资源都将被编译成什么形式存放在Andoid 应用中?答:Android 应用中的所有资源都将被编译成二进制形式存放在 Andoid 应用中,资源在程序中
27、引用时实际上就是通过这个独一无二的 int 型 ID 加载资源的。4. 为了在Java代码中引用资源对象,需要将资源编译后自动产生的 ID 保存在 gen 目录中什么文件中?(请说出完整的文件名。)在这个文件中通过什么语句实现资源名称与 ID 号的挂钩?答:这个将资源编译成 ID 的过程是由ADT自动在工程的 gen 目录中创建 R.java 类文件完成,这 R 类中主要就是通过赋值语句实现资源名称与 ID 号的挂钩。5. 下面是名为 strings.xml 的资源文件,请根据其内容说明: chapter5_8_Assets 苏州市职业大学 Settings MainActivity #ff0
28、000 36dp(1)该资源文件中定义了哪几种资源类型?(2)如何在XML文档中为TextView 组件元素的“android : text”属性中引用“苏州市职业大学”这个字符串?写出引用代码。答:定义了String,Color,Dimension等3种资源类型。Android:text=string/hello_world6. 现有名为 deimension.xml 的资源文件及相应的 Java 代码片断,说明资源类型及Java 代码功能。 1px 5dp 100spfloat dimen =getResources().getDimension(R.dimension.mtsize_in
29、_pixels);答:(1)1px5dp100sp(2)调用getResource方法取得资源对象,再调用资源对象的getDimension方法去取得尺寸资源R.dimension.mysize_in_pixels,结果保存在float型的名为dimen的对象中。7. 根据下面资源文件及相应的 Java 代码片断,回答以下问题:Resource res = getResources();Drawable drawable = res.getDrawable(R.drawble.myimage);(1)说明ImageView元素中属性 android : src = drawable/myima
30、ge 的含义。(2)逐行注释说明下面Java代码功能。Resource res = getResources();Drawable drawable = res.getDrawable(R.drawble.myimage);答:(1)为ImageView组件引用名为myimage 的drawable资源。(2)/获取资源对象并保存在res中Resource res = getResources();/从资源对象中获取名为myimage的drawable资源Drawable drawable = res.getDrawable(R.drawble.myimage);8. Android 资源中颜
31、色值以 # 开始,跟4组数字指定具体颜色,形如:#RGB, #ARGB, #RRGGBB, #AARRGGBB,每组数字取值范围是0255,其中:(1)A表示:(2)R表示:(3)G表示:(4)B表示:(5)取值范围中0表示:(6)取值围中255表示:答:(1)A表示:透明度alpha (2)R表示:红色 red(3)G表示: 绿色green(4)B表示:蓝色blue(5)取值围中0表示:alpha :0表示完全透明;颜色:表示最浅(6)取值围中255表示:alpha :255表示完全不透明; 颜色:表示最深9. 现有颜色资源文件: #f00 #80ff0000 欲在下面布局文件中为TextV
32、iew文本设置成 #80ff0000 颜色,请在空白下划线处补充完成代码:答:android:textColor= “color/ translucent_red”10. 请根据下面资源文件回答: (1)说明源类型名称。(2)说明该资源文件在运行中的功能。答: ColorStateList资源 每个状态提供不同的背景颜色,按下状态时颜色为#ff0000,正常状态为#00ff00,让以此ColorStateList 资源绑定的组件更加直观醒目。11. 请根据资源文件回答问题: 20sp #008 (1)资源类型是什么?(2)要布局文件中为 TextView 引用该资源,请在下面空白划线处补充完成
33、代码:答: Style资源类型android:style=“style/CustomText”12. 现有如下运行后显示的中、英文界面及工程资源文件夹截图,请据此说明:(1)中文界面引用的是哪个文件夹中资源?英文界面是引用哪个文件夹中资源?(2)是否需要专门实现加载中、英界面的 Java 代码? 答:中文引用在文件Vaules-zh-rCn中的资源;英文引用在默认的values文件中的资源。不需要第6章 Intent组件1. 什么是Android的意图?其对应的类名是什么?答:(1)在Android中意图表示一个应用组件通知另一个组件去做什么事的意图。本质上来说,意图是Android中的一种事件处理机制。在Android中, Intent是用于同一应用或不同应用的组件之间通信的消息对象,可以认为它是一种数据结构,包含对要执行的动作及相关数据的描述,一个组件发出意图(Intent),Android根据意图(Intent)描述,找到能完成意图动作的组件,同时将意图中携带的数据交给能完成意图对象。(2)Android中意图对应的类名是Intent。(注意: