我在我们 Android 项目里增加了一个日志输出(700ms 一次),单独运行日志过滤时没有问题,能收集 16 个左右。
但是如果放到 appium 里,同样的代码,却最多只能收集 8 个左右,而却很大概率只能收集 2~3 个,数量差距很明显。
刚开始寻找原因时,发现 appium 的日志里有好多使用了 adb,怀疑是同时使用 adb 影响了其稳定性,但是下面这种方式又可以一个不落的保存所以日志。
虽然勉强算是解决了问题,可是不知道哪里出的问题,也不知道怎么查。。。。
@seveniruby 不好意思打扰了,受累给一下查找问题的方向也行,谢谢。
这是代码,想试验可以复制:
import os
from multiprocessing.dummy import Pool as ThreadPool
import time
import signal
def ur(a):
if a == 1:
print time.ctime()
try:
time.sleep(12)
pidd = os.getpid()
os.kill(pid=pidd, sig=signal.SIGKILL)
except Exception, e:
print e
int('adsadsads')
elif a == 2:
print time.ctime()
aa = list([])
while 1:
bb = os.popen("adb shell logcat -t 1 |grep dropped:").readlines()
if len(bb) > 0:
if len(aa) > 0:
if bb[0] != aa[-1]:
aa += bb
print len(aa)
else:
aa += bb
print len(aa)
pool = ThreadPool(4)
lists = list([1, 2])
pool.map(ur, lists)
pool.close()
pool.join()