android周记1

android的第一周周记
1.软件测试
2.常见的布局
3.android开发环境搭建
4.打电话和发短信应用程序,
5.android模拟器无法启动
本周学习收获:
 软件测试的目的:描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程
测试概念:
从是否关心软件内部结构和具体实现的角度划分
黑盒测试:只关心程序执行的过程和结构
白盒测试:根据源代码测试方法或者测试用例
灰盒测试:是介于白盒测试与黑盒测试之间的
对应用进行单元测试
第一步:首先在androidManifest.xml中加入代码:
<use-library android:name=”android.test.runner”/>
<instrumentation android:name=”android.test.InstrumentationTestRunner”android:targetPackage=”cn.itcast.action”android:label=”Test for My App”/>
第二步:编译代码
数据存储与访问

Android存储方式:
文件、SharedPreferences(参数)、SQLite数据库、内容提供者(Content provider)网络
第一种:使用文件进行数据存储
Activity提供了openFileOutput()方法可以把数据输出到文件中和J2SE环境中保存数据到文件中是一样的
Public class FileActivity extends Activity{
@Overrride 
Public void onCreate(Bundle savedlnstanceState){

FileOutputStream outStream=this.openFileOutput(“文件名”,文件保存的路径);
outStream.write(“...”.getBytes());
outStream.close();
}
openFileOutput()方法第二个参数指定的参数模式:
私有:Context.MODE_PRIVATE=0
只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。
追加:Context.MODE_PRIVATE=32768
模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

可读:Context.MODE_WORLD_READABLE=1
写:Context.MODE_WORLD_WRITEABLE=2Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
如果希望文件被其他应用读和写,可以传入: 
openFileOutput("csdn.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
任何应用创建的文件,sharedpreferences,数据库都应该是私有的(位于/data/data/<package name>/files),
读取文件内容
如果要打开存放在/data/data/<package name>/files目录应用私有的文件,可以使用Activity提供openFileInput()方法。
FileInputStream inStream=this.getContext().openFielInput(“文件”);
绝对路径
File file = new File("/data/data/cn.csdn.action/files/csdn.txt");
FileInputStream inStream = new FileInputStream(file);
Log.i("FileTest", readInStream(inStream));
注意:上面文件路径中的“cn.csdn.action”为应用所在包,当你在编写代码时应替换为你自己应用使用的包。
对于私有文件只能被创建该文件的应用访问,如果希望文件能被其他应用读和写,可以在创建文件时,指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
把文件存放在SDCard中
1.首先在androidMainfest.xml中加入访问SDCard的权限
创建与删除的权限
<uses-permission android:name=”android.permission.MOUNT_UNMOUNT_FILESYSTEMS/>”
写入数据的权限
<uses_permission android:name=”android permission.WRITE_EXTERNAL_STORAGE”/>
往SDCard中存文件首先判断SDCard是否存在
If(Enviroment.getExternalStorageState().equals(Enviroment.MEDIA_MOUNTED)){

 File sdCardDir=Environment.getExternalStroageDirectory();
File saveFile=new File(sdCardDir,”文件”);
FileOutputStream outStream=new FileOutputStream(saveFile);
outStream.write(”获取名”.getBytes());
outStream.close();
}
Environment.getExternalStorageState()方法用于获取SDCard的状态,
Environment.getExternalStorageDirectory()方法用于获取SDCard的目录
可以这样写:
FileOutputStream outStream=new FileOutputStream(saveFile);
outStream.write(“值”.getBytes());
outStream.close();
使用SharedPreferences进行数据存储
android提供了一个SharedPreferences类,其背后是用xml文件存放数据,文件存放在/data/data/<包名>/shared_prefs目录下
SharedPreferences sharedPreferences=getSharePreferencs(“文件名不带后缀”,Context.MODE_PRIVATE);
Editor editor=sharedPreferences.edit();获取编辑器
editor.putString(“name”,”名”);
editor.putInt(“age”,值);
Editor.commit();//提交修改
访问SharedPreferences中的数据
访问代码:
ShredPrefeences sharedPreferences=getSharedPreferences(“”,Context.MODE_PRIVATE);
String name=sharedPreferences.getString(“name”,””);
Int age=sharedPreferences.getint(“age”,1);
使用SAX读取XML文件
SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备。 SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事件。所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。下面是一些ContentHandler接口常用的方法:
startDocument()
当遇到文档的开头的时候,调用这个方法,可以在其中做一些预处理的工作。
endDocument()
和上面的方法相对应,当文档结束的时候,调用这个方法,可以在其中做一些善后的工作。 
startElement(String namespaceURI, String localName, String qName, Attributes atts) 
当读到一个开始标签的时候,会触发这个方法。namespaceURI就是命名空间,localName是不带命名空间前缀的标签名,qName是带命名空间前缀的标签名。通过atts可以得到所有的属性名和相应的值。要注意的是SAX中一个重要的特点就是它的流式处理,当遇到一个标签的时候,它并不会纪录下以前所碰到的标签,也就是说,在startElement()方法中,所有你所知道的信息,就是标签的名字和属性,至于标签的嵌套结构,上层标签的名字,是否有子元属等等其它与结构相关的信息,都是不得而知的,都需要你的程序来完成。这使得SAX在编程处理上没有DOM来得那么方便。
endElement(String uri, String localName, String name)
这个方法和上面的方法相对应,在遇到结束标签的时候,调用这个方法。
characters(char[] ch, int start, int length) 
这个方法用来处理在XML文件中读到的内容,第一个参数为文件的字符串内容,后面两个参数是读到的字符串在这个数组中的起始位置和长度,使用new String(ch,start,length)就可以获取内容
使用Pull解析器读取XMl文件
它提供了类似的事件,如:开始元素和结束元素事件,使用parser.next()可以进入下一个元素并触发相应事件。事件将作为数值代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法可以获取下一个Text类型元素的值。
用Pull解析器生成一个与csdn.xml文件内容相同的mycsdn.xml文件,代码在本页下方备注

使用代码如下(生成XML文件):
File xmlFile = new File("mycsdn.xml");
FileOutputStream outStream = new FileOutputStream(xmlFile);
OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream, "UTF-8");
BufferedWriter writer = new BufferedWriter(outStreamWriter);
writeXML(persons, writer);
writer.flush();
writer.close();
如果只想得到生成的xml字符串内容,可以使用StringWriter:
StringWriter writer = new StringWriter();
writeXML(persons, writer);s
String content = writer.toString();
android开发环境
Eclipse + ADT 插件
Android SDK 
Android Platform-tools
最新的Android 开发平台
最新的模拟器镜像
android应用程序架构
Src:java源代码存放目录
Gen:自动生成目录,最重要的就是R.java文件,我们尽量避免修改R.java,.java在应用中起到了字典的作用,它包含了界面、图标、常量等各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。
Res:资源目录
在这下面可以找到个种资源:xml文件,图片或数据
AndroidManifest.xml:功能清单文件:这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。
default.properties 项目环境信息,一般是不需要修改此文件
电话拨号器
注意权限:<uses-permission android name=”android.permission.CALL_PHONE/”>
短息发送器:
权限:
<uses-permission android:name=”android.permission.SED_SMS”/>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值