安卓Android基础—第二天
- 测试的相关概念
- 好的软件不是开发出来的,是不断测试出回来的
- 根据是否知道源代码
- 黑盒测试
- 白盒测试
- 根据测试的粒度
- 方法测试
- 单元测试
- 集成测试
- 系统测试
- 根据测试的暴力程度
- 压力测试(谷歌工程师提供了一个monkey+COUNT指令可以进行压力测试)
- 冒烟测试
- 单元测试
- 定义一个类,继承AndroidTestCase类(可能有变化)
- 在清单文件里配置uses-library和instrumentation
- 日志猫的使用
调试使用
- Login登录案例
用户名密码保存到内部存储器,记住后下次登陆显示
- 使用上下文获取常见目录
String path = context.getFilesDir().getPath();
File file = new File(path,"info.txt");
- 登陆数据存储到sd卡
- String sdpath = Environment.getExternalStorageDirectory().getPath();
- 需要添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- 获取sd卡可用空间
- String sdpath = Environment.getExternalStorageDirectory().getPath();
- long total = file.getTotalSpace();
- long usable = file.getUsableSpace();
- String a = android.text.format.Formatter.formatFileSize(context,total);
- String b = android.text.format.Formatter.formatFileSize(context,usable);
- 文件权限的介绍
- SharedPreferences介绍(*****)
- 创建对象,拿到sp实例
SharedPreferences sp = get SharedPreferences("config",0);
- 获取sp的编辑器
Editor edit = sp.edit();
- 添加数据
edit.putString("name",name);
edit.putString("pwd",pwd);
- 把编辑器提交
Edit.commit();
数据保存成功
- 读取数据:
先初始化sp的实例
- sp.getString("name","")
sp.getString("pwd","")
- 把name和pwd设置到相应的显示控件上
- xml的序列号(使用Xmlserlalizer序列化器生成xml的步骤
- 获取serlalizer实例
XmlSerializer serializer = Xml.newSerializer(); - 设置serializer序列化参数
File file = new File("/data/data/com.lgqchinese.xmlcreate/text.xml");
FileOutputStream fos = new FileOutputStream(file);
serializer.setOutput(fos,"utf-8"); - 开始写xml开头
serializer.startDocument("utf-8",true); - 写根节点
serializer.startTag(null,"smss"); - 写其他节点
serializer.startTag(null,"sms"); - 在sms标签中写其他节点内容
serializer.text("sms内容"); - 依次写xml结束
serializer.endTag(null,"sms");
serializer.endTag(null,"smss");
serializer.endDocument();
- 获取serlalizer实例
- xml的解析
- xml来源于服务器,
- android的开发人员只负责解析,读取
- 服务器是以流的形式把数据返回
- 解析步骤
- 获取XmlOullParser实例
XmlPullParser pullParser = Xml.newPullParser(); - 设置XmlOullParser参数
pullParser.setInput(inputStream, "utf-8"); - 获取解析温江的事件类型
int type = pullParser.getEventType(); - 判断解析的是哪个标签
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;
}
}
- 获取XmlOullParser实例
安卓Android基础—第二天的更多相关文章
- 安卓Android基础四天
网页源码查看器 HttpURLConnection:用于发送和接受数据 ScrollView只能由一个孩子 消息机制的写法(***) anr Application not response 应用无响 ...
- 安卓Android基础—第一天
1.1G-4G的介绍 1G 大哥大 2G 小灵通 采用gsm标准(美国军方标准民用化) 发短信 3G 沃 72M/s 4G lte 100M/s 5G 华为 10G/s 小公司卖茶品大公司卖版权(标准 ...
- 安卓Android基础第三天——数据库,ListView
数据库介绍sqlite问:什么情况下使用数据库?答:有大量相似结构的数据需要存储的时候 数据库的创建定义一个类继承SqliteOpenHelpercontext:上下文name:数据库名字,如&quo ...
- 安卓Android基础第五天
使用HttpUrlConnection方式提交到服务器2 Get方式:组拼url地址把数据组拼到url上,有大小限制1kb(浏览器)或4kb(http协议) Post方式:post方式提交安全,没有大 ...
- 二、Android学习第二天——初识Activity(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 一. Android学习第二天——初识Activity 昨天程序搭建成功以 ...
- Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍
系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...
- Android基础——项目的文件结构(二)
Android基础--项目的文件结构(二) AndroidManifest.xml文件分析 [注]此项目文件结构仅限于Android Studio下的Android项目!!! 在一个Android项目 ...
- 深入理解gradle编译-Android基础篇
深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...
- Android基础总结(8)——服务
服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务.服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了 ...
随机推荐
- IDEA安装Lombok插件失败的解决方案
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. Lombok简介 Lombok是Java语言的实用工具,确切的说,应 ...
- WCF系列教程之消息交换模式之请求与答复模式(Request/Reply)
1.使用WCF请求与答复模式须知 (1).客户端调用WCF服务端需要等待服务端的返回,即使返回类型是void (2).相比Duplex来讲,这种模式强调的是客户端的被动接受,也就是说客户端接受到响应后 ...
- oracle表空间不足,ORA-00604的解决方法
参考文章: http://blog.chinaunix.net/uid-26446098-id-3344813.html 错误信息如下: 从错误的角度可以推出:应该是表空间不足 根据查看表空间的使用情 ...
- POJ - 3264 线段树模板题 询问区间最大最小值
这是线段树的一个模板题,给出一串数字,然后询问区间的最大最小值. 这个其实很好办,只需把线段树的节点给出两个权值,一个是区间的最小值,一个是区间的最大值,初始化为负无穷和正无穷,然后通过不断地输入节点 ...
- Python学习之赋值列表
# the program aim to differentiate the defference of a=b or a=b[:] my_fruits=["apple",&quo ...
- Integer的NPE问题
- 软件工程(FZU2015) 赛季得分榜,第六回合
SE_FZU目录:1 2 3 4 5 6 7 8 9 10 11 12 13 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分=团队得分+个人贡献分 个人贡献分: 个人 ...
- 【学习总结】GirlsInAI ML-diary day-2-Python版本选取与Anaconda中环境配置与下载
[学习总结]GirlsInAI ML-diary 总 原博github链接-day2 Python版本选取与Anaconda中环境配置与下载 1-查看当前Jupyter的Python版本 开始菜单选J ...
- java设计模式:面向对象设计的7个原则
在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据7条原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本. 这7条原则分别是:开闭原则.里氏 ...
- Linux的基本解读
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统 而严格来讲,Linux这个词本身只表示Linux内核,但实际上人 ...
