《Android移动开发案例教程》_课后习题.docx

上传人:b****1 文档编号:244387 上传时间:2022-10-07 格式:DOCX 页数:12 大小:238.27KB
下载 相关 举报
《Android移动开发案例教程》_课后习题.docx_第1页
第1页 / 共12页
《Android移动开发案例教程》_课后习题.docx_第2页
第2页 / 共12页
《Android移动开发案例教程》_课后习题.docx_第3页
第3页 / 共12页
《Android移动开发案例教程》_课后习题.docx_第4页
第4页 / 共12页
《Android移动开发案例教程》_课后习题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

《Android移动开发案例教程》_课后习题.docx

《《Android移动开发案例教程》_课后习题.docx》由会员分享,可在线阅读,更多相关《《Android移动开发案例教程》_课后习题.docx(12页珍藏版)》请在冰豆网上搜索。

《Android移动开发案例教程》_课后习题.docx

第1章Android基础入门

【思考题】

1、请思考Java虚拟机和Dalvik虚拟机的区别。

2、请思考如何使用DDMS工具打开SD卡目录。

【答案】

1、Java虚拟机和Dalvik虚拟机主要有两大区别,一是他们编译后的文件不同,二是它们基于的架构不同,具体如下:

1)编译后的文件不同

Java虚拟机运行的是.class字节码文件,而Dalvik虚拟机运行的则是其专有的.dex文件,在Java程序中Java类会被翻译成一个或者多个字节码文件(.class)然后打包到JAR文件,之后Java虚拟机会从相应的class文件和JAR文件中获取相应的字节码。

Android程序虽然也是使用Java语言进行编程,但是在翻译成.class文件后,还会通过工具将所有的.class文件转换成一个.dex文件,然后Dalvik虚拟机从其中读取指令和数据,最后的.odex是为了在运行过程中进一步提高性能,对.dex文件的进一步优化,能加快软件的加载速度和开启速度。

2)基于的架构不同

Java虚拟机是基于栈的架构,大家知道,栈是一个连续的内存空间,取出和存入的速度比较慢,而

Dalvik是基于寄存器的架构,寄存器是CPU上的一块缓存,寄存器的存取速度要比从内存中存取的速度快很多,这样就可以根据硬件来最大的优化设备,更适合移动设备的使用。

2、DDMS视图的右侧窗口中,可以看到Threads、Allocation Tracker、Network Statistics、File

Explorer、EmulatorControl、SystemInformation选项卡,这些选项卡分别显示线程统计信息、内存分配跟踪器(每个程序占用的内存)、网络统计信息、文件资源管理器、Android系统信息。

选中FileExplorer选项卡,展开mnt目录该目录中的sdcard目录就是SD卡的目录。

第2章AndroidUI开发

【思考题】

1、请思考Android中有几种布局,并说明每种布局的特点。

2、请思考在使用单元测试时的步骤。

【答案】

1、Android中的布局分为五种,分别是相对布局、线性布局、表格布局、帧布局、绝对布局。

1)相对布局

在Eclipse中开发Android程序时,默认采用的就是相对布局。

相对布局通常有两种形式,一种是相对于容器而言的,一种是相对于控件而言的,为了能准确定位布局中的控件。

2)线性布局

线性布局是Android中较为常用的布局方式,它使用标签表示。

线性布局主要有两种形式,一种是水平线性布局,一种是垂直线性布局。

3)表格布局

表格布局就是让控件以表格的形式来排列控件的,只要将控件或信息放在单元格中,控件就可以整齐的排列。

4)帧布局

帧布局是Android布局中最简单的一种,帧布局为每个加入其中的控件创建一个空白区域(称为一帧,每个控件占据一帧)。

采用帧布局方式设计界面时,只能在屏幕左上角显示一个控件,如果添加多个控

件,这些控件会按照顺序在屏幕的左上角重叠显示,且会透明显示之前控件的文本。

5)绝对布局

绝对布局需要通过指定x、y坐标来控制每一个控件的位置,放入该布局的控件需要通过

android:

layout_x和android:

layout_y两个属性指定其准确的坐标值,并显示在屏幕上。

2、步骤如下:

1)添加test()测试方法

项目创建时AndroidStudio就已经默认创建了一个androidTest包和ApplicationTest类,双击打开

1packagecn.itcast.androidui;

2importandroid.app.Application;

3importandroid.test.ApplicationTestCase;4 /**

5*

6*testing_android.html">TestingFundamentals7 */

8publicclassApplicationTestextendsApplicationTestCase{

9publicApplicationTest(){

10super(Application.class);11 }

12publicvoidtest()throwsException{

13finalintexpected=1;

14finalintreality=1;

15//断言,expected期望的参数值与reality相同

16assertEquals(expected,reality);17 }

18}

ApplicationTest类,在该类中添加一个test()测试方法,对比两个参数值,具体代码如下:

2)设置测试选项

编写好代码之后,在类classApplicationTest…处点击右键,选择【Create'ApplicationTest'…】选项,此时会弹出一个设置对话框,如下图1所示。

图1 设置对话框

在此窗口中,需要将测试类型修改为Method,此时会出现一栏输入框,填写ApplicationTest类中需要测试的方法名test。

也可点击输入框右侧图标选择需要测试的方法。

然后点击“OK”后就可以运行程序了。

3)运行测试

启动程序后,在下方点击图标查看结果,运行结果如图2所示。

图2 测试结果

从图2可以看出,测试窗口中出现一个绿条,说明方法中两个参数相同,测试结果正常。

接下来修改上述程序代码,让其显示错误信息,修改如下:

finalintreality=2;

运行程序,此时会发现测试窗口显示红条,测试未通过,说明方法中两个参数不同,测试结果错误,如图3所示。

图3 测试结果

第3章Activity

【思考题】

1、请思考什么是Activity,以及Activity的作用。

2、请思考Activity生命周期中包含有哪几种状态。

【答案】

1、Activity是Android应用程序的四大组件之一,它负责管理Android应用程序的用户界面,为用户提供可视化界面及操作。

一个应用程序通常包含多个Activity,每个Activity负责管理一个用户界面。

这些界面可以添加多个控件,每个控件负责实现不同功能。

在应用程序中,Activity就像一个界面管理员,用户在界面上的操作是通过Activity来管理的。

2、生命周期就是一个对象从创建到销毁的过程,每一个对象都有自己的生命周期。

同样,Activity也具有相应的生命周期,Activity的生命周期分为五种状态,分别是启动状态、运行状态、暂停状态、停止状态和销毁状态,其中启动状态和销毁状态是过渡状态,Activity不会在这两个状态停留。

接下来将针对Activity生命周期的五种状态进行详细地讲解。

1)启动状态

Activity的启动状态很短暂,一般情况下,当Activity启动之后便会进入运行状态。

2)运行状态

Activity在此状态时处于屏幕最前端,它是可见、有焦点的,可以与用户进行交互,如点击、双击、长按事件等。

值得一提的是,当Activity处于运行状态时,Android会尽可能地保持它的运行,即使出现内存不足的情况,Android也会先销毁栈底的Activity,来确保当前Activity正常运行。

3)暂停状态

在某些情况下,Activity对用户来说仍然可见,但它无法获取焦点,用户对它操作没有响应,此时它就处于暂停状态。

例如,当前Activity上覆盖了一个透明或者非全屏的Acitvity时,被覆盖的Activity就处于暂停状态。

4)停止状态

当Activity完全不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。

如果系统内存不足,那么这种状态下的Activity很容易被销毁。

5)销毁状态

当Activity处于销毁状态时,将被清理出内存。

第4章数据存储

【思考题】

1、请思考Android中有几种数据存储方式以及各自特点。

2、请思考在Android中如何使用SharedPreferences类。

【答案】

1、Android系统中的五种数据存储方式,每种方式都有其不同的特点,下面将针对这五种方式进行简单介绍。

l文件存储:

以IO流形式把数据存入手机内存或者SD卡,可以存储大数据,如音乐、图片或者视频等。

lSharedPreferences:

它本质上是一个XML文件,以Map形式存入手机内存中。

常用于存储较简单的参数设置,如QQ登陆账号密码的存储,窗口功能状态的存储等,使用起来简单、方便。

lSQLite数据库:

SQLite是一个轻量级、跨平台的数据库。

数据库中所有信息都存在单一文件内,占用内存小,并且支持基本SQL语法,是项目中经常被采用的一种数据存储方式,通常用于存储用户信息等。

lContentProvider:

又称为内容提供者,是Android四大组件之一,以数据库形式存入手机内存,可以共享自己的数据给其他应用使用,相对于其他对外共享数据的方式而言,ContentProvider统一了数据访问方式,使用起来更规范。

l网络存储:

把数据存储到服务器,不存在本地,使用的时候直接从网络获取,避免了手机端信息丢失以及其他的安全隐患。

需要注意的是,在Android中应用程序存储的数据都属于应用私有,如果要将程序中的私有数据分享给其他应用程序,可以使用文件存储、SharedPreferences以及ContentProvider,但是推荐使用

ContentProvider共享数据。

2、SharedPreferences是Android平台上一个轻量级的存储类,主要用于存储一些应用程序的配置参数,例如用户名、密码、自定义参数的设置等。

SharedPreferences中存储的数据是以key/value键值对的形式保存在XML文件中,该文件位于“data/data//shared_prefs”文件夹中。

需要注意的是,SharedPreferences中的value值只能是float、int、long、boolean、String、StringSet类型数据。

//获取sp对象,参数data表示文件名,MODE_PRIVATE表示文件操作模式SharedPreferencessp=getSharedPreferences("data",MODE_PRIVATE);SharedPreferences.Editoreditor=sp.edit(); //获取编辑器editor.putString("name","传智播客"); //存入String类型数据

editor.putInt("age",8); //存入int类型数据

mit(); //提交修改

使用SharedPreferences存储数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1