安卓开发基础教程02.doc_第1页
安卓开发基础教程02.doc_第2页
安卓开发基础教程02.doc_第3页
安卓开发基础教程02.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

不倒翁学习笔记1、 Log日志(熟练)重点: 1 Log自身的一套日志输出 Log.v(TAG, verbose); String str = null; str.substring(9); Log.d(TAG, debug); Log.i(TAG, info); Log.w(TAG, warn); Log.e(TAG, error); 2 添加过滤器2、 测试的相关概念(了解) 1 看是否有源代码 1.1 黑盒测试 16w 1.2 白盒测试 必须对应代码的每个模块都非常熟悉 30w2 时间 单元测试:程序员自己 模块测试:组内测试 集成测试:所有的代码搞到一起来测试 系统测试:亚太地区:google认证中心 香港 贴牌 属于android 系统(cts测试) cts测试:防止各类手机定制商修改android代码 3 压力程度 3.1 猴子测试 monkey 3.2 冒烟测试 3. Android的单元测试1首先在应用层application里面写上 application.2在application外写上 3新建java文件时候注意继承android.test.AndroidTestcase类4写测试内容,最后在outline里面运行要测试的方法【Example】业务类要测试的程序public class person private String name=null;public String getFirstName()return name.substring(7);public int add(int x,int y)return x+y;测试类,测试以上方法public class personTest extends AndroidTestCase private static final String TAG =persontest;public void testGetFirstName()person ps=new person();String firstname=ps.getFirstName();Log.i(TAG, firstname:+firstname);public void testAdd() person ps=new person();int actual=ps.add(1, 1);/断言测试2为期待的值,actual为实际的值/assert actual=2;Assert.assertEquals(2, actual);4、 文件的访问权限(熟练)在 drwxr-rwx 中,前一个字母是文件的类型 后面的九个字母三个三个一分,前三个是所有者的权限,中间三个是所属组的权限,后面三个是其他人权限,r 代表读 w 代表写 x 代表可以执行 文件是-文件夹是d文件操作的四种模式private append worldread worldwrite word先写四个按钮,每个按钮添加一些方法FileOutputStream fos=openFileOutput(“private.txt”,Context.Mode_private)createFile(String name,int mode,String content)三个参数文件名,文件的操作模式,文件的内容private void createFile(String name, int mode,String content) try FileOutputStream fos=openFileOutput(name, mode);fos.write(content.getBytes();fos.close(); catch (Exception e) e.printStackTrace();私有的会把原来的内容进行覆盖,append会在原有的基础上添加5.Android下的数据读写和保存(熟练)以登录为例/回显数据/回显数据String packageName = getPackageName();File file = new File(/data/data/+packageName+/user.txt);/构建文件对象if(file.exists()/判断文件是否存在try FileReader fr = new FileReader(file);BufferedReader br = new BufferedReader(fr);String content = br.readLine();et_name.setText(content);/设置给et_name控件et_name.setSelection(content.length();/让光标在后面/关流(节省资源 对应程序的一种优化)br.close();fr.close();public void login(View v)/*1 获取到用户名和密码2 判断checkbox是否选中3 如果选中,就需要把用户存储起来(可以存储在自己的空间 /data/data/包名 */String name = et_name.getText().toString().trim();String password = et_password.getText().toString().trim();if(cb.isChecked()/判断checkbox是否选中try String packageName = getPackageName();/获取应用程序的包名File file = new File(/data/data/+packageName+/user.txt);/构建文件对象FileWriter fw = new FileWriter(file);fw.write(name);fw.close();6. 几种常见的获取文件目录的api(熟练)openFileInput(); /获取文件的输入流openFileOutput(name, mode);/获取文件的输出流 以上登陆页面修改成FileOutputStream fos=openFileOutput(mm.txt, Context.MODE_PRIVATE);fos.write(name.getBytes();回显里面FileInputStream fis = openFileInput(mm.txt);getCacheDir()getFilesDirFile filesDir = getFilesDir();/ /data/data/packagename/filesFile cacheDir = getCacheDir();/获取缓存目录 /data/data/packagename/cache7. 获取内存空间(了解)public void getSDTotalspace(View v)/SD卡的路径File path=Environment.getExternalStorageDirectory();/Android封装的类/StatFs stat=new StatFs(path.getPath();StatFs stat=new StatFs(path.getPath();/获取块的大小long blocksize=stat.getBlockSize();/获取块的数量long totlblocks=stat.getBlockCount();/格式户String size= Formatter.formatFileSize(this,blocksize*totlblocks);Button bt=(Button)v;bt.setText(bt.getText().toString()+:+size);public void getSDAvailSpace(View v)File path=Environment.getExternalStorageDirectory();StatFs stat=new StatFs(path.getPath();long blocksize=stat.getBlockSize();long availSpace=stat.getAvailableBlocks();String size=Formatter.formatFileSize(this, blocksize*availSpace);Button bt=(Button)v;bt.setText(bt.getText().toString()+:+size);8. sharedpreferences 首先项(熟练)SeekBar sb=(SeekBar) findViewById(R.id.sb);SharedPreferences sp=getSharedPreferences(config,Context.MODE_PRIVATE);/数据回显int progress = sp.getInt(progress, 0);sb.setProgress(progress);/设置监听sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() Overridepublic void onStopTrackingTouch(SeekBar seekBar) Log.i(TAG, 停止拖动:+seekBar.getProgress();Editor edit=sp.edit();edit.putInt(progress, seekBar.getProgress();/其他两个方法直接输出日志信息就行。省略);9. 生产XML文件(熟练)public void create(View v)/把对象集合保存成xml/* * * * 表妹0 * 16 * * . * */List list=new ArrayList();for(int i=0;i5;i+)list.add(new Person(i,表妹+i,16+i);XmlSerializer serializer=Xml.newSerializer();try FileOutputStream os=openFileOutput(Persons.xml, Context.MODE_PRIVATE);serializer.setOutput(os, utf-8);/开始文档serializer.startDocument(utf-8, true);/开始标签serializer.startTag(null,persons );for (Person person:list)serializer.startTag(null, person);serializer.attribute(null, id, person.id+);serializer.startTag(null, name);serializer.text();serializer.endTag(null, name);serializer.startTag(null, age);serializer.text(person.age+);serializer.endTag(null, age);serializer.endTag(null, person);serializer.endTag(null, persons);serializer.endDocument();os.close(); catch (Exception e) / TODO: handle exception10. 解析XML文件/* * 思路: * 1 要解析的文件上/mnt/sdcard/persons.xml * 2 如何解析 XmlPullParser Xml.newPullParser() */public void parser(View v)Listlist=null;Person person=null;XmlPullParser parser=Xml.newPullParser();try File file=new File(Environment.getExternalStorageDirectory(),Person.xml);InputStream inputStream=new FileInputStream(file);/S设置解析的流parser.setInput(inputStream, utf-8);/得到事件类型int eventType=parser.getEventType();/判断是否解析到了文档结尾while(eventType!=XmlPullParser.END_DOCUMENT)switch (eventType) case XmlPullParser.START_TAG:if(persons.equals(parser.getName()list=new ArrayList();else if(person.equals(parser.getName()person=new Person();int id=Integer.parseInt(parser.getAttributeValue(0);person.id=id;else if(name.equals(parser.getName()String name=parser.nextText();=name;e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论