今天进入了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要低.
传智播客--3G开发之单元测试,日志输出,文件数据存储,XML文件的解析
最新推荐文章于 2025-12-05 14:36:24 发布
本文详细介绍了在Android开发中如何运用单元测试、日志技术和文件存储方法,特别关注了XML文件的解析过程。通过在AndroidManifest.xml中配置测试环境,并编写单元测试代码来验证方法的正确性;利用日志输出功能提高代码的可维护性和调试效率;同时,展示了如何使用文件进行数据存储,特别强调了对XML文件的解析。此外,还介绍了如何将文件存储在SDCard上,并使用SAX和DOM解析XML文件的方法。
548

被折叠的 条评论
为什么被折叠?



