{"id":17318502,"url":"https://github.com/yaming116/uiautomatorview","last_synced_at":"2025-06-28T17:32:34.243Z","repository":{"id":53902952,"uuid":"140216932","full_name":"yaming116/uiautomatorview","owner":"yaming116","description":"给uiautomatorview添加xpath等待","archived":false,"fork":false,"pushed_at":"2018-09-29T03:42:21.000Z","size":5463,"stargazers_count":46,"open_issues_count":0,"forks_count":21,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-14T14:15:00.969Z","etag":null,"topics":["uiautomatorview","uiautomatorviewer-xpath","xpath"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yaming116.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-09T01:38:11.000Z","updated_at":"2024-07-30T18:09:11.000Z","dependencies_parsed_at":"2022-08-13T03:50:40.814Z","dependency_job_id":null,"html_url":"https://github.com/yaming116/uiautomatorview","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yaming116/uiautomatorview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaming116%2Fuiautomatorview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaming116%2Fuiautomatorview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaming116%2Fuiautomatorview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaming116%2Fuiautomatorview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yaming116","download_url":"https://codeload.github.com/yaming116/uiautomatorview/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaming116%2Fuiautomatorview/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262468966,"owners_count":23316228,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["uiautomatorview","uiautomatorviewer-xpath","xpath"],"created_at":"2024-10-15T13:19:56.840Z","updated_at":"2025-06-28T17:32:34.219Z","avatar_url":"https://github.com/yaming116.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"UIautomatorvViewer\n===\n\n为什么又重新开一个UIautomatorvViewer的项目？\n1. 目前社区或能查到修改版本和开放源码的版本的基本都是基于4.4之前的版本，目前Android已经9.x了。\n2. 编写一个易于大家修改构建的版本，目前只需按照下面说明，直接可以从官网选择自己喜欢的版本构建。\n\n![adb](./images/adb.png)\n\n##### 使用方式：\n方式1.直接下载根目录下的uiautomatorviewer.jar,替换你本地的${ANDROID_HOME}/tools/lib下的uiautomatorviewer.jar即可\n\n方式2.执行gradle jar命令(或gradlew jar)，编译工程，将build目录下编译出来的uiautomatorviewer.jar替换你本地的${ANDROID_HOME}/tools/lib下的uiautomatorviewer.jar即可\n\n#### 目前默认使用adb截图和dump xml\n\nadb截图使用的是[LvmamaXmlKit](https://testerhome.com/topics/12459),所以使用此功能需要把这个#jar 导入到手机中#，命令如下：\n```\n//复制LvmamaXmlKit.jar到本地D盘根目录下\nadb push D:\\LvmamaXmlKit.jar /data/local/tmp/\n```\n\n##### 背景：\n在做UI自动化时必不可少需要使用到uiautomatorviewer这个工具，但是有时候我们进行元素定位的时候希望使用xpath定位，而这个 工具自身并没提供，为了方便自动生成xpath。在网上找到的方法感觉不是很完整，于是打算自己亲自对该工具进行二次开发。\n- 开发环境：\n    - ide:intellij idea\n    - 编译环境：gradle\n    - 语言环境：java\n    - 还要必不可少的android sdk\n    \n    \n##### 下载源码\n- 下载[marshmallow uiautomatorviewer源代码](https://android.googlesource.com/platform/tools/swt/+/marshmallow-mr3-release/uiautomatorviewer/)，不同版本的代码可以自己切换分支下载。\n- 依赖`jar`可以右键以`zip`形式打开`uiautomatorviewer.jar`在 `META-INF\\MANIFEST.MF`找到，如下：\n```\nManifest-Version: 1.0\nClass-Path:  org-eclipse-jface-3.6.2.jar ddmlib.jar org-eclipse-core-c\n ommands-3.6.0.jar org-eclipse-equinox-common-3.6.0.jar osgi-4.0.0.jar\n  common.jar kxml2-2.3.0.jar annotations.jar guava-18.0.jar\nMain-Class: com.android.uiautomator.UiAutomatorViewer\n```\n这些jar可以到你本地的${ANDROID_HOME}/tools/lib中找到\n\n希望添加的功能列表:\n\n* [x] 添加xpath\n* [x] 增加adb截图\n* [x] 增加右键点击事件\n* [ ] 添加ios版本支持\n* [ ] 添加appium脚本代码\n* [ ] 等等\n\n感谢\n---\n[yangzaiCN/uiautomatorviewer](https://github.com/yangzaiCN/uiautomatorviewer)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaming116%2Fuiautomatorview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyaming116%2Fuiautomatorview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaming116%2Fuiautomatorview/lists"}