标签:android adb appium android-shell dumpsys
我正在使用appuim进行Android设备和java代码之间的交互.我遇到问题,在按下Home按钮后某些设备(包括模拟器)上,appium返回不正确的当前活动(它返回当前必须最小化的previuos活动).我发现appium使用dumpsys window windows
获取mFocusedApp值来获取当前的应用程序.我阅读了有关获取Android当前活动的another answers,并且大多数建议使用:
adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"
那是问题的根源,因为按下Home按钮后mCurrentFocus和mFocusedApp链接到不同的活动.但我找不到任何解释这些领域之间的区别.为什么appuim只使用mFocusedApp呢?
最佳答案:
mCurrentFocus和mFocusedApp之间差异的解释盯着你:
$dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' mCurrentFocus=Window{X uX package/.activity} mFocusedApp=AppWindowToken{X token=Token{X ActivityRecord{X uX package/.activity tX}}}
mCurrentFocus是一个Window(只是一个可能有或没有与之关联的ActivityRecord的视图)
mFocusedApp是一个AppWindowToken(一个应用程序令牌,它总是有一个ActivityRecord)
因此,当输入焦点切换到具有活动的视图时 – mCurrentFocus和mFocusedApp都会显示相同的活动.但有时焦点切换到没有活动的视图(如SystemUI的部分等) – 然后mCurrentFocus将显示该视图,但mFocusedApp仍将显示在最后一次切换之前具有焦点的应用的ActivityRecord.
标签:android,adb,appium,android-shell,dumpsys 来源: https://codeday.me/bug/20190516/1114881.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。