zoukankan      html  css  js  c++  java
  • 安卓Android基础—第二天

    1. 测试的相关概念
      1. 好的软件不是开发出来的,是不断测试出回来的
      2. 根据是否知道源代码
        1. 黑盒测试
        2. 白盒测试
      3. 根据测试的粒度
        1. 方法测试
        2. 单元测试
        3. 集成测试
        4. 系统测试
      4. 根据测试的暴力程度
        1. 压力测试(谷歌工程师提供了一个monkey+COUNT指令可以进行压力测试)
        2. 冒烟测试
    2. 单元测试
      1. 定义一个类,继承AndroidTestCase类(可能有变化)
      2. 在清单文件里配置uses-library和instrumentation
    3. 日志猫的使用

      调试使用

    4. Login登录案例

      用户名密码保存到内部存储器,记住后下次登陆显示

    5. 使用上下文获取常见目录

      String path = context.getFilesDir().getPath();

      File file = new File(path,"info.txt");

    6. 登陆数据存储到sd卡
      1. String sdpath = Environment.getExternalStorageDirectory().getPath();
      2. 需要添加权限

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    7. 获取sd卡可用空间
      1. String sdpath = Environment.getExternalStorageDirectory().getPath();
      2. long total = file.getTotalSpace();
      3. long usable = file.getUsableSpace();
      4. String a = android.text.format.Formatter.formatFileSize(context,total);
      5. String b = android.text.format.Formatter.formatFileSize(context,usable);
    8. 文件权限的介绍
    9. SharedPreferences介绍(*****)
      1. 创建对象,拿到sp实例

        SharedPreferences sp = get SharedPreferences("config",0);

      2. 获取sp的编辑器

        Editor edit = sp.edit();

      3. 添加数据

        edit.putString("name",name);

        edit.putString("pwd",pwd);

      4. 把编辑器提交

      Edit.commit();

      数据保存成功

      1. 读取数据:

        先初始化sp的实例

      2. sp.getString("name","")

        sp.getString("pwd","")

      3. 把name和pwd设置到相应的显示控件上
    10. xml的序列号(使用Xmlserlalizer序列化器生成xml的步骤
      1. 获取serlalizer实例
        XmlSerializer serializer = Xml.newSerializer();
      2. 设置serializer序列化参数
        File file = new File("/data/data/com.lgqchinese.xmlcreate/text.xml");
        FileOutputStream fos = new FileOutputStream(file);
        serializer.setOutput(fos,"utf-8");
      3. 开始写xml开头
        serializer.startDocument("utf-8",true);
      4. 写根节点
        serializer.startTag(null,"smss");
      5. 写其他节点
        serializer.startTag(null,"sms");
      6. 在sms标签中写其他节点内容
        serializer.text("sms内容");
      7. 依次写xml结束
        serializer.endTag(null,"sms");
        serializer.endTag(null,"smss");
        serializer.endDocument();
    11. xml的解析
      1. xml来源于服务器,
      2. android的开发人员只负责解析,读取
      3. 服务器是以流的形式把数据返回
      4. 解析步骤
        1. 获取XmlOullParser实例
          XmlPullParser pullParser = Xml.newPullParser();
        2. 设置XmlOullParser参数
          pullParser.setInput(inputStream, "utf-8");
        3. 获取解析温江的事件类型
          int type = pullParser.getEventType();
        4. 判断解析的是哪个标签
        5.  1 package com.lgqchinese.xmlread;
           2 <*这是解析方法,需要在卖弄函数中调用*>
           3 import android.util.Xml;
           4 
           5 import org.xmlpull.v1.XmlPullParser;
           6 import org.xmlpull.v1.XmlPullParserException;
           7 
           8 import java.io.IOException;
           9 import java.io.InputStream;
          10 import java.util.ArrayList;
          11 import java.util.List;
          12 
          13 public class XmlReadFunc {
          14     public static List<MyJavaBean> parserXML(InputStream inputStream) throws XmlPullParserException, IOException {
          15         List<MyJavaBean> weatherLists = null;
          16         MyJavaBean myJavaBean = null;
          17         //获取实例
          18         XmlPullParser pullParser = Xml.newPullParser();
          19         //设置XmlPullParser参数
          20         pullParser.setInput(inputStream, "utf-8");
          21         //获取文档的时间类型
          22         int type = pullParser.getEventType();
          23         while (type != XmlPullParser.END_DOCUMENT) {
          24             //判断解析到哪个节点
          25             switch (type) {
          26                 case XmlPullParser.START_TAG://解析开始标签
          27                     //判断具体开始标签
          28                     if ("weather".equals(pullParser.getName())) {
          29                         weatherLists = new ArrayList<MyJavaBean>();
          30                     } else if ("channel".equals(pullParser.getName())) {
          31                         //创建myJavaBean对象
          32                         myJavaBean = new MyJavaBean();
          33                         //获取id值
          34                         String id = pullParser.getAttributeValue(0);
          35                         myJavaBean.setId(id);
          36 
          37                     } else if ("city".equals(pullParser.getName())) {
          38                         //获取city内容
          39                         String city = pullParser.nextText();
          40                         myJavaBean.setCity(city);
          41 
          42                     } else if ("temp".equals(pullParser.getName())) {
          43                         //获取temp内容
          44                         String temp = pullParser.nextText();
          45                         myJavaBean.setTemp(temp);
          46 
          47                     } else if ("wind".equals(pullParser.getName())) {
          48                         //获取wind内容
          49                         String wind = pullParser.nextText();
          50                         myJavaBean.setWind(wind);
          51 
          52                     } else if ("pm250".equals(pullParser.getName())) {
          53                         //获取pm250内容
          54                         String pm250 = pullParser.nextText();
          55                         myJavaBean.setPm250(pm250);
          56 
          57                     }
          58                     break;
          59                 case XmlPullParser.END_TAG://解析结束标签
          60                     //判断具体的结束标签
          61                     if ("channel".equals(pullParser.getName())) {
          62                         //把javabean对象放入集合中
          63                         weatherLists.add(myJavaBean);
          64                     }
          65                     break;
          66             }
          67 
          68 
          69             //不停的向下解析
          70             type = pullParser.next();
          71         }
          72 
          73 
          74         return weatherLists;
          75     }
          76 }
    昔日我曾苍老,如今风华正茂(ง •̀_•́)ง
  • 相关阅读:
    BZOJ4383 : [POI2015]Pustynia
    BZOJ4382 : [POI2015]Podział naszyjnika
    BZOJ4381 : [POI2015]Odwiedziny
    BZOJ4380 : [POI2015]Myjnie
    BZOJ4378 : [POI2015]Logistyka
    BZOJ3424 : Poi2013 Multidrink
    BZOJ4367 : [IOI2014]holiday假期
    BZOJ4369 : [IOI2015]teams分组
    BZOJ4421 : [Cerc2015] Digit Division
    BZOJ1315 : Ural1557Network Attack
  • 原文地址:https://www.cnblogs.com/lgqrlchinese/p/9878618.html
Copyright © 2011-2022 走看看