Android核心基础二
2014-07-12 22:29
447 查看
我所写的这些核心基础,都是老师课堂上要求熟练掌握的东西,一些只需要了解的东西,我没有去写,以后会陆
续补充。
引号中写需要输出的信息。至于TAG,个人习惯把TAG定义为一个全局变量,然后用类名作为内容。例如
断点调试中,打断点只需要在一行的最前面双击即可。 断点一半打在 出错行的上一行,然后使用debug as进
入调试模式。然后进行调试程序。
需要注意的一点就是,调试完成之后一定要记住放行!!!
Android 单元测试
5 在Outline 选择对应的方法,然后右键run as -> android junit case
在开发过程中,编写测试程序一定要严谨,切记!!
单元测试分两种,第一种是测试执行过程是否正确,第二种是测试返回的结果是否正确,那么测试返回结果的单
元测试方法一般采用断言测试,核心方法如下(方法是重载的,可以测试很多种情况):
其中expected为期望值,actual为实际值。
己之前接触过,到那天在详细写吧。
分的用户登录。附上传送门http://blog.csdn.net/jack522703074/article/details/37729029
sdcard上进行读取。就不再另起案例了,直接改下上面的核心代码吧。布局什么的都是浮云,实现的核心代码如下。
先说一下如下的两个方法:
然后上保存数据到sdcard的核心代码:
最后是从sdcard读取数据的代码,也就是用户名的回显:
期间报了这样一个错误如下:
因为往外部写入时候是需要添加权限的,去清单配置文件中添加写入外部设备的权限即可解决。
上面存储数据到sdcard的代码可以简化为:
还有三个知识点没写完,感觉长了看起来不太方便,就先写这么多吧,其他知识点留到下一篇,明天又开始上课
咯。努力,加油!!
续补充。
Android下的logcat以及断点调试
logcat是Android中一个命令行工具,可以用于得到程序的log信息。用法一般为<span style="font-size:18px;">Log.i(TAG,"");</span>
引号中写需要输出的信息。至于TAG,个人习惯把TAG定义为一个全局变量,然后用类名作为内容。例如
<span style="font-size:18px;">private String TAG = "MainActivity";</span>
断点调试中,打断点只需要在一行的最前面双击即可。 断点一半打在 出错行的上一行,然后使用debug as进
入调试模式。然后进行调试程序。
需要注意的一点就是,调试完成之后一定要记住放行!!!
Android单元测试
单元测试:主要是对业务逻辑进行测试Android 单元测试
1 清单文件中应用节点内调用测试库,如下图所示:
2 在应用节点外部配置测试启动类,如下图所示:
3 创建一个测试类继承TestCase类,如下图所示:
4 编写测试方法,如下图所示:
5 在Outline 选择对应的方法,然后右键run as -> android junit case
在开发过程中,编写测试程序一定要严谨,切记!!
单元测试分两种,第一种是测试执行过程是否正确,第二种是测试返回的结果是否正确,那么测试返回结果的单
元测试方法一般采用断言测试,核心方法如下(方法是重载的,可以测试很多种情况):
Assert.assertEquals(expected, actual)
其中expected为期望值,actual为实际值。
文件的访问权限
关于Linux权限,我这边就先不写太多了,贴张图吧,之后会有一天的时间专门来详细来讲Linux系统,因为我自己之前接触过,到那天在详细写吧。
Android下的数据读取和保存
关于这个部分,我还是感觉写在案例里面比较方便查阅,因为是以一个小案例来体现的。详情请参见案例部分的用户登录。附上传送门http://blog.csdn.net/jack522703074/article/details/37729029
保存数据到sdcard 以及读取sdcard的数据
这个其实跟案例用户登录有些相似,只是把保存的方法改变了下,变成了把数据保存到sdcard上,读取也是从sdcard上进行读取。就不再另起案例了,直接改下上面的核心代码吧。布局什么的都是浮云,实现的核心代码如下。
先说一下如下的两个方法:
//获取sdcard的状态 String state = Environment.getExternalStorageState(); //获取到sdcard的文件目录 File directory = Environment.getExternalStorageDirectory();
然后上保存数据到sdcard的核心代码:
<span style="white-space:pre"> </span>//判断sdcard是否存在 <span style="white-space:pre"> </span>if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ <span style="white-space:pre"> </span>File file = new File(Environment.getExternalStorageDirectory(),"user.txt"); <span style="white-space:pre"> </span>FileWriter fw = new FileWriter(file); <span style="white-space:pre"> </span>fw.write(name); <span style="white-space:pre"> </span>fw.close(); <span style="white-space:pre"> </span>Toast.makeText(this, "用户名保存成功", 0).show(); }else{ <span style="white-space:pre"> </span>Toast.makeText(this, "sdcard不存在", 0).show(); }
最后是从sdcard读取数据的代码,也就是用户名的回显:
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ File file = new File(Environment.getExternalStorageDirectory(),"user.txt"); if(file.exists()){ BufferedReader br = null; try { br = new BufferedReader(new FileReader(file)); String content = br.readLine(); et_name.setText(content); et_name.setSelection(content.length()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { br.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
期间报了这样一个错误如下:
07-08 03:38:58.498: W/System.err(31743): java.io.FileNotFoundException: /mnt/sdcard/user.txt: open failed: EACCES (Permission denied)
因为往外部写入时候是需要添加权限的,去清单配置文件中添加写入外部设备的权限即可解决。
几个常见获取目录的Api
<span style="white-space:pre"> </span>//文件常用的api <span style="white-space:pre"> </span>//openFileInput(""); //获取文件的输入流 <span style="white-space:pre"> </span>//openFileOutput(name, mode);//获取文件的输出流 File filesDir = getFilesDir();// /data/data/packagename/files File cacheDir = getCacheDir();//获取缓存目录 /data/data/packagename/cache try { FileInputStream fis = openFileInput("name.txt"); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while((len = fis.read(buffer)) != -1){ bos.write(buffer, 0, len); } String content = bos.toString(); et_name.setText(content); et_name.setSelection(content.length()); //关流 bos.close(); fis.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }
上面存储数据到sdcard的代码可以简化为:
if(cb.isChecked()){ try { //文件输出流 在/data/data/包名/files文件/name.txt 1 创建files文件夹 2 创建mm.txt文件 FileOutputStream fos = openFileOutput("name.txt", Context.MODE_PRIVATE); //写数据 fos.write(name.getBytes()); //关流 fos.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
还有三个知识点没写完,感觉长了看起来不太方便,就先写这么多吧,其他知识点留到下一篇,明天又开始上课
咯。努力,加油!!
相关文章推荐
- Android4开发入门经典 之 第二部分:Android应用的核心基础
- Android核心基础(二)
- Android核心基础(十一)
- 【Android核心基础03】 - SQLite和ListView
- 【Android核心基础02】 - 界面布局、测试、数据存储访问、权限控制、XML
- 传智播客Android核心基础课程视频教程(收藏)
- Android核心基础(手机卫士的一个知识点总结)
- Android核心基础(十)
- Android核心基础(十)
- Android核心基础(手机卫士的一个知识点总结)
- Android核心基础(二)
- Android核心基础(五)
- Android核心基础(四)
- Android核心基础(十一)
- Android核心基础(七)
- Android核心基础(一)
- Android核心基础(四)
- Android核心基础(六)
- 【Android核心基础01】 - 体系结构、adb命令、目录结构、点击事件
- Android核心基础