bak 3.android 屏幕截图思路.

今天考虑了下,在android屏幕截图的思路.
当前有2种方式截图.
1.在手机上面,有款屏幕截图软件Screeshort 可以实现截图,需要root权限.
2.使用ddms包的功能,在pc上面截图.不需要root.

第一种方式的原理,应该是直接抓取framebuffer .所以需要root权限.
第二种方式就是利用了adb的lib com.android.ddmlib.AndroidDebugBridge 的功能来实现.

我考虑了下,在手机上面如何实现,不需要root来进行截图.
也可以利用adbd 的功能.可以模拟adb client的方式,连接上adbd ,然后进行截图.实际是在android 平台上面,来实现adb client的
功能.这个方案应该是可行的.只要研究下adb的源代码即可.

我在模拟器上大概验证了下.
adbd 实际上面是在手机上面监听了5307 端口.
可以使用busybox tenlet 127.0.0.1 5307 发现可以连接上.后面只要查找下,具体方法,就可以获取framebuffer service的数据了.有时间,我会实现这个思路的.

—-后续
Below is steps:
1). adb push a local.prop file to /data
adb push local.prop /data

The content of local.prop as below:
log.redirect-stdio=true

2). The test log added to native code looks link below:

fprintf(stdout,”test stdout log/n”);
fprintf(stderr,”test stderr log/n”);

3). restart emulator.

We can only seek stderr log from logcat messages with below command
line.

adb logcat stderr:* stdout:* *.S

打开adb track log

pc 还需要上面设置环境变量 set ADB_TRACE=adb
然后就可以使用了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值