minicap竖屏横屏切换

minicap的使用

mnicap如何使用看这篇帖子就够了。

minicap竖屏

-P 后面的参数格式:{RealWidth}x{RealHeight}@{VirtualWidth}x{VirtualHeight}/{Orientation}
Orientation可以理解为手机的旋转角度,可选参数为 0 | 90 | 180 | 270

init.js核心代码如下:

'use strict';

const execSync = require('child_process').execSync; 

var info = {};
/**
* 获取手机像素
*/
function getWMsize() {
	var data = execSync('adb shell wm size').toString();
	var size;
	var regex = /\d+x\d+/g;
	var match = regex.exec(data);
	size = match[0];
	return size;
}

/**
*初始化
*/
function initMinicap(){		
	var size = getWMsize();
	info.size = size;
	info.width = size.substring(0,size.indexOf('x'));
	info.height = size.substring(size.indexOf('x')+1);
	var cwd = process.cwd();
	cwd = cwd.replace(/\\/g,'/');
	execSync('adb shell LD_LIBRARY_PATH=/data/local/tmp /data/local/tmp/minicap -P '+ info.width +'x'+ info.height +'@'+ info.width/3 +'x'+ (info.height/3) +'/0');
	execSync('adb forward tcp:1717 localabstract:minicap');
}
//执行初始化
initMinicap();

minicap横屏

只需要将Orientation改成90或者270即可实现横屏,其他代码块跟竖屏代码块保持一致就ok。

minicap竖屏和横屏的切换

目前只会手动方式。
通过执行横屏或者竖屏的当前cmd窗口,ctrl+c即可停止。在这里插入图片描述
还有一种方式是进入到adb shell下执行如下命令:

在这里插入图片描述
等我研究出如何自动关闭minicap实现竖屏和横屏的切换时再来更新这个帖子吧。

minicap关闭

(1)java代码实现

	public static void excuteExec(int orientation){
		OutputStream out;
		InputStream in;
		try {
			Process pro = CMDutils.excuteCMD4Process(Content.ADB +" shell");
			out = pro.getOutputStream();
			in = pro.getInputStream();
			BufferedReader reader = new BufferedReader(new InputStreamReader(in));
			PrintWriter pw = new PrintWriter(out);
			pw.println("ps -ef|grep minicap");
			pw.flush();
			String s = reader.readLine();
			while (s!=null) {
				//获取所需pid 并杀掉pid的进程
				if(s.contains("shell") && s.contains(" minicap -P ")) {
					System.out.println(s);
					String[] strs = s.split(" ");
					System.out.println(strs[8]);
					//杀掉minicap进程
					pw.println("kill -9 "+strs[8]);
					pw.flush();
					//重新启动minicap进程
					MinicapActivity ac = new MinicapActivity();
					ac.restartMinicap(orientation);
				}
				s = reader.readLine();
			}
		} catch (IOException e) {
			System.out.println("ERROR:"+e.getMessage());
		}
	}

(2)python脚本实现

#查看minicap进程并杀掉
pid_lines = os.popen('adb shell "ps -ef|grep minicap"').readlines()
for one_line in pid_lines:
    pid_list = one_line.split()
    print(pid_list)
    if len(pid_list) > 7 and pid_list[7] != "grep" and pid_list[7] !="sh":
        os.system('adb shell "kill -9 "' + pid_list[1])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值