安卓基础学习之二

一、    软件的测试分类

1. 白盒测试

2. 黑盒测试

      根据测试的粒度不同分类,

      单元测试 unit test     测试一个简单的方法 想想,如何测试呢?需要在Manifest配置中加入知识。

            功能测试 functiontest  测试一个功能

      集成测试 intergragetion test

      压力测试 pressure test

      冒烟测试 smoke test  N次点击相同的按钮,就是短期内重复调用某一个方法。

要对应用进行单元测试需要在AndroidManifest.xml文件中进行配置,

第一步在<application>下加入  <uses-libraryandroid:name="android.test.runner" />

第二步在<manifest>标签下加入

<instrumentation android:name="android.test.InstrumentationTestRunner"

 android:targetPackage="cn.itcast.action" />

测试的方法:新建一个类继承.AndroidTestCase 这个父类,然后就可以写测试的方法

 

写代码需要注意的问题

1 命名规范,以类型开头_功能,例如EditText下有个name那么久是et_name

2 相对布局如何用?</RelativeLayout>这个标签标起来,就能使得两个选择项在一个水平线上

4   如何设置滚动下滑条?<ScrollView>这标签包围起来就能使N个选项在一个屏幕内

4 如何设置字体大小?用textSize=12sp 这个可以设置

5如何设置一个按钮在什么地方?用layout属性可以设置上下左右。

6如何得到自己设定的按钮呢?findViewById(刚才自己设置的ID);这个会强转,得到按钮是第一步

7得到按钮之后要干嘛呢?点击啊,点击事件用button.setOnClickListener(this)方法,然activity实现接口

8.有个文本的工具集TextUtils.isEmpty()方法,可以用来判断传入的name是否为空

9、Toast.makeText(contxt当前对象this,String提示字符,时间,可以是0).show();一定不要忘记了show 这个方法

10、如何得到当前运用的路径?利用全局对象Context.getFileDir();

11 安卓中尽量用静态的方法

 

二、数据存储

安卓上的存储空间 ram,手机的内存,动态的。手机运行的时候才有效,如果手机关机或者没电了,ram的数据会丢失。256M~1G,速度加载的访问比较快。

Rom空间,手机上的微硬盘。512M~8G即使手机断电,数据还能保持在手机上 而不丢失,

SD卡,外接的存储设备。存放在mnt 的sdcard上。断电不丢数据。

模拟QQ登陆1。5个小时

保存密码的方法 saveToRom(String filename,String username,String password)

读取文件对象中的密码

能用静态的方法用静态方法,google推荐

三、回显数据

用了两个方法,一个是把读取流转成字节数组

public static byte[] getBytes(InputStreamis) throwsException{

        ByteArrayOutputStreambos=newByteArrayOutputStream();

        byte [] buffer=new byte[1024];

        int len=0;

        while((len=is.read(buffer))!=-1){

            bos.write(buffer,0,len);

        }

        is.close();

        return bos.toByteArray();

 

一个是从rom中读取的方法

public static Map<String,String> readfromRom(Contextcontext,String filename) throws Exception{

       File file=newFile(context.getFilesDir(),filename);

       FileInputStreamfis=new FileInputStream(file);

       byte [] result=StreamTools.getBytes(fis);

       String []infos=new String(result).split(",");

       Map<String,String>loginInfo=new HashMap<String, String>();

       loginInfo.put("name", infos[0]);

       loginInfo.put("password", infos[1]);

       return loginInfo;

   }

最后一步是在Activity中设置name和passWord的值,从读取到的集合中取出来给他们

四、LogCat使用

Log.i(tag,mes) info      这个tag是当前的类的名称,这个mes是你想指定的信息

Log.e error .log.v=verbose log.w=warn/log.d debug

Erro>warn>info>debug>verbose

 

 

五、保存文件到缓存目录,到ROM,到SD卡的方法

保存到SD上的目录上时候保存的路径保存为这个:Environment.getExternalStorageDirectory();

存之前需要判断是否已经加载if(Enviroment.MEDID_MOUNTED.equals(:Environment.getExternalStorageDirectory();))存储否则 Toast.getText().show()

Context.openFileOutput(name,mode);这个方法能直接创建出一个文件来,name就是要创建的文件名称,mode就是文件的类型,可读可写,还是都能常用的几个mode context.MODE_WORLD_READABLE

 

想放到缓存目录下的话,要用congtext.getCaacheDir()

 

默认情况下,自己要写入或则读取到SD卡上或则当地目录下,是需要权限的。各自的运用程序是不可以相互访问的

六、文件访问权限 重点

默认情况下, A应用程序是不可以访问B应用程序目录下的数据的.

 

 

如果A应用程序创建一个文件指定的模式是 readable 这个文件只可以被别的应用程序(B) 读取.

如果A应用程序创建一个文件指定的模式是 writeable 这个文件只可以被别的应用程序(B) 写入.

如果A应用程序创建一个文件指定的模式是 readable+ writeable 这个文件只可以被别的应用程序(B) 读写.

如果A应用程序创建一个文件指定的模式是 append 这个文件是私有的,只能被自己的应用程序操作.

 

 

append.txt     -rw-rw----

available      -rw-rw-rw-

info.txt 默认  -rw-------

readable       -rw-rw-r--

writeable      -rw-rw--w-

                110110010

linux 系统下的文件访问模式

第一个占位符: 代表的是文件的类型. - 文件  d 目录

前三个占位符: 代表的是文件所属的用户. r 可读 w 可写 x 可执行.

中间三个占位符: 代表的用户所在的组. 代表自己所在运用程序

最后三个占位符: 代表的所有人其他人,代表其他运用程序

 

chmod:change mode

七、sharedpreference的使用

存储Andriod上的各种数据,通过在运用的包的名称下创建一个文件,Andriod系统给我们提供了一个API,这个api能存放基本的数据类型,

SharedPreferences sp=getSharedPreferences(“config”,MODE_PRIVATE);cogfig为文件的名称,第二个参数为数据类型

得到一个SharedPreferences编辑器 Editor editor=sp.edit();

Editor.putBoolean()可以存放各种数据,存放之后一定要用editor.commit方法提交

Sharedpreference的内部是一个MAP一样的文件数据类型

八、利用pull解析XML文件

 这个XML文件的解析应该是以后工作中的重点内容,需要好好学习下,如何建立与解析

有一个Xml对象有一个newSerializer()的方法

Pull解析类似sax解析的事件解析,

首先要获得一个解析器:XmlPullParaser parser=Xml.newPullParser();

设置读取的方式:parser.setInput(InputStream,”UTF-8”);InputStream是传入进来的文件

XmlPullParser.START_DOCUMENT 文档开始开头

XmlPullParser.END_DOCUMENT 文档结束

解析时候,定义int type=parser.getEvenType();//读取事件的类型

Parser.getAttributeValue(0)这个是读取标签的属性的,第一个属性从0开始

 

 

九、数据库的增删改查

 在安卓的数据库中,不要加载驱动,不需要连接数据库,数据库就在本运用下,也没有其他类型,只有String类型。所以简化了操作

获取数据是一个游标工厂得到的

SQLiteOpenHelper 构造方法

public SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version)

context相当于全局的对象,name其实就是数据库的名称my.db,factory可以是null表示默认的。Version版本号,是从1开始的如果你想改变数据库,则这个Version必须增加。只有当执行读取或者写入的方法时候,数据库才真正的会被创建或者开启。用的时候才创建

第一次创建的时候用 OnCreate(dbname)

更新的时候用OnUpgreade(SQLiteDatabase db, int oldVersion, int newVersion

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值