我也不知道标题该怎么写2

Android进化史

1.5 Cupcake(纸杯蛋糕)
1.6 Donut(甜甜圈)
2.1 Eclair(闪电泡芙)
2.2 Froyo(冻酸奶)
2.3 Gingerbread(姜饼)
3.0 Honeycomb(蜂巢)
4.0 Ice cream SandWich(冰激凌三明治)
4.1 Jelly Bean (果冻豆)
4.2 Jelly Bean (果冻豆)
4.3 Jelly Bean (果冻豆)
4.4 KitKat (雀巢巧克力)
5.0 Lime Pie (酸橙派)

Android下的单位

  • px(pixels像素) 就是像素。。。。 一般HVGA代表,这个使用的比较多。

    HVGA:320*480像素
    VGA: 640*480像素
    QVGA:320*240像素
    WVGA:640*480像素

  • dp(即dip) 设备独立像素
    即它的表现与硬件设备相关,他并不依赖于实际的像素,这个用的比较多
    ->常见的密度比值
    320*240 密度比为0.75 160dp * 0.75 = 120px
    640*480 1.0
    800*480 1.5

  • sp(比例像素)
    主要用来处理字体

Android测试

黑盒测试: 是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
白盒测试: 又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
功能测试: 根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。
压力测试: 主体向被观察者布置一定量任务和作业,借以观察个体完成任务的行为。
集成测试: 是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口
-> 单元测试: 又称模块测试,是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。

Android 下的Junit测试
步骤:
第一步:首先在AndroidManifest.xml中加入下面加粗代码:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cn.itcast.action“ android:versionCode="1“  android:versionName="1.0">
 <application android:icon="@drawable/icon" android:label="@string/app_name">
        <uses-library android:name="android.test.runner" />   //!!!
        ....
 </application>
 <uses-sdk android:minSdkVersion="6" />
 <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="cn.itcast.action" android:label="Tests for My App" />//!!!!
</manifest>

上面targetPackage指定的包要和应用的package相同。
第二步:编写单元测试代码(选择要测试的方法,右键点击“Run As”–“Android Junit Test” ):

import android.test.AndroidTestCase;
import android.util.Log;
public class XMLTest extends AndroidTestCase {
     public void testSomething() throws Throwable {
        Assert.assertTrue(1 + 1 == 3);
     }
}
以下是能够实现上述功能的 Python 代码: ```python import argparse import csv import re import matplotlib.pyplot as plt # 定义 argparse parser = argparse.ArgumentParser(description='Process log file and output csv file') parser.add_argument('log_file', metavar='log_file', type=str, help='path to log file') parser.add_argument('csv_file', metavar='csv_file', type=str, help='path to csv file') args = parser.parse_args() # 读取 log 文件 with open(args.log_file) as f: lines = f.readlines() # 找到最后一次出现 "My name is kitty" 的行 last_kitty_idx = None for i, line in enumerate(lines): if "My name is kitty" in line: last_kitty_idx = i # 从下一行开始读取 lines = lines[last_kitty_idx+1:] # 删除所有重复的行,只留第一行 unique_lines = [] for line in lines: if line not in unique_lines: unique_lines.append(line) # 入 csv 文件 with open(args.csv_file, mode='w') as f: writer = csv.writer(f) # 第 1 行按照正则规则 1 分列 headers = re.split(r'\s+', unique_lines[0].strip()) writer.writerow(headers) # 从第 2 行开始按照正则规则 2 分列 for line in unique_lines[1:]: row = re.split(r'\s+', line.strip()) writer.writerow(row) # 读取 csv 文件 with open(args.csv_file, mode='r') as f: reader = csv.reader(f) rows = [row for row in reader] # 把标题行分为 4 类 abc_dfg_cols = [] cat_cols = [] dog_cols = [] fish_cols = [] for i, header in enumerate(rows[0]): if header in ["ABC", "DFG"]: abc_dfg_cols.append(i) elif header.startswith("CAT"): cat_cols.append(i) elif header.startswith("DOG"): dog_cols.append(i) elif header.startswith("Fish"): fish_cols.append(i) # 把 4 类标题画成 4 个曲线图,标注每条线的标题 plt.figure(figsize=(10, 6)) for cols, title in [(abc_dfg_cols, "ABC/DFG"), (cat_cols, "CAT"), (dog_cols, "DOG"), (fish_cols, "Fish")]: x = [row[0] for row in rows[1:]] for col_idx in cols: y = [float(row[col_idx]) for row in rows[1:]] plt.plot(x, y, label=rows[0][col_idx]) plt.title(title) plt.xlabel("Time") plt.ylabel("Value") plt.legend() plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值