您的位置:首页 > 其它

传智播客--3G开发之单元测试,日志输出,文件数据存储,XML文件的解析

2010-02-28 20:39 465 查看
今天进入了Android学习的第二天.通过第一天的初步了解,对学习Android兴趣越来越浓了.也是因为有了前面JAVA
EE的基础,所以学习Android相对容易一些.并且,黎活明老师讲课果然明不虚传,思路相当清晰.

今天学习的是单元测试,日志还有通过文件进
行数据存储.这里的文件,主要是指对XML文件的解析.单元测试和日志技术在我们开发中是相当好的帮手,在开始学习好这两个技术对以后开发复杂程序很有帮
助.

1.单元测试

1)
首先在AndroidManifest.xml中加入下面代码:

<uses-library
android:name="android.test.runner" />

<instrumentation
android:name="android.test.InstrumentationTestRunner"

android:targetPackage="cn.itcast.action" android:label="Tests for
My App" />

2)编写单元测试代码(选择要测试的方法,右键点击“Run As”--“Android Junit Test”
):

import android.test.AndroidTestCase;

import
android.util.Log;

public class XMLTest extends AndroidTestCase {

public void testSomething() throws Throwable {

Assert.assertTrue(1 + 1 == 3);

}

}

总结:

--1)中上面targetPackage指定的包要和应用的package相同。

--
运行测试方法和我们在JAVA EE里是一样的.

--这里的测试用的是JUnit3.X的习惯,所以要继承AndroidTestCase类和方
法要test开头.

--throws Throwable 抛出例外给单元测试框架,这样就会打出相关错误信息,强烈推荐这样处理.

2.日志输出

1)private
static final String TAG = "PersonTest";

在类中多次使用,最好定义成静态.

Log.i(tag,msg);

tag:
输出日志的标志,常用类名.

msg:具体信息,输出中文会有乱码.

2)打开LogCat视图查看日志信息,可以加个filter方便查
看.

3.使用文件进行数据存储


入文件:

FileOutputStream outStream =
this.openFileOutput("itcast.txt", Context.MODE_PRIVATE);

outStream.write("传智播客".getBytes());

outStream.close();

读取文件:

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len = -1;

while( (len =
inSream.read(buffer)) != -1 ){

outStream.write(buffer, 0,
len);

}

byte[] data = outStream.toByteArray();

outStream.close();

inSream.close();

总结:

--使用完输入/输出流的时候不要忘记关闭.

--这里用到了Activity提
供的openFileOutput()方法.

--创建的文件保存在 /data/data/<package
name>/files 目录下

四种操作文件模式:

--Context.MODE_PRIVATE = 0
:只有自己能访问,每次写入都会覆盖原来的内容

--Context.MODE_APPEND =
32768:只有自己能访问,可以追加到原来的内容

--Context.MODE_WORLD_READABLE = 1:其他应用程序可读

--Context.MODE_WORLD_WRITEABLE
= 2:其他应用程序可写

提示信息的显示:

Toast.makeText(DataActivity.this, resId,
Toast.LENGTH_LONG).show();

DataActivity.this: 传入Context

resId:显示信息

Toast.LENGTH_LONG:显示时间

4.把文件存放在 SDCard

1)
在 AndroidManifest.xml 中加入访问 SDCard 的权限

<!-- 在 SDCard 中创建与删除文件权限
-->

<uses-permission
android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!--
往 SDCard 写入数据权限 -->

<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2)

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){

File sdCardDir = Environment.getExternalStorageDirectory();// 获取 SDCard
目录

File saveFile = new File(sdCardDir, “itcast.txt”);

FileOutputStream outStream = new FileOutputStream(saveFile);

outStream.write(" 传智播客 ".getBytes());

outStream.close();

}

总结:

--使用SDCard前要先判断是否存在和是否可写.

--
通过Environment.getExternalStorageDirectory()获得目录,也可以手动输入.

5.使用SAX解析XML文件:


工作中最常用到的方法,无需添加任何的jar文件。占用内存小.

1)在解析中用到的5个事件:

startDocument()文档开始.

endDocument()
文档结束.

startElement(String namespaceURI, String localName, String
qName, Attributes atts) 标签开始

endElement(String uri, String
localName, String name)标签结束

characters(char[] ch, int start, int
length) 读取XML文件中的内容.

2)实现 ContentHandler 接口

6.使用DOM解析XML文件:


推荐使用,相对好理解,但效率比SAX和Pull要低.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐