Python学習ログ2:2つのuiautomatorパフォーマンス向上テクニック
2321 ワード
最近は自分のAGIアシスタントに目を書いたり、最初はrequestsライブラリを使ったりしていましたが、その後多くの情報が暗号化されていることがわかり、グラフィック認識やOCRを導入する前にuiautomatorを使いやすく処理するためにhttps://github.com/xiaocong/uiautomator、いくつかの問題を発見して最初に試してみました
このコードの実行効率は非常に低いことが分かった.何気なく見つけて使う
の方法は、countがinfoよりも効率が高いことを示しています.
もう1つのパフォーマンスの問題は、公式ドキュメントがもたらしたものです.
その中で、for view in d()の方式は性能が極めて低く、1つの要素を取るたびにI/Oがかかるようで、基本的に1つのリストの読み取りに25-37秒の待ち時間がかかり、この問題を発見した後、dump()を使ってxmlテキストを出し、さらにxml解析を行ごとに行い、1つのlistが1秒未満で解析が完了する
途中uiautomator 2も試してみましたが、ポートデバッグの問題でpython 2が必要になりました.7、最後にこの性能のもっと良いライブラリを放棄しました.macには持参していますが.xバージョンのpythonですが、しばらく混載していたため、付属のビューソフトを使用するとandroid SDKが持参したuiautomatorViewerが携帯電話に接続できないか、uiautomatorを交換します.
などのツールが動作する次の段階は、ツールのフレームワークにアップグレードモジュールを置き換えることです.例えば、視覚部分はIDなどから図形認識にアップグレードすることができ、手と脳はアップグレード自己学習を考慮することができ、自己編集検証スクリプトを編集することができ、自分で自分のコードを書くことができるAIが良いAIです.
進展については、現在のアシスタントはすでに各応用市場の連想語の収集を完成させることができ、市販ASO 100のデータに似ているが、アシスタントのカスタマイズであるため、次に分析と意思決定モジュールを書き、インターネット運営が毎日データ分析データを見つめている重複労働の足かせを解放することを目的としている.
前期はやはり決定を重視して、迅速に決定モジュールの編纂に入ることを望んで、少なくともこのツール化の形態のために1000条以上の決定を書いて、分析して精錬した後に自動化の段階に入って、完成した後に抽象的な思考は本当にAGIの段階に入ります.
AGI:人間をもっと集中させる
try:
d(' ').info
expect:
print(' ')
このコードの実行効率は非常に低いことが分かった.何気なく見つけて使う
if d(' ').count==0:
print(' ')
の方法は、countがinfoよりも効率が高いことを示しています.
もう1つのパフォーマンスの問題は、公式ドキュメントがもたらしたものです.
# get the count of views with text "Add new" on current screen
d(text="Add new").count
# same as count property
len(d(text="Add new"))
# get the instance via index
d(text="Add new")[0]
d(text="Add new")[1]
...
# iterator
for view in d(text="Add new"):
view.info # ...
その中で、for view in d()の方式は性能が極めて低く、1つの要素を取るたびにI/Oがかかるようで、基本的に1つのリストの読み取りに25-37秒の待ち時間がかかり、この問題を発見した後、dump()を使ってxmlテキストを出し、さらにxml解析を行ごとに行い、1つのlistが1秒未満で解析が完了する
def xmlKeyword(file,textBefore,textBehind):
eList=''
f=open(file)
for line in f:
beginNum = line.find(textBefore) + len(textBefore)
endNum = line.find(textBehind, beginNum)
result = line[beginNum:endNum]
# 1, endNum -1
if endNum == -1:
result=''
# 2, ,
if ' ' in result or result==' 1' or result==' 2':
result=''
print(result)
if result != '':
eList=eList + result + '
'
f.close()
return eList
途中uiautomator 2も試してみましたが、ポートデバッグの問題でpython 2が必要になりました.7、最後にこの性能のもっと良いライブラリを放棄しました.macには持参していますが.xバージョンのpythonですが、しばらく混載していたため、付属のビューソフトを使用するとandroid SDKが持参したuiautomatorViewerが携帯電話に接続できないか、uiautomatorを交換します.
などのツールが動作する次の段階は、ツールのフレームワークにアップグレードモジュールを置き換えることです.例えば、視覚部分はIDなどから図形認識にアップグレードすることができ、手と脳はアップグレード自己学習を考慮することができ、自己編集検証スクリプトを編集することができ、自分で自分のコードを書くことができるAIが良いAIです.
進展については、現在のアシスタントはすでに各応用市場の連想語の収集を完成させることができ、市販ASO 100のデータに似ているが、アシスタントのカスタマイズであるため、次に分析と意思決定モジュールを書き、インターネット運営が毎日データ分析データを見つめている重複労働の足かせを解放することを目的としている.
前期はやはり決定を重視して、迅速に決定モジュールの編纂に入ることを望んで、少なくともこのツール化の形態のために1000条以上の決定を書いて、分析して精錬した後に自動化の段階に入って、完成した後に抽象的な思考は本当にAGIの段階に入ります.
AGI:人間をもっと集中させる