软录 · 2023年11月7日

autolaunch安卓|appium(四) 操作介绍

『壹』 如何查看Android 中native的Service

在Android里面,init程序会解析 Init.rc文件,然后启动正耐敬很多Native Service。如何查看这些service的状态呢,查看init的源代码,发现所有举慎的native service的信息都会保存亩败到系统属性里面。这样就可以用下面的命令查看各个Service的状态。# getprop |grep init.svcgetprop |grep init.svc[init.svc.servicemanager]: [running][init.svc.vold]: [running][init.svc.netd]: [running][init.svc.debuggerd]: [running][init.svc.omsril-daemon]: [running][init.svc.sdm]: [running][init.svc.zygote]: [running][init.svc.media]: [running][init.svc.dbus]: [running][init.svc.installd]: [running][init.svc.keystore]: [running][init.svc.lapisrv]: [running][init.svc.console]: [running][init.svc.tcmd-autolaunch]: [stopped][init.svc.tel]: [stopped][init.svc.pxa920-setup]: [stopped][init.svc.logcat]: [running][init.svc.logcat-radio]: [running][init.svc.dnsmasq]: [running][init.svc.powerpolicy]: [stopped][init.svc.adbd]: [running][init.svc.telserver]: [stopped][init.svc.bootanim]: [stopped][init.svc.fmradiod]: [stopped][init.svc.wpa_supplicant]: [running][init.svc.dhcpcd]: [running]

『贰』 appium(四) 操作介绍

**锁定解锁屏幕 ** driver.lock(5) 将把当前应用放到后台 5 秒 driver.background_app(5) **收起键盘 ** driver.hide_keyboard()

启动 ACTIVITY 在当前应用中打开一个 activity 或者启动一个新应用并打开一个 activity 。 只能在 Android 上使用 driver.start_activity(&#39com.example.android.apis&#39, &#39.Foo&#39) 打开下拉通知栏 只能在 Android 上使用 driver.open_notifications()

**检查应用是否已经安装 ** driver.is_app_installed(&#39com.example.android.apis&#39) 安装应用 driver.install_app(&#39path/to/my.apk&#39) **删除应用 ** driver.remove_app(&#39com.example.android.apis&#39)

**摇晃 (SHAKE) 关闭应用 ** driver.shake() **关闭应用 ** driver.close_app()

启动 (LAUNCH) 根据服务关键字 (desired capabilities) 启动会话 (session) 。请注意这必须在设定 autoLaunch=false 关键字时才能生效。这不是用于启动指定的 app/activities ————你可以使用 start_activity 做到这个效果————这是用来继续进行使用了 autoLaunch=false 关键字时的初始化 (Launch) 流程的 driver.launch_app()

**应用重置(相当于卸载重装应用) ** driver.reset() 列出所有的可用上下文 (CONTEXT) context 可以理解为 可进入的窗口 。例如,对于原生应用,可用的 context 和默认 context 均为 NATIVE_APP driver.contexts **列出当前上下文 ** driver.current_context

**获取当前页面的源码(可以辅助元素定位) ** driver.page_source **截图屏幕图片 ** driver.get_screenshot_as_file(r&#39E:imgimg1.png&#39) # 截取整个屏幕

获取应用程序的字符串 (APP STRINGS) driver.app_strings

给设备发送一个按键事件(KEY EVENT)(只限安卓) driver.keyevent(176)

获取当前 activity。只能在 Android 上使用 driver.current_activity

模拟用户滑动(SWIPE) driver.swipe(start=75, starty=500, endx=75, endy=0, ration=800)

捏屏幕(PINCH) (双指往内移动来缩小屏幕) driver.pinch(element=el)

放大 (ZOOM)屏幕 (双指往外移动来放大屏幕) driver.zoom(element=el)

**滑动 (SCROLL)到某个元素。从一个元素滚动到另一个元素 ** driver.scroll(originalEl, destinationEl ) # originalEl – 要滚动的元素 destinationEl – 要滚动到的元素

**设置元素的值 ** driver.set_value(element=el,Val) # 设置 el 元素的值

推送文件到设备中去(PUSH FILE),推送文件需要转换为&#39base64&#39

**获取/设置 appium 的服务器设置。 **

**多个点点击(最多五个点) ** driver.tap([(100, 20), (100, 60), (100,100)], 500) # list 中的元组放 5 个点,500 表示按下 500ms