重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

AppiumAndroidBootstrap源码分析之启动运行

通过前面的两篇文章《Appium Android Bootstrap源码分析之控件AndroidElement》和《Appium Android Bootstrap源码分析之命令解析执行》我们了解到了Appium从pc端发送过来的命令是如何定位到命令相关的控件以及如何解析执行该命令。那么我们剩下的问题就是bootstrap是怎么启动运行的,我们会通过本篇文章的分析来阐述这个问题,以及把之前学习的相关的类给串起来看它们是怎么互动的。

站在用户的角度思考问题,与客户深入沟通,找到余干网站设计与余干网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、做网站、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖余干地区。


1.启动方式

Bootstrap的启动是由Appium从pc端通过adb发送命令来控制的:
Appium Android Bootstrap源码分析之启动运行
AndroidElementHash的这个getElement命令要做的事情就是针对这两点来根据不同情况获得目标控件的
[java] view plaincopy
  1. /** 
  2.  * Return an elements child given the key (context id), or uses the selector 
  3.  * to get the element. 
  4.  *  
  5.  * @param sel 
  6.  * @param key 
  7.  *          Element id. 
  8.  * @return {@link AndroidElement} 
  9.  * @throws ElementNotFoundException 
  10.  */  
  11. public AndroidElement getElement(final UiSelector sel, final String key)  
  12.     throws ElementNotFoundException {  
  13.   AndroidElement baseEl;  
  14.   baseEl = elements.get(key);  
  15.   UiObject el;  
  16.   
  17.   if (baseEl == null) {  
  18.     el = new UiObject(sel);  
  19.   } else {  
  20.     try {  
  21.       el = baseEl.getChild(sel);  
  22.     } catch (final UiObjectNotFoundException e) {  
  23.       throw new ElementNotFoundException();  
  24.     }  
  25.   }  
  26.   
  27.   if (el.exists()) {  
  28.     return addElement(el);  
  29.   } else {  
  30.     throw new ElementNotFoundException();  
  31.   }  
  32. }  
以下就是把控件添加到控件哈希表的addElement方法
  public AndroidElement addElement(final UiObject element) {     counter++;     final String key = counter.toString();     final AndroidElement el = new AndroidElement(key, element);     elements.put(key, el);     return el;   }

5. 小结


 

作者

自主博客

微信

CSDN

天地会珠海分舵

http://techgogogo.com


服务号:TechGoGoGo

扫描码:

Appium Android Bootstrap源码分析之启动运行

http://cqcxhl.com/article/pchpeh.html