今天开始介绍了下px与dp还有sp,都是与像素有关,个人理解px就是绝对像素,一个不可变的定值,无论在何种分辨率下都是固定大小,而dp则会根据分辨率的大小来变化,sp要用于设置字体的大小固很少用,主要用dp.
接着来了一个比较有意思的小案例,当年风靡全国的聊天软件QQ,经常出现密码被盗的事情,我们就来编写最原始的这种盗号软件是如何实现盗取用户密码的.代码关键点就是得点击登陆button的时候通过点击事件,将用户填写的账号跟密码通过短信形式发送给盗号的手机中,其中牵扯到发短信权限.
之后开始学习四种点击事件:
1.内部类实现onClickListener的接口。太麻烦,真实开发不使用
2.匿名内部类实现onclickListener,new的是接口的实现类。
3.让当前的Activity实现onClickListener的接口。
4.在布局xml文件里面声明onclick属性="方法名"。
然后讲了几种常见测试分类
一、根据是否知道源码
黑盒测试:不知道源码。
白盒测试:知道源码。
二、根据测试粒度分类
方法测试:FunctionTest,粒度最低,测试单个方法。
单元测试:JunitTest方法里面会调用其他的方法。
联调测试:IntegrationTest后台与前台集成,各模块之间的集成测试。
三、根据测试次数分类
冒烟测试:顾名思义,把设备一直测试到冒烟为止。Android下提供给我们一种冒烟测试的功能Monkey
Test猴子测试,在命令行输入adb shell,进入Linux命令行。测试整个系统命令:monkey
1000(事件的数量);测试某个程序:monkey -p包名事件的数量。
压力测试:PressureTest,给后台用的,主体向被观察者布置一定量任务和作业,借以观察个体完成任务的行为。
Android Junit测试
在JavaSE中我们可以使用Junit进行单元测试,Android也提供了单元测试框架供我们使用,不同的是该框架可以模拟Android上下文环境,可以在单元测试中通过getContext()方法获取到context上下文进行使用。注意的是:需要把应用程序部署到真实的手机或者模拟器,在dalvik虚拟机里面运行。
Logcat的使用
Android的Logcat用于显示系统的调试信息,Log是android.util.Log包下的类,用于日志的输出。日志总共有5种输出级别,从低到高分别为:verbose、debug、info、warn、error。
Android下的数据存储
Android系统中的五种数据存储方式:
l文件存储:以I/O流形式把数据存入手机内存或者SD卡,可以存储大数据,如音乐,图片或者视频等。
lSharedPreferences:它本质上是一个XML文件,以Map形式存入手机内存中。常用于存储简单的参数设置,如QQ登陆账号密码的存储,窗口功能状态的存储等,使用起来简单、方便。
lSQLite数据库:SQLite是一个轻量级,跨平台的数据库。数据库所有信息都存储在单一文件内,占用内存小,并且支持基本SQL语法,是项目中经常被采用的一种数据存储方式,通常用于存储用户信息等。
lContent Provider:内存提供者,Android四大组件之一,以数据库形式存入手机内存,可以共享自己的数据给其他应用使用。
l网络存储:把数据存储到服务器,不存储在本地,使用的时候直接从网络获取,避免了手机端信息丢失以及其他的安全隐患。
内存存储
当应用安装到Android后,系统会根据每个应用的包名创建一个/data/data/包名/的文件夹,访问自己包名下的目录是不需要权限的,并且Android已经提供了非常简便的API可以直接去访问该文件夹。
外部存储SD卡
应用程序可以把数据存储在外部存储设备上,也就是常见的SD卡上(该文件通常位于mnt/sdcard目录下,不同产商生产的手机这个路径可能不同),但是在操作sd卡的时候最好去判断下sd卡是否可用以及剩余空间是否足够,因为有的手机可能没有插sd卡。
SharedPrefrerences存储
使用SharedPrefrerences进行存储是最方便也是最常用的,存储的时候通过key/value键值对的形式保存在XML文件中,该文件位于:data/data/包名/shared_prefs文件夹中。使用的时候,通过context.getSharedPrefrences(Stringname,int mode)获取SharedPrefrences的实例对象,在Activity中可以直接使用this代表上下文,如果不是在activity中需要使用Context上下文来获取。
文件权限
Android是基于Linux的操作系统,因此Android的文件权限其实就是Linux的文件权限。在Linux中一个文件一共有三个组别:用户、群组、其它。其中每个组包含三种权限:读r、写w、执行x,也就是说一个文件共有9个权限属性.