bcoder

9月 122017
 

1. adb shell input text

向文本框中输入文本,如将光标定位到一个输入框后执行下面的命令:

貌似不能输入中文

输入特殊字符时需要在特殊字符前加上“\”,比如空格(在Mac下测试)

2. adb shell input keyevent

模拟按键,可以是数字、符键或者是功能按键,keyevent后可以是按键的码值或者按键的名称,按键列表见文末的介绍,举例如下:

3. adb shell input [touchscreen|touchpad] tap x y

touchscreen – 触摸屏幕,touchpad – 不知道是啥
tap 点击的意思,和下面的swipe相对应
x,y – 要点击的位置的横纵轴坐标,举例如下:

4. adb shell input [touchscreen|touchpad] swipe x1 y1 x2 y2

touchscreen – 触摸屏幕,touchpad – 不知道是啥
swipe – 滑动、滑屏操作
x1 y1 x2 y2 – 滑动起始和终止位置的横纵轴坐标,举例如下:

5. adb shell input trackball press

模拟轨迹球按下(未测试过)
 

6. adb shell input trackball roll <dx> <dy>

模拟轨迹球滚动(未测试过)
 
附一:按键码列表:

 

9月 052017
 

使用如下命令,可以对android手机进行截图

adb shell screencap -p /sdcard/screen.png

adb shell /system/bin/screencap -p /sdcard/screenshot.png

命令执行后,截图存放在手机的/sdcard下的screen.png

使用adb pull可以将图片拷贝到本地电脑中
adb pull /sdcard/screen.png d:\

不支持图片旋转、压缩等选项,如需对图片自动化处理需要借用第三方命令行软件

 Posted by on 2017-09-05
9月 032017
 

  在monkeyrunner执行python脚本的input函数时,输入内容按回车后,input命令无法结束,后面的脚本无法执行,这是jython中的一个bug,对应的版本是jython-standalone-2.5.3.jar。

  解决办法是下载jython-standalone-2.5.4-rc1.jar,不能下载太高版本,比如jythone2.7,与2.5.3所使用的环境不一致,可能会无法运行。

  jython-standalone-2.5.3.jar所在的目录为: {android sdk根目录}\tools\lib,下载新版本后把jython-standalone-2.5.3.jar删除,把jython-standalone-2.5.4-rc1.jar拷贝到此目录即可。下载地址如下:

  http://www.jython.org/downloads.html

8月 312017
 

  当我们的项目的某些属性和第三方库中的属性有冲突时或者我们想修改第三方库中某些资源的属性时,我们就需要使用tools:replace来处理。

1. 有冲突的情况

比如第三方库中也定义了application@icon, application@label属性,则会与你的项目发生冲突,编译时报如下错误:

那么解决办法就是在你的Application节点中加入tools:replace来表示替换三方库中的相关属性,如下:

2. 替换三方库中的属性

比如在使用二维码识别的支持库zxing-android-embedded时,需要自定义拍照Activity的屏幕方向,则在AndroidManifest.xml中加入相关的activity节点,并覆盖其属性,xml如下:

 

注意:

使用tools:replace需要在manifest根节点加上相关的引用,如下xmlns:tools那一行:

 

 Posted by on 2017-08-31
8月 082017
 

首先备份sources.list

然后编辑sources.list

在原来的内容前面加上#,注释掉原来的内容,然后添加下面的内容

然后再执行更新就可以了

 

8月 062017
 

volatile保证共享变量在多程中的可见性

即一个共享变量在线程1中被修改在,在线程2中读取这个变量时,立即得到最新的值

volatile不能保证变量的原子性

比较经典的一个例子就是用一个boolean变量判断线程是否停止的例子,如下:

如果isrunning不加volatile修饰,thread2一直无法停止,因为无法获取到isrunning的更新状态。

volatile修饰对象

被volatile修饰的对象,当对象内所有成员的值变化时都会更新到主存中, 以确保成员的可见性?(未亲自测试过)

一些其他的见解:

摘自:https://bbs.csdn.net/topics/390413948?page=1

 

 Posted by on 2017-08-06

adb monkey支持的事件

 分类:Android, Java 阅读 (1,836)  No Responses »
7月 252017
 

关于monkey脚本所支持的事件,请参考android源码下的development/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java

如下:

 

 Posted by on 2017-07-25
7月 192017
 

滚动到底部:

滚动到顶部:

 

Android开源框架总结

 分类:Android, Java 阅读 (1,113)  No Responses »
7月 142017
 

下面是我曾经使用过的感觉不错的Android开源框架,零零星星会做一些总结,如果大家有好的观点欢迎留言。

1. greenDao – 数据库对象关系映射(ORM)

github地址:https://github.com/greenrobot/greenDAO

2. logger – 日志记录类

github地址:https://github.com/orhanobut/logger

3. gson – json数据解析工具

github地址:https://github.com/google/gson

4. okhttp – 网络请求类

https://github.com/square/okhttp

 Posted by on 2017-07-14

Laravel中同时使用union和paginate的问题

 分类:PHP 阅读 (1,357)  Laravel中同时使用union和paginate的问题已关闭评论
6月 272017
 

默认情况下,两者不能同时使用,会出现sql语句报错的问题

解决方法一:

在mysql中建一个视图来承载union数据查询,然后用paginate来分页

解决方法二:

使用array_slice来手动给get的查询结果分页(未测试此方案)

参考链接:

https://stackoverflow.com/questions/25338456/laravel-union-paginate-at-the-same-time

https://www.cnblogs.com/smallyi/p/7427377.html