方法测试 function test
单元测试 unit test junit测试框架
集成测试 integration test
系统测试 system test
Android代码只能运行在手机中的Dalvik虚拟机里,在PC机的JVM下会报错异常,写测试用例,通常把上传到Android手机或模拟器中运行。
1.写业务逻辑代码
2.写测试用例继承AndroidTestCase类
3.写测试方法public void testAdd() throw Exception{}
4.配置清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.itheima.junit"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
<!-- 在根节点 manifest节点下放置  指令集 instrumentation -->
<instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:label="Tests for My App"
    android:targetPackage="com.itheima.junit" />
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
   <!--  使用的函数库  application节点的下面-->
<uses-library android:name="android.test.runner" />
<activity
    android:name="com.itheima.junit.MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
//获取sdcard剩余空间
long usableSpace = Environment.getExternalStorageDirectory().getUsableSpace();
// 获取外置sdcard目录
File path = Environment.getExternalStorageDirectory();
// 获取sdcard的状态(是否挂载)
String state = Environment.getExternalStorageState();
每一个安装的应用程序 默认情况下操作系统都会给这个应用程序分配一个单独的用户私有的文件,别的应用程序是不可以读取/修改的。
获取路径方法:
File path = 当前类名.this.getFilesDir();//获取目录是会自动创建files文件夹
                 Context.getFilesDir();
返回:/data/data/包名/files
获取临时缓存目录cache:
File path = 当前类名.this.getCacheDir();
                 Context.getCacheDir();
返回:/data/data/包名/cache
MainActivity.this.openFileOutput("private.txt", MODE_PRIVATE);
参数1:文件
参数2:
  MODE_PRIVATE 私有文件(不可读写)
  MODE_WORLD_READABLE 只读文件
  MODE_WORLD_WRITEABLE 只写文件
  MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE 可读写文件
一个应用读取另一个应用的私有文件夹下的文件:
    * 私有文件:没有权限
    * 可读文件:可读
    * 可写文件:没有权限
    * 可读可写文件:可读
一个应用写入另一个应用的私有文件夹下的文件:
    * 私有文件:没有权限
    * 可读文件:没有权限
    * 可写文件:可写
    * 可读可写文件:可写
0 表示文件类型:l(小写L)软连接,d 表示文件夹,- 表示文件
1 4 7 表示是否可读。r 可读,- 不可读
2 5 8 表示是否可写。w 可写,- 不可写
3 6 9   表示是否可执行。x 可执行,- 不可执行(一般用于开发人员常用的二进制可执行程序)
权限分组
123:应用权限,用户权限
456:所在组其他用户权限
789:其他应用,其他用户
权限值:
    r 权限值对应 4
    w 权限值对应 2
    - 权限值对应 1
更改权限命令示例:
chmod 777 file.txt 更改文件权限全局可读可写可执行
解析步骤:
    // 获取资产管理器
    AssetManager am = this.getAssets();
    try {
    /***************************************/
        // 1. 读取xml数据
        InputStream is = am.open("weather.xml");
    /***************************************/
        // 2. 解析数据(pull解析,Android下的XML解析方式)
        // 2.1创建XML解析器
        XmlPullParser parser = Xml.newPullParser();
        // 2.2初始XML化解析器,指定解析哪个流,以什么编码解析
        parser.setInput(is, "UTF-8");
        // 2.3解析XML数据
        int type = parser.getEventType();
        while (type == XmlPullParser.START_TAG) {
            String str = parser.nextText();
                }
            }
    …………………………
    /***************************************/
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
    /***************************************/
        //关闭数据流
        try {
            is.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        };
    }
XML保存数据
    …………
    // 获取应用私有目录临时缓存目录
    File path = MainActivity.this.getCacheDir();
    FileOutputStream fos = new FileOutputStream(new File(path,
            "info.xml"));
/***************************************/
    // a.创建Xml序列化器
    XmlSerializer serializer = Xml.newSerializer();
/***************************************/
    // b.初始化Xml序列化器设置输出流,和编码方式
    serializer.setOutput(fos, "UTF-87");
/***************************************/
    // c.写入xml数据
    //文档开头
    serializer.startDocument("UTF-8", true);
        serializer.startTag(null, "info");
            serializer.startTag(null, "qq");
            serializer.text(qq);
            serializer.endTag(null, "qq");
            serializer.startTag(null, "pw");
            serializer.text(pw);
            serializer.endTag(null, "pw");
        serializer.endTag(null, "info");
    //文档结束      
    serializer.endDocument();
    …………
/***************************************/
    //关闭流
    fos.close();
    …………
SharedPreferences保存数据(保存位置:/data/data/包名/shared_prefs/xxx.xml)
            // 获取应用私有目录临时缓存目录
            File path = MainActivity.this.getCacheDir();
            FileOutputStream fos = new FileOutputStream(new File(path,
                    "info.xml"));
/***************************************/
            //初始化SharedPreferences
            SharedPreferences sp = this.getSharedPreferences("config", MODE_PRIVATE);
/***************************************/
            //通过SharedPreferences获取编辑器
            Editor ed =sp.edit();
/***************************************/
            //写入数据
            ed.putString("qq",qq);
            ed.putString("pw",pw);
/***************************************/
            //提交数据
            ed.commit();
/***************************************/
            //关闭流
            fos.close();
            …………
SharedPreferences读取XML数据
        //初始化SharedPreferences
        SharedPreferences sp2 = this.getSharedPreferences("config", MODE_PRIVATE);
        //读取数据
        sp2.getString("qq", "");
        ……
        sp2.getXXX(key, defValue);原文:http://www.cnblogs.com/istarry/p/4418838.html