02安卓学习笔记(二)

目录

[1].测试的相关概念
[2].单元测试(掌握)
[3].日志猫的使用
[4].login登录案例
[5].使用上下文获取常见目录
[6].登录数据存储到sd卡(掌握)
[7].获取sd卡可用空间(掌握)
[8].文件权限的介绍
[9].SharedPreferences介绍(掌握)
[10].xml的序列化(掌握)
[11].xml的解析(掌握)

1.测试的相关概念

好的软件不是开发出来的,是不断测试出来的
安卓的压力测试:
    打开模拟器
    进入终端
    adb shell //进入手机终端
    monkey //查看monkey指令
    monkey 2000 //对手机终端里的每个应用都狂点2000次
1.1根据是否知道源代码分 黑盒 测试 和 白盒 测试
    黑盒:不知道源代码,只针对功能测试
    白盒:知道源代码,自己写测试代码测试
1.2根据测试的粒度
    方法测试:针对代码中的某一方法进行测试
    单元测试:
    集成测试:客户端和服务器联调进行测试
    系统测试:对整体的系统进行测试
1.3根据测试的暴力程度
    压力测试:重复点击N次、N个用户集中访问
    冒烟测试:压力测试的一种,一直测试到设备冒烟

2.单元测试

[1]在清单文件中进行如下配置
    在application中配置测试的函数库:
        <uses-library android:name="android.test.runner"/>
    在与application同级处配置测试设备的主类和目标包:
        <instrumentation android:name="android.test.InstrumentationTestRunner"  
                 android:targetPackage="包名" /> 
[2]定义一个class写一个方法:
    //定义一个计算器相加的方法*/
    public int add(int x,int y) {
        return x+y;
    }
[3]定义一个类继承自AndroidTestCase的类
    //写测试方法
    public void testAdd() {
        Calc calc = new Calc();
        int result = calc.add(7, 2);
        //断言 (期望的正确值,实际的结果值)
        assertEquals(8, result);
    }
[4]右键testAdd方法 Run As到Android JUnit Test

3.日志猫LogCat的使用

Logcat有五个级别;tag是个标识,一般使用类名,方便找到打印信息
    Log.v(tag, "我是verbose级别日志");//蓝色
    Log.i(tag, "我是info级别日志"); //绿色
    Log.d(tag, "我是debug级别日志");//黑色
    Log.w(tag, "我是warn级别日志");//黄色
    Log.e(tag, "我是error级别日志");//红色
可以在添加日志过滤器找到自己需要的日志内容;一般红色代表错误,黄色代表警告;这两个就可以调试出错误

4.login登录案例

复选框
保存用户名和密码到本地
从本地读取用户名和密码

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

//上下文 
Context context
//会在data/data/应用的包内生成一个file文件夹
String path = context.getFilesDir().getPath();
//在file文件夹下创建一个info.txt文件
File file = new File(path,"info.txt");
上下文调用的实际参数:MainActivity.this
利用上下文可以获取很多的方法,
context.getFilesDir()创建一个file文件夹
context.getResources()拿到资源目录下的资源文件

6.登录数据存储到sd卡

往sd卡中写数据需要配置权限:android.permission.WRITE_EXTERNAL_STORAGE
String sdPath = Environment.getExternalStorageDirectory().getPath();//获取sdcard的路径
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {//把数据保存到sd卡,需要先判断sd卡是否可用--可用
}

7.获取sd卡可用空间

//获取sd卡的 总空间和可用空间
File file = Environment.getExternalStorageDirectory();
long totalSpace =  file.getTotalSpace(); //总空间:字节
long usableSpace = file.getUsableSpace(); //可用空间:字节
//空间大小转换为MB
String totalStr = Formatter.formatFileSize(this, totalSpace);
String usableString = Formatter.formatFileSize(this, usableSpace);

8.文件权限的介绍

在Linex下用十位表示文件的权限,安卓继承了这点,如果转成二进制,有权限用1表示、-用0表示
d rwx rwx rwx
第1位:表示文件的类型(d代表目录、-代表文件)
第2-4位:表示当前用户(r可读、w可写、x可执行、-没有权限),每一位都用二进制表示,即000-111,十进制为0-7
第5-7位:表示当前用户所在的组(r可读、w可写、x可执行、-没有权限),每一位都用二进制表示,即000-111,十进制为0-7
第8-10位:表示其他用户(r可读、w可写、x可执行、-没有权限),每一位都用二进制表示,即000-111,十进制为0-7
-rw-rw--w-:这是一个文件、对当前用户可读写不可执行、对当前用户所在的组可读写不可执行、对其他用户可写不可读不可执行
在终端中,可以用chmod指令修改文件权限,方法为:
    adb shell  //进入手机终端
        cd data/data/应用包名/files //进入file文件夹下
        chmod 777 private.txt //将private.txt文件权限修改为777(111 111 111)(每一段用一个十进制)
        chmod 660 private.tex //即 110 110 000,表示当前用户可读写、当前用户所在的组可读写、其他用户无任何权限
//创建文件
try {
    //创建文件输出流:文件名、文件权限类型(MODE_PRIVATE私有文件、MODE_APPEND可追加文件、MODE_WORLD_READABLE可读文件、MODE_WORLD_WRITEABLE可读写文件)
    FileOutputStream fos = openFileOutput("private.txt", MODE_PRIVATE);
    //在文件中写入数据
    fos.write("111111111".getBytes());
    fos.close();//关闭流
} catch (Exception e) {
        e.printStackTrace();
}
//读取其他应用(com.biyu6.fileauthority)的本地文件
    File file = new File("/data/data/com.biyu6.fileauthority/files/write.txt");
    FileInputStream fis = new FileInputStream(file);
    BufferedReader bufr = new BufferedReader(new InputStreamReader(fis));
    String content = bufr.readLine();
    System.out.println("读取的内容:"+content);

9.SharedPreferences介绍(偏好设置)

/**将用户名和密码保存到偏好设置中(SharedPreferences)
    name 会生成一个xml文件
    ode 四种模式(0私有、可读、可写...)*/
SharedPreferences sp = getSharedPreferences("config", 0);
//获取偏好设置的编辑器
SharedPreferences.Editor edit = sp.edit();
//存数据:int long bool string
edit.putString("name", nameStr);
edit.putString("pwd", passwordStr);
//点击提交编辑器
edit.commit();
//根据key找值,找不到返回一个默认值
String name = sp.getString("name", "");
String pwd = sp.getString("pwd", "");
//赋值给控件
et_name.setText(name);
et_password.setText(pwd);

10.xml的序列化(自己生成一个xml文件)

[1]通过StringBuffer 拼接字符串的方式自己组拼,最后将字符串存入一个自己定义的文件中(.xml)(不推荐)
[2]通过XmlSerializer类生成xml文件
    1.获取XmlSerializer实例
        获取XmlSerializer serializer = Xml.newSerializer();
    2.设置XmlSerializer序列化器参数
        File file = new File(Environment.getExternalStorageDirectory().getPath(),"smsbackup2.xml");
        FileOutputStream fos = new FileOutputStream(file);
        serializer.setOutput(fos,"utf-8");
    3.写文档开头
        serializer.startDocument("utf-8", true);//文档的编码格式
        serializer.endDocument();//写文档的结尾(写一个开头就写一个结尾,不会出错)
    4.写节点(根节点、节点)
        serializer.startTag(null, "smss");//smss开始
        serializer.endTag(null, "smss");//smss结尾
    5.关闭流
        fos.close();

11.xml的解析

xml的数据来源于后台返回的数据,前台只需要解析数据
后台是以流的形式返回的数据
解析步骤:
    1.获取XmlPullParser
        XmlPullParser parser = Xml.newPullParser();
    2.设置XmlPullParser的参数        
        parser.setInput(inps,"utf-8");
    3.获取解析文档的事件类型
        int type = parser.getEventType(); 
    4.具体判断解析的是哪个标签
        XmlPullParser.START_TAG://解析到了开始标签
        解析各节点
        XmlPullParser.END_TAG://解析到了结束标签
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容