方法测试 function testandroid
单元测试 unit test junit测试框架缓存
集成测试 integration test安全
系统测试 system testapp
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();
每个安装的应用程序 默认状况下操做系统都会给这个应用程序分配一个单独的用户私有的文件,别的应用程序是不能够读取/修改的。this
获取路径方法:
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);