传智播客--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要低.
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要低.
相关文章推荐
- Android数据存储之DOM解析XML文件(输出部分)
- android开发 解析服务器端xml文件数据存储到android客户端SQLite数据库
- Android数据存储之XmlPull解析XML文件(输出部分)
- Android数据存储——2.文件存储_C_DOM解析XML文档
- Android数据存储之DOM解析XML文件(读取部分)
- Android数据存储——2.文件存储_F_解析JSON文档
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- iOS 开发 Pch 文件的正确使用1.存放一些全局的宏(整个项目中都用得上的宏) 2.用来包含一些全部的头文件(整个项目中都用得上的头文件) 3.能自动打开或者关闭日志输出功能
- 【Android】pull解析xml文件+将数据存储为xml格式,并保存在内存里
- logback日志输出不同级别到不同文件(开发实例配置)
- 详解Android开发数据持久化之文件存储(附源码)
- 一个项目搞定Android开发,SAX解析XML文件获取数据.
- ArcGIS Engine开发之旅07---文件地理数据库、个人地理数据库和 ArcSDE 地理数据库中的栅格存储加以比较 、打开栅格数据
- android应用开发之利用SAX、DOM和Pull实现对XML文件的解析并进行单元测试
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- ArcGIS Engine开发之旅07---文件地理数据库、个人地理数据库和 ArcSDE 地理数据库中的栅格存储加以比较 、打开栅格数据
- android程序开发之sharepreference的数据存储及xml文件的序列化
- 安卓开发从零开始第7篇——ADB的命令行使用——查看Android studio的Demo文件数据存储Sqlite
- stax和Do4j解析xml文件,并输出txt,zip,gz格式文件
- Android数据存储——2.文件存储_F_解析JSON文档