Android

博客内容提要:
  • 01.单元测试的操作步骤
  • 02.私有文件API的操作
  • 03.外部存储SDcard的使用
  • 04.文件访问权限

1.常见单位

  • px 实际像素: 真实物理像素(不推荐使用)
  • dp 独立像素: 相对设备的像素
  • sp 比例像素: 应用于文字的大小

2.案例–QQ大盗

1.layout设计

  • LinearLayout标签下设置gravity=”center_horizontal”,让其子控件居中显示
  • 标签: 插入图片,属性: android:src=”@drawable/dyr”,图片来源
  • 标签: 文本输入,属性hint=”提示内容”: 提示输入内容,属性inputType=”textPassword”: 输入的密码用”.”替换

2.关心控件:定义字段,找到控件: 文本控件,button控件

3.设置点击事件: bt_login.setOnClickListener(this);实现OnClickListener接口

逻辑判断

  • 判断字符串是否为空TextUtils.isEmpty(String aa)
  • SmsManager 发送短信对象获取方法SmsManager.getDefault()
  • smsManager.sendTextMessage(“5556”, null, qq+”–”+psd, null, null);

4.设置权限发送短信权限: android.permission.SEND_SMS

3.按钮点击事件的四种写法

    1. 内部类实现接口
    1. 匿名内部类
    1. 让本类实现onclickListener接口(真对多个控件,开发中常用)
    1. xml文件设置点击事件,绑定方法

4.测试

    1. 黑盒测试: 不知道源代码,只测试输入和输出
    1. 白盒测试: 知道源代码,可以编写一些辅助逻辑进行测试
    1. 压力测试: PressureTest ,给后台用的,主体向被观察者布置一定量任务和作业,借以观察个体完成任务的行为。
    1. 冒烟测试:在Android环境中,通过monkey,在命令行中输入add shell,进入Linux命令,即可测试,常用测试命令:测试整个系统: monkey count(事件次数); 测试某个程序: monkey -p 包名事件的数量。

简单压力测试步骤:

    1. 命令框输入adb shell
    1. # 下输入monkey
    1. 输入测试次数 monkey 次数

3.单元测试

* 1. src下创建测试包:写一个类继承AndroidTextCase
* 2. 创建方法向测试框架抛出异常(方法必须用public修饰)
    * 1.在方法中创建需要测试的对象
    * 2.调用需要测试的逻辑,获取到测试结果
    * 3.调用assertEquals(实际结果, 测试所的结果);比较实际结果与测试所得结果
* 3. 在清单文件配置:测试指令: <instrumentation android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="com.itheima.test"></instrumentation>及测试jar包(包名:R文件包名): <uses-library android:name="android.test.runner"/> 

* 4. 运行单元测试:打开测试类AndroidTextCase所在的类
–>在outline视图里面运行–>如果显示绿条表示测试成功,代码OK||如果红条表示测试失败,代码有问题

5. 数据存储

入门案例

  • qq登录界面思路
  • 1.设置layout:
    • 采用线性布局,在开头设置gravity=”center_horizontal”属性,让其子控件居中显示
    • 设置文本输入控件EditText,多选框CheckBox及登录按钮Button
  • 2.找到关系控件,设置按钮监听事件,让本类继承OnClickListener接口,并重写它的方法
  • 3.写业务逻辑:
    • 1>. 获取文本输入内容(即qq号及密码),判断qq及密码不能为空(TextUtils.isEmpty(qq))
    • 2>. 判断是否记勾选复选框,如果选择,将输入的密码及qq保存到应用私有文件夹中(i/o流)
    • 3>. 讲数据回显到文本框中: 读入流BufferedReader,读取文件,分割获取到的字符串,讲字符串显示到文本框中et_qq.setText(String string);

文件存储(Android的Java程序是运行在安卓系统中的,文件是不能存储在项目中的)

  • 私有文件存储: 应用程序可以把文件存储在自己的文件夹中(文件目录: this.getFilesDir();及缓存目录: this.getCachDir();)
  • 外部文件存储: 应用程序可以把文件存储在sd卡中,需要给权限(可读及可写及)
    • 1.检查SD卡是否处于挂载: Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
    • 2.检查SD卡的可用空间: long size = Environment.getDownloadCacheDirectory().getFreeSpace();String fileSize = Formatter.formatFileSize(this, size);
  • 将文件中密码和qq回显

6. Android中的上下文:

  • this.getFilesDir();//==/data/data/包名(R文件所在的包)/file file目录保存重要的配置信息
  • this.getCachDir();//==/data/data/包名(R文件所在的包)/cache 缓存目录,保存一些不重要的临时文件(当系统内存不足是系统会自动清除缓存)

7. 文件权限

  • 应用程序在data/data/自己包名中的文件是私有的,不能被其他应用程序读取
  • -rwxrwx—
  • 从左到右:
    • 文件主权限(用户): 1.”-“表示文件类型; 2.”r”表示文件可读; 3.”x”可执行或可执行的 ;
    • 组用户权限(群组): 4.”-“表示文件类型; 5.”r”表示文件可读; 6.”x”可执行或可执行的 ;
    • 其它用户权限(其它): 6,7,8 表示无存储权限.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值