Android Screen Monitor真机抓屏教程

Android Screen Monitor (ASM) 是一个监控设备或模拟器屏幕的工具

下载ASM

https://code.google.com/archive/p/android-screen-monitor/

环境变量设置

安装jdk1.5以上的版本,并配置Pathjava bin目录

安装Android SDK需同时设置Pathplatform-tools和tools的目录。

使用:

将下载下来的asm进行解压,解压之后发现有一个asm.jar,我的事直接拷贝到sdk的根目录下,如图:

 

打开cmd进入asm.jar所在的目录,cmd中输入命令java -jar asm.jar,接下类你就会看到如下图片,当然前提是手机已连接电脑,并已连接到USB调试:

 

点击OK之后,你就可以看到你的手机屏幕了。

当然如果你觉得使用命令行方式打开asm麻烦,你可以直接双击asm.jar

异常处理:

如果你在使用cmd命令行方式打开asm时会出现如下异常:

Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5

解决方法:

使用Win +R 键调出运行窗口,输入regedit打开打开注册表编辑器,找到如下路径:HKEY_LOCAL_MACHINE\Software\JavaSoft,右键单击JavaSoft文件夹并单击New- >Key,输入Prefs作为文件夹名字即可。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中,截屏需要访问系统级别的权限,因此在后台Service中进行截屏需要获取特殊的权限。以下是一些实现步骤: 1. 在AndroidManifest.xml文件中添加权限声明: ``` <uses-permission android:name="android.permission.READ_FRAME_BUFFER" /> ``` 2. 创建一个Service,并在onCreate()方法中获取WindowManager和DisplayMetrics对象: ``` private WindowManager mWindowManager; private DisplayMetrics mDisplayMetrics; @Override public void onCreate() { super.onCreate(); mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE); mDisplayMetrics = new DisplayMetrics(); mWindowManager.getDefaultDisplay().getMetrics(mDisplayMetrics); } ``` 3. 在Service中创建一个Bitmap对象,并使用MediaProjectionManager类来获取MediaProjection对象: ``` private MediaProjectionManager mMediaProjectionManager; private MediaProjection mMediaProjection; private ImageReader mImageReader; private int mScreenWidth; private int mScreenHeight; @Override public int onStartCommand(Intent intent, int flags, int startId) { mMediaProjectionManager = (MediaProjectionManager) getSystemService(MEDIA_PROJECTION_SERVICE); mMediaProjection = mMediaProjectionManager.getMediaProjection(Activity.RESULT_OK, (Intent) intent.getParcelableExtra("data")); mScreenWidth = mDisplayMetrics.widthPixels; mScreenHeight = mDisplayMetrics.heightPixels; mImageReader = ImageReader.newInstance(mScreenWidth, mScreenHeight, PixelFormat.RGBA_8888, 1); mMediaProjection.createVirtualDisplay("ScreenCapture", mScreenWidth, mScreenHeight, mDisplayMetrics.densityDpi, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mImageReader.getSurface(), null, null); mHandler.postDelayed(new Runnable() { @Override public void run() { startCapture(); } }, 1000); return super.onStartCommand(intent, flags, startId); } private void startCapture() { Image image = mImageReader.acquireLatestImage(); if (image != null) { Bitmap bitmap = Bitmap.createBitmap(mScreenWidth, mScreenHeight, Bitmap.Config.ARGB_8888); bitmap.copyPixelsFromBuffer(image.getPlanes()[0].getBuffer()); image.close(); // 在这里进行截屏操作 } } ``` 4. 在startCapture()方法中进行截屏操作,并将截屏结果保存到文件或者发送到服务器等。 需要注意的是,上述代码只是截取屏幕的一帧,如果需要实现视频录制或者连续截屏,需要做相应的修改。此外,由于截屏需要访问系统级别的权限,因此需要确保用户已经同意了相关权限。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值