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

本文详细介绍了在Android开发中如何运用单元测试、日志技术和文件存储方法,特别关注了XML文件的解析过程。通过在AndroidManifest.xml中配置测试环境,并编写单元测试代码来验证方法的正确性;利用日志输出功能提高代码的可维护性和调试效率;同时,展示了如何使用文件进行数据存储,特别强调了对XML文件的解析。此外,还介绍了如何将文件存储在SDCard上,并使用SAX和DOM解析XML文件的方法。

今天进入了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要低.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值