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月 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
7月 252017
 

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

如下:

 

 Posted by on 2017-07-25
7月 192017
 

滚动到底部:

滚动到顶部:

 

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

Android中的assets目录

 分类:Android, Java 阅读 (92)  Android中的assets目录已关闭评论
6月 252017
 

放在res目录下的资源会生成id,放assets的不会…

存放一些二进制外挂文件,和res下的raw作用差不多。

在使用Android Studio开发时,放在下面这个位置src/main/assets

 Posted by on 2017-06-25
6月 182017
 

1. 打开菜单Android Studio->Preferences…

2. 打开左侧导航列表Tools->External Tools

3. 点击增加外部工具按钮,在弹出的按钮输入下图中的内容:

4. 补充:去掉Open console for tool output前面的对勾

5.  点击ok完成后,我们在文件列表或者代码编辑器上方的文件名上右键,在菜单中选择”External Tools”,然后选择新建的工具就可以方便的在文件管理器中查看文件了

 Posted by on 2017-06-18