欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于adbkit的android設(shè)備管理(精簡(jiǎn)版stf)

 更新時(shí)間:2023年09月12日 15:11:29   作者:椒排  
這篇文章主要為大家介紹了基于adbkit的android設(shè)備管理(精簡(jiǎn)版stf)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

起因

是看到stf(設(shè)備管理平臺(tái))有開源了adbkit這個(gè)精簡(jiǎn)的adb交互庫,又覺得部署stf太麻煩了,就想著用adbkit實(shí)現(xiàn)一個(gè)精簡(jiǎn)的設(shè)備管理,用于自動(dòng)化測(cè)試

思路

先引入adbkit

前期首先這是一個(gè)node項(xiàng)目,先引入adbkit

npm install adbkit --save

監(jiān)聽設(shè)備

把多個(gè)android手機(jī)插入同一臺(tái)電腦,如果每次都用adb devices去查詢,未免有些太過麻煩,而adbkit提供了監(jiān)聽的方法

const client = AdbInteraction.getInstance().getClient()
client.trackDevices().then((tracker) => {
  tracker.on("add", async (device) => {
   console.log(device.id)
  }
}

其中的device.id就是設(shè)備的serial號(hào)(即adb devices中的id)

設(shè)備管理

當(dāng)設(shè)備連接后,可以在監(jiān)聽事件中對(duì)設(shè)備分配一個(gè)端口,并綁定端口

const client = AdbInteraction.getInstance().getClient()
const bridge = {}
client.trackDevices().then((tracker) => {
  tracker.on("add", async (device) => {
    // 指定一個(gè)端口,或者可以寫一個(gè)方法去分配
    const availablePort = 3000
    // 創(chuàng)建一個(gè)adb usb連接
    bridge[serial] = client.createTcpUsbBridge(serial, { auth: () => Promise.resolve() })
    // 綁定端口
    bridge[serial].listen(availablePort).on("error", (e) => {
        console.log("err" + e)
    })
    // 設(shè)備信息寫入數(shù)據(jù)庫
    // 如serial號(hào),port號(hào)
  }
}

這里我們假設(shè)分配3001端口給剛剛連接到的設(shè)備,直接執(zhí)行命令

adb connect ip:3001

這里的ip是插著android設(shè)備的那臺(tái)主機(jī),這樣我們就成功連接了設(shè)備

管理多個(gè)設(shè)備

按照這個(gè)思路,我們可以同時(shí)開發(fā)出一套服務(wù),通過調(diào)用接口來查詢當(dāng)前連接著的設(shè)備
我們選用koa2的框架

git clone https://github.com/javieraviles/node-typescript-koa-rest.git

然后進(jìn)行這個(gè)項(xiàng)目的教學(xué)進(jìn)行常規(guī)部署

npm install
npm run watch-server

在controller層定義接口(有點(diǎn)像spring)

我們可以從controller定義一個(gè)接口,去從數(shù)據(jù)庫中讀取我們剛才保存過的數(shù)據(jù)

@request("get", "/devices")
@summary("Find devices")
public static async deviceList(ctx: any): Promise<void> {
  console.log(ctx.query.biz)
  ctx.status = 200;
  // 這里的數(shù)據(jù)來源于數(shù)據(jù)庫,可自定義實(shí)現(xiàn)
  ctx.body = DeviceDbManager.getInstance().fetchDeviceList();
}

我們可以返回這樣的格式

[
  {
  "serial": "#####",
  "ip": "192.168.x.x",
  "port": 3001,
  "connStatus": 1,
  "updateTime": "2023-08-31T04:53:55.113Z"
  }
]

至此就可以實(shí)現(xiàn)一個(gè)簡(jiǎn)單的設(shè)備管理,查詢

也可以對(duì)設(shè)備進(jìn)行借用、釋放等操作

完整的項(xiàng)目也在這個(gè)地址分享 https://github.com/sonar-su/android-device-manager

以上就是基于adbkit的android設(shè)備管理(精簡(jiǎn)版stf)的詳細(xì)內(nèi)容,更多關(guān)于adbkit android設(shè)備管理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • android實(shí)現(xiàn)指紋識(shí)別功能

    android實(shí)現(xiàn)指紋識(shí)別功能

    這篇文章主要介紹了android指紋識(shí)別功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Android 指紋識(shí)別詳解及實(shí)現(xiàn)方法

    Android 指紋識(shí)別詳解及實(shí)現(xiàn)方法

    本文主要介紹Android 指紋識(shí)別的知識(shí),這里整理了詳細(xì)的資料和簡(jiǎn)單實(shí)現(xiàn)代碼,有開發(fā)這部分的朋友可以參考下
    2016-09-09
  • 解決Android Studio一直停留在MyApplication:syncing的問題

    解決Android Studio一直停留在MyApplication:syncing的問題

    這篇文章主要介紹了Android Studio一直停留在MyApplication:syncing的完美解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 分享幾個(gè)Android開發(fā)有用的程序代碼

    分享幾個(gè)Android開發(fā)有用的程序代碼

    本文主要是給大家分享了幾個(gè)常用而且很實(shí)用的程序代碼片段,都是個(gè)人項(xiàng)目中提取出來的,有需要的小伙伴可以直接拿走使用
    2015-02-02
  • Android 仿QQ頭像自定義截取功能

    Android 仿QQ頭像自定義截取功能

    在我們的qq聊天工具中,經(jīng)常會(huì)使用qq頭像截取功能,基于代碼是怎么實(shí)現(xiàn)的呢?下面小編通過本文給大家分享android 仿qq頭像自定義截取功能的思路分析及編碼實(shí)現(xiàn)過程,感興趣的朋友一起學(xué)習(xí)吧
    2016-10-10
  • Android獲取點(diǎn)擊屏幕的位置坐標(biāo)

    Android獲取點(diǎn)擊屏幕的位置坐標(biāo)

    這篇文章主要為大家詳細(xì)介紹了Android獲取點(diǎn)擊屏幕的位置坐標(biāo),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 詳解Android studio實(shí)現(xiàn)語音轉(zhuǎn)文字功能

    詳解Android studio實(shí)現(xiàn)語音轉(zhuǎn)文字功能

    這篇文章主要介紹了如何通過Android studio調(diào)用科大訊飛的語音轉(zhuǎn)文字功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-03-03
  • Android中TextView動(dòng)態(tài)設(shè)置縮進(jìn)距離的方法

    Android中TextView動(dòng)態(tài)設(shè)置縮進(jìn)距離的方法

    項(xiàng)目需求如果在項(xiàng)目中第一行文字需要添加布局的情況我們應(yīng)該怎么做呢,經(jīng)過一番考慮和查找我最終選擇了縮進(jìn)的方式解決這個(gè)問題,這篇文章主要給大家介紹了關(guān)于Android中TextView動(dòng)態(tài)設(shè)置縮進(jìn)距離的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 從源碼剖析Android中的Intent組件

    從源碼剖析Android中的Intent組件

    這篇文章主要介紹了Android中的Intent組件,作者從源碼剖析了Intent如何實(shí)現(xiàn)組件間的切換,需要的朋友可以參考下
    2016-03-03
  • Android TextView多文本折疊展開效果

    Android TextView多文本折疊展開效果

    這篇文章主要為大家詳細(xì)介紹了Android TextView多文本折疊展開效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評(píng)論