《Android移动开发案例教程》_课后习题Word文档格式.docx
《《Android移动开发案例教程》_课后习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《《Android移动开发案例教程》_课后习题Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
选中FileExplorer选项卡,展开mnt目录该目录中的sdcard目录就是SD卡的目录。
第2章AndroidUI开发
1、请思考Android中有几种布局,并说明每种布局的特点。
2、请思考在使用单元测试时的步骤。
1、Android中的布局分为五种,分别是相对布局、线性布局、表格布局、帧布局、绝对布局。
1)相对布局
在Eclipse中开发Android程序时,默认采用的就是相对布局。
相对布局通常有两种形式,一种是相对于容器而言的,一种是相对于控件而言的,为了能准确定位布局中的控件。
2)线性布局
线性布局是Android中较为常用的布局方式,它使用<
LinearLayout>
标签表示。
线性布局主要有两种形式,一种是水平线性布局,一种是垂直线性布局。
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*<
ahref="
6*testing_android.html"
>
TestingFundamentals<
/a>
7 */
8publicclassApplicationTestextendsApplicationTestCase<
Application>
{
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<
Object,Object>
形式存入手机内存中。
常用于存储较简单的参数设置,如QQ登陆账号密码的存储,窗口功能状态的存储等,使用起来简单、方便。
lSQLite数据库:
SQLite是一个轻量级、跨平台的数据库。
数据库中所有信息都存在单一文件内,占用内存小,并且支持基本SQL语法,是项目中经常被采用的一种数据存储方式,通常用于存储用户信息等。
lContentProvider:
又称为内容提供者,是Android四大组件之一,以数据库形式存入手机内存,可以共享自己的数据给其他应用使用,相对于其他对外共享数据的方式而言,ContentProvider统一了数据访问方式,使用起来更规范。
l网络存储:
把数据存储到服务器,不存在本地,使用的时候直接从网络获取,避免了手机端信息丢失以及其他的安全隐患。
需要注意的是,在Android中应用程序存储的数据都属于应用私有,如果要将程序中的私有数据分享给其他应用程序,可以使用文件存储、SharedPreferences以及ContentProvider,但是推荐使用
ContentProvider共享数据。
2、SharedPreferences是Android平台上一个轻量级的存储类,主要用于存储一些应用程序的配置参数,例如用户名、密码、自定义参数的设置等。
SharedPreferences中存储的数据是以key/value键值对的形式保存在XML文件中,该文件位于“data/data/<
packagename>
/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存储数