Android学习笔记 day02 _ 测试 & 文件读写操作

这篇Android学习笔记详细介绍了测试的相关概念,包括单元测试的步骤和存储数据到文件的方法。文章还涉及到了文件权限、XML文件的序列化与解析,以及如何向SD卡写入数据。
摘要由CSDN通过智能技术生成

Android学习笔记 day02 _ 测试 & 文件读写操作

一、 测试的相关概念

  1. 根据是否知道源代码分类:

    黑盒测试: a - b - c  边值测试   
    白盒测试: 根据源代码写测试方法 或者 测试用例
    
  2. 根据测试的粒度分类:

    方法测试:写完一个方法后就测试
    单元测试:测试一个能够独立运行的业务逻辑单元;
    集成测试:整体测试项目 联调
    系统测试:对整个系统进行测试
    
  3. 根据测试的暴力程度:

    1、冒烟测试:高频次的点击软件
    2、压力测试:使用测试工具:LoadRunner、Jmeter
    

二、 单元测试

单元测试步骤

  1. 写一个业务类,写一个业务方法

  2. 写一个测试类,继承AndroidTestCase,写一个测试方法,用来测试业务方法

  3. 在manifest文件中添加测试需要的包

    <!-- 添加指令集,添加到manifest节点的里面,指令集会把应用程序部署到模拟器上运行 -->
    
     <instrumentation android:name="android.test.InstrumentationTestRunner" 
        android:targetPackage="com.itheima.junit"></instrumentation>
    
    <!-- 添加JUnit的测试包 ,添加到application节点的里面-->
    
    <uses-library android:name="android.test.runner"/>
    

三、 把数据存储到文件

Android应用程序存储数据的方式:

1. 保存到文件
2. SQLite数据库
3. 内容提供者
4. sharedproferrences
5. 网络

四、 写入文件数 & 读取文件数据

写入文件数据

1. 创建一个文件,指定文件路径
2. 创建一个文件输出流,把数据写到文件上
3. 关闭输出流。

读取文件数据

1. 指定读取的文件路径
2. 创建输入流,读取文件并封装到对象中
3. 关闭输入流

五、 往SD卡中写数据

1. 获取SD卡路径:Environment.getExternalStorageDirectory()
2. 在清单文件中添加访问SD卡的权限:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
3. 获取SD卡容量
    获取文件目录总容量:file.getTotalSpace();
    获取文件目录剩余容量:file.getUsableSpace();

六、 文件权限的概念

文件的4种操作模式:

1. Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,
    在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用
    Context.MODE_APPEND
2. Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
    Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
3. MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;
4. MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

七、 使用序列化器生成一个xml文件

1. 创建xml序列化对象
        XmlSerializer serializer = Xml.newSerializer();
        String path = Environment.getExternalStorageDirectory().getPath();
        System.out.println(path);
        File file = new File(path, "smsBackup2.xml");
        FileOutputStream fos = new FileOutputStream(file);

        serializer.setOutput(fos, "utf-8");

        // 写xml头文件 第二个参数代表是否是一个独立xml文件
        serializer.startDocument("utf-8", true);
        // 写xml根节点 第一个参数:命名空间 不需要
        serializer.startTag(null, "smss");
        // 写xml子节点
        for (Sms sms : smsList) {
            ...
            // 封装数据
            ...
        }
        serializer.endTag(null, "smss");
        // 生成xml文件
        serializer.endDocument();
        fos.close();

八、 使用pull解析xml格式的数据

    // 创建解析器
    XmlPullParser parser = Xml.newPullParser();
    try {
        // 设置解析器初始化参数
        parser.setInput(is, "utf-8");
        // 解析XML
        int type = parser.getEventType();
        while (type != XmlPullParser.END_DOCUMENT) {
            switch (type) {
            // 解析到开始节点
            case XmlPullParser.START_TAG:
            // 判断根节点
            if ("weather".equals(parser.getName())) {
                    weatherLists = new ArrayList<Weather>();
                    // 判断子节点
                } else if ("channel".equals(parser.getName())) {
                    weather = new Weather();
                    weather.setId(parser.getAttributeValue(0));
                }
                // 设置元素节点
                ...
                break;

            // 解析到结束节点
            case XmlPullParser.END_TAG:
                if("channel".equals(parser.getName())){
                    weatherLists.add(weather);
                }
                break;
            }
            type = parser.next();
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值