day43 ZXing,Leaks的使用

本文介绍了Android中ZXing库的使用,包括依赖引入和权限设置。接着讨论了内存泄漏,特别是Leaks工具的检测方法,并概述了白盒测试和黑盒测试的定义与流程。最后提到了Android测试工具Junit、Monkey测试的基本概念和命令,以及如何在Application中检测内存泄漏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ZXing

官网:https://github.com/yipianfengye/android-zxingLibrary
依赖: implementation ‘cn.yipianfengye.android:zxing-library:2.2’
权限:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    ImageView imageView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btn1).setOnClickListener(this);
        findViewById(R.id.btn2).setOnClickListener(this);
        imageView = findViewById(R.id.img);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.btn1:
                Bitmap bitmap = CodeUtils.createImage("呵呵", 200, 200, BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher));
                imageView.setImageBitmap(bitmap);
                break;
            case R.id.btn2:
                Intent intent = new Intent(this, CaptureActivity.class);
                startActivityForResult(intent,1001);
                break;
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1001 && resultCode == Activity.RESULT_OK){
            String stringExtra = data.getStringExtra(CodeUtils.RESULT_STRING);
            Toast.makeText(this, stringExtra, Toast.LENGTH_SHORT).show();
            Log.e("####",stringExtra);
        }
    }
}

Leaks

检测内存泄漏

debugImplementation "com.squareup.leakcanary:leakcanary-android:1.5.4"
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:1.5.4"
testImplementation "com.squareup.leakcanary:leakcanary-android-no-op:1.5.4"
  1. 测试分类:
    白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。
    黑盒测试:又被称为功能测试、数据驱动测试或基于规格说明的测试,是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。

  2. 测试流程
    (1).公司项目立项,测试工程师参加项目立项
    (2).根据项目模块以及功能,指定具体详细的测试用例
    (3).在程序开发人员提交测试后,测试人员(功能测试)测试软件功能界面的完整度;
    (4). 如出现bug,使用bug服务器指向开发人员解决,在进行复测;
    (5).所有bug解除后,开发人员进行打包适配;
    (6).测试以及UI人员根据各个机型所安装软件运行效果进行测试,配合开发做兼容适配;
    (7).兼容完成后产品人员根据不同的应用市场提交不同的渠道包。

  3. Android常用测试工具:

Junit使用:
@Before:测试方法每次执行Test方法之前都会执行的方法注解
@Test:测试方法体注解
@After:测试方法每次执行完一个Test方法后都会执行的方法

monkey测试:
Monkey 是什么?
Monkey 就是SDK中附带的一个工具。Monkey 测试的目的? :该工具用于进行压力测试。 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出现的问题。Monkey 测试的特点? Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性。

Monkey常用命令:
标准的monkey 命令 [adb shell] monkey [options] , 例如: adb shell monkey -v ,adb shell monkey –p package–v 500,产生500次随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。 上面只是一个简单的例子,实际情况中通常会有很多的options 选项 2).四大类—— 常用选项 、 事件选项 、 约束选项 、 调试选项

  1. Android云测试:
    百度云测试

Leaks检测内存泄漏
在Application中添加:

LeakCanary.install(this);

参考博客:
https://blog.youkuaiyun.com/fancy_xty/article/details/51595313

内存泄漏简介

https://blog.youkuaiyun.com/daiwenbin/article/details/19160171

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值