2.日志法
a、启动待测apk
b、开启日志输出:adb logcat>D:/log.txt
c、关闭日志输出:ctrl+c
d、查看日志
直接搜索 :Displayed
找寻:Displayed com.mm.android.hsy/.ui.LoginActivity: +3s859ms
appPackage = com.mm.android.hsy
appActivity = .ui.LoginActivity
#JDK
export JAVA_HOME=/Library/Java/Home
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:/usr/local/Cellar/ant/1.10.1/libexec/lib/ant-launcher.jar;
export PATH=$PATH:$JAVA_HOME/bin
#ANDROID
export ANDROID_HOME=/Users/zhenglong/Library/Android/sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=”/Users/zhenglong/anaconda/bin:$PATH”
export ANT_HOME=/usr/local/Cellar/ant/1.10.1
使用 ThreadPoolExecutor 相对于手动实现的一个好处在于它使得 任务提交者更方便的从被调用函数中获取返回值。例如,你可能会像下面这样写:
1 |
|
例子中返回的handle对象会帮你处理所有的阻塞与协作,然后从工作线程中返回数据给你。 特别的,a.result() 操作会阻塞进程直到对应的函数执行完成并返回一个结果
多进程代码 示例
1 | def find_all_robots(logdir): |
https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.1.tar.gz