Android - 测试(粒度/程度/),JunitTest,logcat,SharedPreferences,上下文,文件权限,生成xml文件,xml的解析

时间:2022-01-14 09:58:36

1.测试

  • 黑盒测试

    不知道软件的源代码.

  • 白盒测试

    知道应用程序的源代码

2.测试的粒度

  • 单元测试 junit test
  • 集成测试 intergration test
  • 系统测试 system test

3.测试的程度

  • 压力测试 (pressure test)
  • 冒烟测试 (smoke test)

        >monkey 猴子
    打开cmd,输入adb shell 换行后输入# monkey 之后输入 #monkey 要测试的次数

4.Android下的junittest

需要把应用程序部署到真实的手机或者模拟器,在dalvik虚拟机里面运行.

步骤:

  1. 编写一个业务方法
  2. 编程测试类 extends AndroidTestCase
  3. 在清单文件中配置参数

    <!-- 测试的指令集 -->
    <instrumentation android:name="android.test.InstrumentationTestRunner
    android:targetPackage="com.mythmayor.junit"></instrumentation>
    <!-- 测试需要的jar包 -->
    <uses-library android:name="android.test.runner"/>

5.logcat

把应用程序的执行的log打印输出.

System.out.println();
Log.i();

Log.v(tag, msg);//verbose 提醒
Log.d(tag, msg);//debug 调试
Log.i(tag, msg);//info 信息
Log.w(tag, msg);//warn 警告
Log.e(tag, msg);//error 错误
Log.wtf(tag, msg);//what the fuck.

6.数据存储

  • 文件存储

1. 应用程序可以把数据存储在自己私有的文件夹里面.只能存储在自己的文件夹.

/data/data/<包名>/…

2. 应用程序可以把数据存储在外存储卡,sd卡(声明权限)

Environment.getExternalStorageDirectory()//获取外部存储卡的目录
检查sd卡是否可用,检查sd卡的剩余空间.

3. 参数 SharedPreferences

    使用步骤:
1. 获取到 sp = this.getSharedPreferences("config", 0);
2. 获取编辑器 Editor editor = sp.edit();
3. editor.putString(key,value) putInt() putDouble()
4. editor.commit();
5. 获取数据 sp.getString(key,dafvalue); sp.getInt()...

4.获取资产目录(assets)下的资源文件

context.getAssets().open(文件名);

7.上下文

应用程序运行的环境.

  • this.getFilesDir() —>data/data/包名/files 保存重要的配置信息
  • this.getCacheDir() —>data/data/包名/cache 缓存目录

8.文件权限

  • 应用程序在data/data/自己包名/目录下创建的文件默认都是私有的, 别的应用程序是不可以访问的

9.生成xml文件

  • StringBuilder
  • Xml序列化器

        // 1.得到xml文件的序列化器
    XmlSerializer serializer = Xml.newSerializer();
    // 2.指定序列化器的一些初始参数
    File file = new File(getFilesDir(), name + ".xml");
    FileOutputStream os = new FileOutputStream(file);
    serializer.setOutput(os, "utf-8");
    // 3.写xml文件.
    serializer.startDocument("utf-8", true); 写开头
    serializer.startTag(null, "number"); 开始标签
    serializer.text() 写文本标签
    serializer.endTag(null, "number"); 结束标签
    serializer.endDocument(); 写结尾
    serializer.attribute(null, name, value) 写属性

10.xml的解析

  • SAX
  • DOM & DOM4j
  • PULL解析

        //1.获取到一个xml解析器
    XmlPullParser parser = Xml.newPullParser();
    //2.设置解析器的初始化参数
    FileInputStream inputStream = new FileInputStream(file);
    parser.setInput(inputStream, "utf-8");
    //3.解析xml文件
    XmlPullParser.START_TAG 开始节点
    XmlPullParser.END_TAG 结束节点
    parser.nextText(); <tag>foo</tag> 取两个节点中的foo文本
    parser.getName(); 获取当前节点的名称
    parser.next(); 让解析器解析下一个节点.