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存储数