Skip to content

Latest commit

 

History

History
158 lines (104 loc) · 4.1 KB

第二天_数据存储和读取.md

File metadata and controls

158 lines (104 loc) · 4.1 KB

##Android中的数据存储和读取 存储数据到文件中、从文件中读取数据显示在界面上

#测试

###1 软件测试的概念

  1. 按照是否知道源代码

    • 白盒测试:知道源代码,写代码去测试逻辑
    • 黑盒测试:不知源代码,根据需求测试软件的功能
  2. 按照测试的粒度

    • 方法测试:测试某个方法
    • 单元测试:测试一个代码块
    • 功能测试:根据需求测试软件的某个功能
  3. 按照测试的暴力程度

    • 压力测试
    • 冒烟测试:monkey

###2 Android下编写单元测试代码的步骤

  1. 测试类 extends AndroidTestCase

  2. 测试方法

    • 必须是public
    • 给android测试框架抛出异常
  3. 要对测试方法断言

  4. 在manifest节点写:

     <instrumentation android:name="android.test.InstrumentationTestRunner"
     android:targetPackage="cn.itcast.junit"
     ></instrumentation>
    

    在application节点写:

     <uses-library android:name="android.test.runner"/>
    
  5. 右键部署程序运行单元测试

    • 绿条代表通过
    • 红条代表失败,方法有问题

Android中查看日志

###3 日志等级的划分 分为5个等级:

V: verbose 提醒  黑色   Log.v();
D: debug   调试  蓝色   Log.d();
I: info    信息  绿色   Log.i();
W: warn    警告  橘黄   Log.w();
E: error   错误  红色   Log.e();

###4 什么是上下文 Context 全局的环境对象,方便的api,可以去获取整个应用程序的数据

#Android中文件存储数据

RAM:运行内存,相当于电脑的内存

ROM:内部存储,相当于电脑的硬盘,可以持久化存储数据

SD卡:外部存储

##5 内部存储(重要) 文件存储路径: /data/data/包名

文件只能存储在自己应用程序私有的文件夹下,别的应用程序无法访问

  1. this.getFilesDir() == /data/data/包名/files/

    清除数据,弹出对话框提示,会清除所有的数据

  2. this.getCacheDir() == /data/data/包名/cache/

    清除缓存,没有对话框提示,只清除cache目录里面的数据,当系统内存严重不足时,系统会自动清除cache目录里面的文件 应用场景:存储临时的文件

  3. 输入流 this.openFileInput("config.txt");

  4. 输出流 this.openFileOutput("config.txt", 0);

##6 外部存储SD卡(重要) 记得添加权限,检查外部存储设备的状态和可用空间

###7 SD卡的路径、状态、可用空间大小

  • SD卡的路径: Environment.getExternalStorageDirectory()

  • SD卡的状态: Environment.getExternalStorageState()

  • SD卡的可用空间

      File file =  Environment.getExternalStorageDirectory();
      long size = file.getFreeSpace();//byte  
      String num = Formatter.formatFileSize(this, size);
    

##8 SharedPreference存储数据(重要) 文件存储路径: /data/data/包名/shared_prefs/

  1. 初始化 SharedPreferences mPreferences = this.getSharedPreferences("info", 0);

  2. 拿到 Editor编辑器 Editor editor = mPreferences.edit();

  3. 存储数据 editor.putString("qq", qq);

  4. 提交,重要 editor.commit();

    应用场景:存储配置信息,账号密码

##9 Android下文件访问的权限 原理:底层是通过Linux操作系统的文件模式来实现的。

默认情况下,所有的文件创建出来都是私有的。只有自己的应用程序可以访问里面的数据,别的应用程序是不可以访问数据的。

#Xml文件生成和解析

###10 为什么要用xml文件

  • 用元素描述数据
  • 跨平台

###11 生成xml文件的步骤(重要)

  1. 初始化xml序列器

     XmlSerializer serializer = Xml.newSerializer();
    
  2. 设置参数

     FileOutputStream os = this.openFileOutput("student.xml", 0)
     serializer.setOutput(os, "utf-8");
    
  3. 往xml文件里面写数据

     serializer.startDocument("utf-8", true);
    

###12 解析xml文件的方式

  1. sax 基于事件
  2. dom&dom4j 把xml加载到内存
  3. pull解析(类似于sax但是效率更高,内存开销更小)

###13 解析xml文件(重要)

  1. 初始化xml解析器 XmlPullParser parser = Xml.newPullParser();
  2. 设置解析器的参数 输入流 parser.setInput(is, "utf-8");
  3. 解析数据