Android基础知识(二)
来源:互联网 发布:java定义数组的方法 编辑:程序博客网 时间:2024/05/21 22:54
1测试的相关概念
[1] 好的软件不是开发出来的是不断测试出来的
[2] 当当 1 2 3 -8 京东:
1.1 根据是否知道源代码分为
黑盒(功能测试):
白盒(知道源代码自己写测试代码):
1.2 根据测试的力度
方法测试
单元测试
集成测试:安卓客户端写好了,网络接口也写好了,集成在一起进行测试
系统测试
1.3 根据测试的暴力程度
压力:12306 过年时卡得很
冒烟:谷歌工程师给我们提供了一个money+1000(次数)可以进行压力测试
2 单元测试
测试的业务方法!
[1]定义一个类继承AndroidTestCase
[2]在清单文件中配置use-library和instrumentation(上图的红色部分,注意其位置)
[3]如果上面的东西搞丢了 可以这样配置:可以自己手动创建一个Android的测试工程,在测试工程里面都会自动配置好。
3 日志猫的使用
要求会加过滤器!
4 使用上下文获取常见目录
【1】String path = context.getFilesDir().getPath();
【2】使用上下文快速获取文件的输出流和输入流
FileOutputStream fos = context.openFileOutput("infoo.txt”,0);
FileInputStream fis = context.openFileInput("infoo.txt");
5 登录数据存储到SD卡
往SD卡存储数据需要获取权限:WRITE_EXTERNAL_STORAGE
【1】获取SD卡的目录
String sdPath = Environment.getExternalStorageDirectory().getPath();
File file = new File("sdPath","haha.txt");
【2】判断SD卡是否可用
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
Toast.makeText(MainActivity.this,"SD卡可用",1).show();
}else{
Toast.makeText(MainActivity.this,"SD卡不可用",1).show();
}
6 获取SD卡可用空间
//[1]找到我们关心的控件
TextView tv_total_size = (TextView)findViewById(R.id.textView1);
TextView tv_usable_size = (TextView) findViewById(R.id.textView2);
//[2]获取SD卡总大小和可用空间
File file =Environment.getExternalStorageDirectory();
long totalSpace = file.getTotalSpace();//总大小
long usableSpace = file.getUsableSpace();//可用空间
//[3]转换数据格式
String formatTotalSize = Formatter.formatFileSize(this, totalSpace);
String formatUsableSize = Formatter.formatFileSize(this, usableSpace);
//[4]展示到TextEdit上
tv_total_size.setText("总大小:"+formatTotalSize);
tv_usable_size.setText("可用大小:"+formatUsableSize);
7 文件权限的介绍
修改文件权限-->使用Linux下一个指令(chmod)步骤:
cmd-->敲指令:adb shell-->cd 到修改文件的目录-->chmod 777要修改文件权限的文件名(eg:private.txt)
8 SharedPreferences介绍
【1】获取sp的实例
sp = getSharedPreferences("config",0);
【2】获取编辑器
Editor edit = sp.edit();
【3】存数据
edit.putString("name",name);
edit.putString("pwd",pwd);
【4】一定要commit
edit.commit();
9 生成xml的第一种方式(StringBuffer自己组拼)
//[1]初始化我们要备份的数据 smsLists = new ArrayList<Sms>(); for(int i = 0; i < 10; i++) { Sms sms = new Sms(); sms.setAddress("10086"+i); sms.setBody("nihao"+i); sms.setDate("201"+i); //[2]把sms对象加入到集合中 smsLists.add(sms); } } //点击按钮 通过StringBuffer的方式生成一个xml文件 public void click(View v) { //[1]创建sb对象 StringBuffer sb = new StringBuffer(); //[2]开始组拼xml文件头 sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); //[3]开始组拼xml根节点 sb.append("<smss>"); //[4]开始组拼smss结点 for(Sms sms:smsLists) { sb.append("<sms>"); //[5]开始组拼address结点 sb.append("<address>"); sb.append(sms.getAddress()); sb.append("</address>"); //[6]开始组拼body结点 sb.append("<body>"); sb.append(sms.getBody()); sb.append("</body>"); //[7]开始组拼date结点 sb.append("<date>"); sb.append(sms.getDate()); sb.append("</date>"); sb.append("</sms>"); } sb.append("</smss>"); //[8]把数据保存到sd卡中 try {File file = new File(Environment.getExternalStorageDirectory().getPath(), "smsbackup.xml");FileOutputStream fos = new FileOutputStream(file);fos.write(sb.toString().getBytes());fos.close();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}
10 生成xml的第二种方式(使用xml序列化器)
try {//[1]获取XmlSerializer类的实例 通过X买了这个工具类去获取XmlSerializer serializer = Xml.newSerializer();//[2]设置serializer序列化器参数File file = new File(Environment.getExternalStorageDirectory().getPath(),"smsbackup2.xml");FileOutputStream fos = new FileOutputStream(file);serializer.setOutput(fos, "utf-8");//[3]开始写xml文档开头serializer.startDocument("utf-8", true);//[4]开始写xml文档的根节点 namespace:命名空间serializer.startTag(null, "smss");//[5]循环写sms结点for (Sms sms : smsLists) {serializer.startTag(null, "sms");//[6]开始写address结点serializer.startTag(null, "address");serializer.text(sms.getAddress());serializer.endTag(null, "address");//[7]开始写body结点serializer.startTag(null, "body");serializer.text(sms.getBody());serializer.endTag(null, "body");//[8]开始写date结点serializer.startTag(null, "date");serializer.text(sms.getDate());serializer.endTag(null, "date");//sms结点结束serializer.endTag(null, "sms");}serializer.endTag(null, "smss");//写文档的结尾serializer.endDocument();fos.close();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}
11 XML的解析
[1] Xml的数据来源 来源于服务器 服务器的开发人员通过服务器的技术把数据准备一个xml返回给客户端。
[2] 对于Android的开发人员 只需要做解析的操作,把我们关心的数据取出来就可以了!
[3]服务器是以流的形式把数据返回
解析步骤:[1] 获取XmlPullParser解析的实例XmlPullParser parser = Xml.newPullParser();[2]设置XmlPullParser的参数parser.setInput(in, "utf-8");[3]获取事件类型int type = parser.getEventType();[4]具体判断一下解析到了哪个节点while(type!=XmlPullParser.END_DOCUMENT)while(type!=XmlPullParser.END_DOCUMENT){//具体判断一下解析到了哪个节点switch (type) {case XmlPullParser.START_TAG://解析开始标签//[4]具体判断一下解析到是哪个开始标签、if ("weather".equals(parser.getName())) {//创建一个集合对象weatherlists = new ArrayList<Channel>();}else if("channel".equals(parser.getName())){//[6]创建Channel对象channel = new Channel();//[7]获取id值String id = parser.getAttributeValue(0);channel.setId(id);}else if("city".equals(parser.getName())){//[8]获取city的数据String city = parser.nextText();channel.setCity(city);}else if("temp".equals(parser.getName())){//[9]获取temp的数据String temp = parser.nextText();channel.setTemp(temp);}else if("wind".equals(parser.getName())){//[10]获取wind的数据String wind = parser.nextText();channel.setWind(wind);}else if("pm250".equals(parser.getName())){//[11]获取pm250的数据String pm250 = parser.nextText();channel.setPm250(pm250);}break;case XmlPullParser.END_TAG://解析结束标签//具体判断一下要解析的结束标签if ("channel".equals(parser.getName())) {//把javabean对象存到集合中weatherlists.add(channel);}break;}//不停的向下解析type = parser.next();}
- Android基础知识(二)
- Android各种基础知识(二)
- Android基础知识总结(二)
- Android系统回顾(二):Android基础知识
- Android中的一些基础知识(二)
- Android基础知识二(应用程序框架)
- android 基础知识二
- Android 基础知识 二十
- Android基础知识详解二
- Android基础知识(二)
- Android基础知识(二)—-Menu
- .NET基础知识(二)
- java 基础知识(二)
- oracle基础知识(二)
- c#基础知识(二)
- JActor基础知识(二)
- OpenLayers基础知识(二)
- php基础知识(二)
- 欢迎使用CSDN-markdown编辑器
- 自定义控件(1)
- Cookie和Session
- CentOS 最新版本git的安装教程
- 同比和环比计算公式?
- Android基础知识(二)
- python学习相关链接
- 数据分析
- java获取指定地址图片高度宽度简单代码
- java注册时向指定邮箱发送邮件激活
- Error Domain=NSURLErrorDomain Code=-1007 "太多 HTTP 重定向" UserInfo={NSUnderlyingError=0x170247230 {Erro
- C++之函数模板
- Android移动端车牌识别demo
- 从零开始微信机器人(一):wxpy简介(登录、消息发送、注册回复)