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.  package com.lgqchinese.xmlread;
        <*这是解析方法,需要在卖弄函数中调用*>
        import android.util.Xml; import org.xmlpull.v1.XmlPullParser;
        import org.xmlpull.v1.XmlPullParserException; import java.io.IOException;
        import java.io.InputStream;
        import java.util.ArrayList;
        import java.util.List; public class XmlReadFunc {
        public static List<MyJavaBean> parserXML(InputStream inputStream) throws XmlPullParserException, IOException {
        List<MyJavaBean> weatherLists = null;
        MyJavaBean myJavaBean = null;
        //获取实例
        XmlPullParser pullParser = Xml.newPullParser();
        //设置XmlPullParser参数
        pullParser.setInput(inputStream, "utf-8");
        //获取文档的时间类型
        int type = pullParser.getEventType();
        while (type != XmlPullParser.END_DOCUMENT) {
        //判断解析到哪个节点
        switch (type) {
        case XmlPullParser.START_TAG://解析开始标签
        //判断具体开始标签
        if ("weather".equals(pullParser.getName())) {
        weatherLists = new ArrayList<MyJavaBean>();
        } else if ("channel".equals(pullParser.getName())) {
        //创建myJavaBean对象
        myJavaBean = new MyJavaBean();
        //获取id值
        String id = pullParser.getAttributeValue(0);
        myJavaBean.setId(id); } else if ("city".equals(pullParser.getName())) {
        //获取city内容
        String city = pullParser.nextText();
        myJavaBean.setCity(city); } else if ("temp".equals(pullParser.getName())) {
        //获取temp内容
        String temp = pullParser.nextText();
        myJavaBean.setTemp(temp); } else if ("wind".equals(pullParser.getName())) {
        //获取wind内容
        String wind = pullParser.nextText();
        myJavaBean.setWind(wind); } else if ("pm250".equals(pullParser.getName())) {
        //获取pm250内容
        String pm250 = pullParser.nextText();
        myJavaBean.setPm250(pm250); }
        break;
        case XmlPullParser.END_TAG://解析结束标签
        //判断具体的结束标签
        if ("channel".equals(pullParser.getName())) {
        //把javabean对象放入集合中
        weatherLists.add(myJavaBean);
        }
        break;
        } //不停的向下解析
        type = pullParser.next();
        } return weatherLists;
        }
        }

安卓Android基础—第二天的更多相关文章

  1. 安卓Android基础四天

    网页源码查看器 HttpURLConnection:用于发送和接受数据 ScrollView只能由一个孩子 消息机制的写法(***) anr Application not response 应用无响 ...

  2. 安卓Android基础—第一天

    1.1G-4G的介绍 1G 大哥大 2G 小灵通 采用gsm标准(美国军方标准民用化) 发短信 3G 沃 72M/s 4G lte 100M/s 5G 华为 10G/s 小公司卖茶品大公司卖版权(标准 ...

  3. 安卓Android基础第三天——数据库,ListView

    数据库介绍sqlite问:什么情况下使用数据库?答:有大量相似结构的数据需要存储的时候 数据库的创建定义一个类继承SqliteOpenHelpercontext:上下文name:数据库名字,如&quo ...

  4. 安卓Android基础第五天

    使用HttpUrlConnection方式提交到服务器2 Get方式:组拼url地址把数据组拼到url上,有大小限制1kb(浏览器)或4kb(http协议) Post方式:post方式提交安全,没有大 ...

  5. 二、Android学习第二天——初识Activity(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第二天——初识Activity 昨天程序搭建成功以 ...

  6. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

  7. Android基础——项目的文件结构(二)

    Android基础--项目的文件结构(二) AndroidManifest.xml文件分析 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目 ...

  8. 深入理解gradle编译-Android基础篇

    深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...

  9. Android基础总结(8)——服务

    服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务.服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了 ...

随机推荐

  1. gohost -- go 开发的命令行hosts配置管理工具

    前几天在微博上看到有人推荐了lazygit这个工具,让人眼前一亮,什么时候命令行也可以这么抢到了,

  2. 朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP

    阅读PDF版本 标题有点标题党了,这里说的容易犯错不是Spring AOP的错,是指使用的时候容易犯错.本文会以一些例子来展开讨论AOP的使用以及使用过程中容易出错的点. 几句话说清楚AOP 有关必要 ...

  3. 朱晔的互联网架构实践心得S1E10:数据的权衡和折腾【系列完】

    朱晔的互联网架构实践心得S1E10:数据的权衡和折腾[系列完] [下载本文PDF进行阅读] 本文站在数据的维度谈一下在架构设计中的一些方案对数据的权衡以及数据流转过程中的折腾这两个事情.最后进行系列文 ...

  4. (通用版)salesforce中soql及sosl的伪‘Like’模糊检索

    salesforce里有soql.sosl两种查询语法,soql针对模糊搜索也有‘like’关键字,然而只能针对其自带字段如:Name.Id:对于自定义添加的字段如:Message__c.Note__ ...

  5. Python全栈开发之路 【第十九篇】:Bootstrap

    一.下载和基本使用 官方地址:www.bootcss.com 二.响应式介绍 1.@meida 媒体查询 (1)响应式页面 为了页面能够适应不同工具的屏幕大小的限制,而开发的一种自适应页面,即 一次开 ...

  6. hdu5943素数间隙与二分匹配

    题意: 给出n和s,匹配(s+1,s+2,s+3......s+n)和(1,2,3,4,5........n)让(s+x)%x==0,判断是否有解 思路: 先用程序跑一边,发现1到1e9得素数间隙小于 ...

  7. Floyd最短路(带路径输出)

    摘要(以下内容来自百度) Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似. 该算法名称以创始人之一.1978年图灵奖获得者. ...

  8. Python2和Python3中urllib库中urlencode的使用注意事项

    前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包 ...

  9. Redis启动及密码修改

    .cmd启动Redis: redis-server.exe redis.windows.conf #注意指定配置文件来启动 .cmd登陆redis redis-cli.exe -h -a .修改密码 ...

  10. Docker防主机意外断电导致容器实例无法驱动解决方案:UPS || write barrier || 上btrfs定期snapshot

    Write barrier - Wikipediahttps://en.wikipedia.org/wiki/Write_barrier R大在在介绍CMS时提到了write barrier写屏蔽的概 ...