`
MyEyeOfJava
  • 浏览: 1151361 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:71140
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

[android]android自动化测试十二之代码控制截图

阅读更多
该方法适用于对某个Activity进行截图,不包含状态栏,在使用之前要保证view加载完毕才可以进行使用。
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.util.Log;
import android.view.View;

public class ScreenShot {
    // 获取指定Activity的截屏,保存到png文件
    private static Bitmap takeScreenShot(Activity activity) {
        // View是你需要截图的View
        View view = activity.getWindow().getDecorView();
        view.setDrawingCacheEnabled(true);
        view.buildDrawingCache();
        Bitmap b1 = view.getDrawingCache();

        // 获取状态栏高度
        Rect frame = new Rect();
        activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
        int statusBarHeight = frame.top;
        Log.i("TAG", "" + statusBarHeight);

        // 获取屏幕长和高
        int width = activity.getWindowManager().getDefaultDisplay().getWidth();
        int height = activity.getWindowManager().getDefaultDisplay()
                .getHeight();
        // 去掉标题栏
        // Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);
        Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height
                - statusBarHeight);
        view.destroyDrawingCache();
        return b;
    }

    // 保存到sdcard
    private static void savePic(Bitmap b, String strFileName) {
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(strFileName);
            if (null != fos) {
                b.compress(Bitmap.CompressFormat.PNG, 90, fos);
                fos.flush();
                fos.close();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 程序入口
    public static void shoot(Activity a) {
        ScreenShot.savePic(ScreenShot.takeScreenShot(a), "sdcard/xx.png");
    }
}
分享到:
评论
1 楼 httpfdfdfd 2012-05-09  
[/color][color=brown]fdfd[color=violet][/color]fdf

相关推荐

    腾讯Android自动化测试实战电子书

    腾讯作为国内互联网巨头,其在Android自动化测试方面有着丰富的经验和实践,这本书“腾讯Android自动化测试实战电子书”正是对此领域的深度探讨。 首先,我们来了解一下Android自动化测试的基本概念。自动化测试是...

    Android代码-安卓app自动化测试项目

    本项目名为"Android代码-安卓app自动化测试项目",其主要目标是实现对安卓应用程序的自动化测试流程,以提高测试效率并减少手动测试的工作量。这个项目的核心是利用各种自动化测试框架和技术,确保应用程序在不同的...

    Android 自动化测试项目

    这个名为"Android自动化测试项目"的资源提供了一个全面的框架,专为Android应用程序设计,旨在简化测试流程并增强测试覆盖率。下面我们将深入探讨这个框架所涉及的主要知识点。 首先,**自动化测试** 是一种利用...

    Android自动化测试手段之Robotium

    Android自动化测试能够显著提高测试效率,减少手动测试的工作量,并确保应用的稳定性和质量。今天我们将深入探讨一个名为Robotium的自动化测试框架,它是专门为Android应用设计的。 **Robotium简介** Robotium是一...

    [android]android自动化测试十三之monkeyRunner自动化框架

    【Android自动化测试十三之MonkeyRunner自动化框架】 MonkeyRunner是Android SDK提供的一种强大的自动化测试工具,它允许开发者通过编写Python脚本来实现对Android设备或模拟器的控制,进行UI级别的自动化测试。...

    测试自动化实践 淘宝Android UI自动化测试的探索 共23页.pptx

    淘宝Android UI自动化测试实践主要围绕TMTS(Taobao Mobile Test System)展开,这是一个专为无线应用设计的UI自动化测试框架。TMTS的核心是基于Android的Instrumentation机制,能够支持发布版本的测试,同时也提供...

    [android]am自动化测试框架(原创)

    `am`命令行工具是Android系统中用于控制和管理应用的一种实用程序,它在自动化测试框架中扮演着重要角色。这篇原创的博文——"[android]am自动化测试框架"探讨了如何利用`am`命令来构建一个高效的自动化测试解决方案...

    Android手机自动化测试.docx

    Android 手机自动化测试概述 Android 手机自动化测试是指使用自动化测试工具和技术来测试 Android 手机的软硬件功能和性能,以确保手机的稳定性、可靠性和兼容性。本文概述了 Android 手机自动化测试的原理、分类、...

    Android APK自动化测试

    在Android应用开发中,自动化测试是一项至关重要的任务,它能够帮助开发者确保代码的质量,提高测试效率,减少手动测试带来的繁琐工作。"Android APK自动化测试"的主题聚焦于如何使用各种工具和技术来实现对APK应用...

    Android自动化测试(MonkeyRunner)脚本python

    在Android开发过程中,自动化测试是确保应用稳定性和性能的关键步骤。MonkeyRunner是Android SDK提供的一种工具,用于编写和执行对Android设备或模拟器的自动化测试。这个工具通过Python脚本来控制设备,进行各种...

    Android自动化测试初探

    首先,我们了解到传统的Android自动化测试通常依赖于JUnit框架和Android SDK中的`android.test`包,但这需要应用程序的源代码,这对于许多只做黑盒测试的测试工程师来说并不实际。 Android系统中的权限控制严格限制...

    Android 自动化测试框架

    Instrumentation是Google早期提供的Android自动化测试基础工具,它提供了一种低级别的接口来控制和监控应用的行为。虽然可以用来编写测试,但它较为底层,通常需要结合其他框架如JUnit或Robotium来实现更高级别的...

    Android自动化测试

    总结来说,Android自动化测试是通过工具和框架进行的高效、可重复的测试方式,其中Robotium是流行的UI测试框架之一,而`android-junit-report`则帮助我们生成详细的测试报告。这两个组件的结合使用,能够显著提升...

    [android]Monkey自动化测试参数

    MonkeyRunner是Android SDK中提供的一个更高级的自动化测试工具,它可以编写Python脚本来执行更复杂的测试任务,包括屏幕截图、图像比较、自定义事件序列等。MonkeyRunner可以与Monkey测试结合使用,提供更全面的...

    行业分类-设备装置-基于android平台的自动化测试方法及测试工具.zip

    本压缩包“行业分类-设备装置-基于android平台的自动化测试方法及测试工具.zip”提供了关于如何在Android平台上进行自动化测试的方法和工具的详细资料,特别是针对设备装置的测试。 首先,我们来了解一下自动化测试...

Global site tag (gtag.js) - Google Analytics