2017-05-01 9 views
1

나는 활동의 레이아웃보기를 가져오고 필요한 항목의 경계를 얻기 위해 구문 분석 작업에 노력하고 있습니다. 내가 "adb exec-out uiautomator dump /dev/tty"를 사용하여 레이아웃보기를 얻을 uiautomator보기를 사용하고 있지만 내가 원하는 내가 LINQ to XML의를 사용하여 분석을 위해 사용할 수 있도록이 파일에 얻을파일에 uiautomator 덤프 가져 오기 및 바운드 가져 오기 위해 구문 분석

내가 Is there a way to get current activity's layout and views via adb? 아니라에서 답변을 겪었
var xml = XDocument.Load(output); 

많은 도움을 받고 있습니다. 포인터를 올려 놓으십시오.

+0

내가 내가 다른 어떤를 사용할 수 있다고 생각하지 않는 대신 –

답변

0

AndroidViewClient/culebradump 도구를 사용하면

$ dump -b 

, 당신에게

android.widget.FrameLayout ((0, 0), (1080, 2048)) 
    android.widget.TextView com.example.app:id/text Something ((64, 64), (221, 123)) 
    ... 

자세한 내용 here 같은 것을보기 경계를 제공 정확하게 그 많은, 더 많은 물건을 할 수 있습니다. /storage/sdcard/uiAuto.xml이

이 파일에 덤프를두고 덤프 uiautomator ADB 쉘 'uiAuto.xml'

+0

을 구문 분석 현재의 순간에 방법이 없다고 생각 라이브러리 및 adb.exe를 사용하도록 바인딩합니다. 클릭하려는 항목/버튼에 대한 특정 ID가없는 경우도 마찬가지입니다. 출력을 xml로 가져온 다음 우리의 용도에 따라 파싱 할 수 있다면 좋을 것입니다. adb exec-out uiautomator 덤프 - XML ​​방식으로 출력하지만, 문제는 출력을 XDocument.Load (출력)에서로드 할 수있는 문자열/파일에 저장할 수 없다는 것입니다. – luckycse

+0

ID가없는 (또는 ID 반복됨) 경우 AndroidViewClient는 항상 모든보기에 * 고유 ID *를 할당합니다. 'bound '가 무슨 뜻인지 이해하지 못 하겠지만, AVC는'adb'에 연결하는'adbclient'를 사용합니다. –

+0

일부 환경 제약으로 인해 adb.exe 외의 다른 방법을 사용할 수 없습니다. AndroidViewClient를 설치할 수 없다는 의미입니다. (예 : (64, 64), (221, 123)) – luckycse

0

당신은이 작업을 수행 할 수 있습니다. 이제이 파일을 로컬 파일로 가져 와서 읽을 수 있습니다.

가 사용 당깁니다 : ADB 풀 /storage/sdcard/uiAuto.xml [anylocalfile]