国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python - 控制雷電模擬器(Dnconsole)

這篇具有很好參考價(jià)值的文章主要介紹了Python - 控制雷電模擬器(Dnconsole)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Python - 雷電模擬器控制臺(tái)(Dnconsole)

1.Dnconsole控制臺(tái)

雷電模擬器9.0

雷電模擬器9.0,32+64位并行,支持對(duì)畫(huà)質(zhì)、性能要求較高的一類游戲。關(guān)于使用Python實(shí)現(xiàn)雷電模擬器的控制代碼,主要適用于雷電模擬器9.0版本。不同的模擬器版本的控制臺(tái)程序命名也不同(9.0版本為“l(fā)dconsole.exe”),可以使用的指令也不同,通常越新的版本可使用的命令越多。

雷電模擬器官網(wǎng):https://www.ldmnq.com/

2.Dnconsole模塊代碼(Python)

控制臺(tái)類構(gòu)造方法:

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import os

class Dnconsole:
    '''
    【雷電控制臺(tái)類】
    version: 9.0
    import該文件會(huì)自動(dòng)實(shí)例化為 Dc
    '''

    def __init__( self, installation_path:str ):
        '''
        【構(gòu)造方法】
        '''
        # if 模擬器安裝路徑存在性檢測(cè)
        if os.path.exists(installation_path) is False:
            print('模擬器安裝路徑不存在!')
        # 獲取模擬器安裝路徑
        self.ins_path = installation_path
        # Dnconsole程序路徑
        self.console_path = self.ins_path + r'\ldconsole.exe '
        # if Dnconsole程序路徑檢測(cè)
        if os.path.exists(self.console_path) is False:
            print('Dnconsole程序路徑不存在!\n請(qǐng)確認(rèn)模擬器安裝文件是否完整或模擬器版本是否不符!')
        # adb程序路徑
        self.adb_path = self.ins_path + r'\adb.exe '
        # if adb程序路徑檢測(cè)
        if os.path.exists(self.adb_path) is False:
            print('Dnconsole程序路徑不存在!\n請(qǐng)確認(rèn)模擬器安裝文件是否完整!')
        # 模擬器截屏程序路徑
        self.screencap_path = r'/system/bin/screencap'
        # 模擬器截圖保存路徑
        self.devicess_path = r'/sdcard/autosS.png'
        # 本地圖片保存路徑
        self.images_path = r'D:\PycharmWorkspace\images'
        # 構(gòu)造完成
        print('Class-Dnconsole is ready.(%s)' % (self.ins_path))

控制臺(tái)執(zhí)行:

    def CMD( self, cmd:str ):
        '''
        【執(zhí)行控制臺(tái)命令語(yǔ)句】
        :param cmd: 命令
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        CMD = self.console_path + cmd # 控制臺(tái)命令
        process = os.popen(CMD)
        result = process.read()
        process.close()
        return result


    def ADB( self, cmd:str ):
        '''
        【執(zhí)行ADB命令語(yǔ)句】
        :param cmd: 命令
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        CMD = self.adb_path + cmd # adb命令
        process = os.popen(CMD)
        result = process.read()
        process.close()
        return result

關(guān)閉模擬器:

    def quit( self, index:int = 0 ):
        '''
        【關(guān)閉模擬器】
        :param index: 模擬器序號(hào)
        '''
        cmd = 'quit --index %d' %(index)
        self.CMD(cmd)


    def quitall(self):
        '''
        【關(guān)閉所有模擬器】
        '''
        cmd = 'quitall'
        self.CMD(cmd)

啟動(dòng)模擬器:

    def launch( self, index:int = 0 ):
        '''
        【啟動(dòng)模擬器】
        :param index: 模擬器序號(hào)
        :return: True=已啟動(dòng) / False=不存在
        '''
        cmd = 'launch --index %d' %(index)
        if self.CMD(cmd) == '': return True
        else: return False

重啟模擬器:

    def reboot( self, index:int = 0 ):
        '''
        【重啟模擬器】
        :param index: 模擬器序號(hào)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'reboot --index %d' %(index)
        return self.CMD(cmd)

查看模擬器列表:

    def list(self):
        '''
        【獲取模擬器列表(僅標(biāo)題)】
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'list'
        return self.CMD(cmd)

查看模擬器運(yùn)行狀態(tài):

    def runninglist(self):
        '''
        【獲取正在運(yùn)行的模擬器列表(僅標(biāo)題)】
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'runninglist'
        return self.CMD(cmd)


    def isrunning( self, index:int = 0 ):
        '''
        【檢測(cè)模擬器是否啟動(dòng)】
        :param index: 模擬器序號(hào)
        :return: True=已啟動(dòng) / False=未啟動(dòng)
        '''
        cmd = 'isrunning --index %d' %(index)
        if self.CMD(cmd) == 'running': return True
        else: return False

查看模擬器詳細(xì)信息列表:

    def list2(self):
        '''
        【取模擬器列表】
        :return: 列表(索引、標(biāo)題、頂層句柄、綁定句柄、是否進(jìn)入android、進(jìn)程PID、VBox進(jìn)程PID)
        '''
        cmd = 'list2'
        return self.CMD(cmd)

添加、復(fù)制、移除及重命名模擬器:

    def add( self, name:str ):
        '''
        【添加模擬器】
        :param name: 新模擬器標(biāo)題
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'add %s' %(name)
        return self.CMD(cmd)


    def copy( self, name:str, index:int ):
        '''
        【復(fù)制模擬器】
        :param name: 新模擬器標(biāo)題
        :param index: 原模擬器序號(hào)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        if not name:
            cmd = 'copy --from %d' %(index)
        else:
            cmd = 'copy --name %s --from %d' %(name, index)
        return self.CMD(cmd)


    def remove( self, index:int ):
        '''
        【移除模擬器】
        :param index: 模擬器序號(hào)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'remove --index %d' %(index)
        return self.CMD(cmd)


    def rename( self, index:int, newtitle:str ):
        '''
        【重命名模擬器】
        :param index: 模擬器序號(hào)
        :param newtitle: 模擬器新標(biāo)題
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'rename --index %d --title %s' %(index, newtitle)
        return self.CMD(cmd)

修改模擬器配置:

    def modifyResolution( self, index:int, width, height, dpi ):
        '''
        【修改模擬器配置 - 分辨率】
        :param index: 模擬器序號(hào)
        :param width: 顯示寬度
        :param height: 顯示高度
        :param dpi: 每英寸點(diǎn)數(shù)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'modify --index %d --resolution %s,%s,%s' %(index, width, height, dpi)
        return self.CMD(cmd)


    def modifyCPU( self, index:int, cpu, memory ):
        '''
        【修改模擬器配置 - CPU與內(nèi)存】
        :param index: 模擬器序號(hào)
        :param cpu: 模擬器CPU數(shù)量(1,2,3,4)
        :param memory: 模擬器內(nèi)存大?。?56,512,768,1024,1536,2048,3072,4096,6144,8192)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'modify --index %d --cpu %s --memory %s' %(index, cpu, memory)
        return self.CMD(cmd)


    def modifyManufacturer( self, index:int, manufacturer, model, pnumber ):
        '''
        【修改模擬器配置 - 制造商信息】
        :param index: 模擬器序號(hào)
        :param manufacturer: 制造商
        :param model: 型號(hào)
        :param pnumber: 電話號(hào)碼
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'modify --index %d --manufacturer %s --model %s --pnumber %s' %(index, manufacturer, model, pnumber)
        return self.CMD(cmd)


    def modifyOthers( self, index:int, autorotate, lockwindow, root ):
        '''
        【修改模擬器配置 - 其他選項(xiàng)】
        :param index: 模擬器序號(hào)
        :param autorotate: 自動(dòng)旋轉(zhuǎn)(1/0)
        :param lockwindow: 鎖定窗口(1/0)
        :param root: ROOT(1/0)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'modify --index %d --autorotate %s --lockwindow %s --root %s' %(index, autorotate, lockwindow, root)
        return self.CMD(cmd)

App控制:

    def installappOfFile( self, index:int, filename:str ):
        '''
        【安裝App(用文件名)】
        :param index: 模擬器序號(hào)
        :param filename: 文件名
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'installapp --index %d --filename %s' %(index, filename)
        return self.CMD(cmd)


    def installappOfPkg( self, index:int, packagename:str):
        '''
        【安裝App(用包名)】
        :param index: 模擬器序號(hào)
        :param packagename: 包名
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'installapp --index %d --packagename %s' %(index, packagename)
        return self.CMD(cmd)


    def uninstallapp( self,index:int, packagename:str ):
        '''
        【卸載App】
        :param index: 模擬器序號(hào)
        :param packagename: 包名
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'uninstallapp --index %d --packagename %s' %(index, packagename)
        return self.CMD(cmd)


    def runApp( self, index:int, packagename:str ):
        '''
        【運(yùn)行App】
        :param index: 模擬器序號(hào)
        :param packagename: 包名
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'runapp --index %d --packagename %s' %(index, packagename)
        return self.CMD(cmd)


    def killApp( self, index:int, packagename:str ):
        '''
        【終止App】
        :param index: 模擬器序號(hào)
        :param packagename: 包名
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'killapp --index %d --packagename %s' %(index, packagename)
        return self.CMD(cmd)

模擬操作模擬器:

    def actionOfInput( self, index:int, text:str ):
        '''
        【輸入操作】
        :param index: 模擬器序號(hào)
        :param text: 文本內(nèi)容
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'action --index %d --key call.input --value "%s"' %(index, text)
        return self.CMD(cmd)


    def actionOfKeyboard( self, index:int, key:str ):
        '''
        【按鍵操作】
        :param index: 模擬器序號(hào)
        :param key: 鍵值(back,home,menu,volumeup,volumedown)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'action --index %d --key call.keyboard --value %s' %(index, key)
        return self.CMD(cmd)


    def actionOfShake( self, index:int ):
        '''
        【搖一搖操作】
        :param index: 模擬器序號(hào)
        :return:
        '''
        cmd = 'action --index %d --key call.shake --value null' %(index)
        return self.CMD(cmd)


    def actionOfRebootApp(self,index:int, packagename:str):
        '''
        【重啟模擬器和App】
        :param index: 模擬器序號(hào)
        :param packagename: 包名
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'action --index %d --key call.reboot --value %s' %(index, packagename)
        return self.CMD(cmd)


    def actionOfLocate( self, index:int, Lng, Lat ):
        '''
        【定位操作】
        :param index: 模擬器序號(hào)
        :param Lng: 經(jīng)度
        :param Lat: 維度
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'action --index %d --key call.locate --value %f,%f' %(index, Lng, Lat)
        return self.CMD(cmd)


    def actionOfNetwork( self, index:int, ifconnect:bool ):
        '''
        【網(wǎng)絡(luò)斷連操作】
        :param index: 模擬器序號(hào)
        :param ifconnect: 是否連網(wǎng)(True/False)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        if ifconnect:
            cmd = 'action --index %d --key call.network --value connect' %(index)
        else:
            cmd = 'action --index %d --key call.network --value offline' %(index)
        return self.CMD(cmd)


    def actionOfGravity(self, index:int, x:int, y:int, z:int):
        '''
        【改變重力感應(yīng)操作】
        :param index: 模擬器序號(hào)
        :param x: x
        :param y: y
        :param z: z
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'action --index %d --key call.gravity --value %d,%d,%d' %(index, x, y, z,)
        return self.CMD(cmd)


    def scan( self, index:int, filepath:str ):
        '''
        【掃描二維碼】
        :param index: 模擬器序號(hào)
        :param filepath: 圖片路徑
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'scan  --index %d --file %s' %(index, filepath)
        return self.CMD(cmd)

對(duì)模擬器窗口排版:

    def sortWnd(self):
        '''
        【對(duì)模擬器窗口排版】
        '''
        cmd = 'sortWnd'
        self.CMD(cmd)

文件操作:

    def pull( self, index:int, remote:str, local:str ):
        '''
        【復(fù)制文件】
        :param index: 模擬器序號(hào)
        :param remote: 模擬器文件路徑
        :param local: 本地路徑
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'pull  --index %d --remote %s --local %s' %(index, remote, local)
        return self.CMD(cmd)


    def push( self, index:int, remote:str, local:str ):
        '''
        【發(fā)送文件】
        :param index: 模擬器序號(hào)
        :param remote: 模擬器文件路徑
        :param local: 本地路徑
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'push  --index %d --remote %s --local %s' %(index, remote, local)
        return self.CMD(cmd)

全局設(shè)置:

    def globalSetting( self, fps:int, audio:int, fastplay:int, cleanmode:int ):
        '''
        【全局設(shè)置】
        :param fps: 幀率(0~60)
        :param audio: 音頻(1=開(kāi)/0=關(guān))
        :param fastplay: 高幀率模式(1=開(kāi)/0=關(guān))
        :param cleanmode: 除廣告模式(1=開(kāi)/0=關(guān))
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'globalsetting --fps %d --audio %d --fastplay %d --cleanmode %d' %(fps, audio, fastplay, cleanmode)
        return self.CMD(cmd)

啟動(dòng)模擬器及App(新命令):

    def launchx( self, index:int, packagename:str ):
        '''
        【同時(shí)啟動(dòng)模擬器和App】
        :param index: 模擬器序號(hào)
        :param packagename: 包名
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'launchex --index %d --packagename "%s"' %(index, packagename)
        return self.CMD(cmd)

查看連接的設(shè)備:

    def device(self):
        '''
        【列出所有連接的設(shè)備】
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'devices -l'
        return self.ADB(cmd)

連接/斷開(kāi)設(shè)備:

    def connect( self, ip:str, port:str ):
        '''
        【連接設(shè)備】
        :param ip: ip地址
        :param port: 端口號(hào)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'connect %s:%s' %(ip, port)
        return self.ADB(cmd)


    def disconnect( self, ip:str, port:str ):
        '''
        【斷開(kāi)設(shè)備】
        :param ip: ip地址
        :param port: 端口號(hào)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        if ip != '' and port != '':
            cmd = 'disconnect %s:%s' %(ip, port)
        elif ip != '' and port == '':
            cmd = 'disconnect %s' %(ip)
        else:
            cmd = 'disconnect'
        return self.ADB(cmd)

查看adb版本:

    def versionOfADB(self):
        '''
        【查看ADB版本號(hào)】
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'version'
        return self.ADB(cmd)

查看設(shè)備相關(guān):

    def dumpstate( self, index:int ):
        '''
        【獲取設(shè)備系統(tǒng)狀態(tài)信息(需要root權(quán)限)】
        :param index: 模擬器序號(hào)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'adb --index %d --command "shell dumpstate"' %(index)
        return self.CMD(cmd)


    def getPackageList( self, index:int ):
        '''
        【獲取設(shè)備包名列表】
        :param index: 模擬器序號(hào)
        :return: 包名列表
        '''
        cmd = 'adb --index %d --command "shell pm list package"' %(index)
        return self.CMD(cmd)


    def getResolution( self, index:int ):
        '''
        【獲取設(shè)備分辨率】
        :param index: 模擬器序號(hào)
        :return: 分辨率(例如'1920x1080')
        '''
        cmd = 'adb --index %d --command "shell wm size"' %(index)
        return self.CMD(cmd).replace('Physical size: ', '')

截屏(并保存截圖到PC本地):

    def screenShot ( self, index:int ):
        '''
        【截屏并保存到本地】
        :param index: 模擬器序號(hào)
        '''
        cmd1 = 'adb --index %d --command "shell %s -p %s"' %(index, self.screencap_path, self.devicess_path)
        cmd2 = 'adb --index %d --command "pull %s %s"' %(index, self.devicess_path, self.images_path)
        self.CMD(cmd1)
        self.CMD(cmd2)

查看App信息:

    def appVersion( self, index:int, packagename:str ):
        '''
        【獲取App版本號(hào)】
        :param index: 模擬器序號(hào)
        :param packagename: 包名
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'adb --index %d --command "shell dumpsys package %s|grep versionName"' %(index, packagename)
        return self.CMD(cmd)


    def appIsrunning( self, index:int, packagename:str ):
        '''
        【獲取App運(yùn)行狀態(tài)】
        :param index: 模擬器序號(hào)
        :param packagename: 包名
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'adb --index %d --command "shell pidof %s"' %(index, packagename)
        return self.CMD(cmd)

模擬操作模擬器(adb命令):

    def actionOfTap( self, index:int, x:int, y:int ):
        '''
        【點(diǎn)擊操作】
        :param index: 模擬器序號(hào)
        :param x: x
        :param y: y
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'adb --index %d --command "shell input tap %d %d"' %(index, x, y)
        return self.CMD(cmd)


    def actionOfSwipe( self, index:int, x0:int, y0:int, x1:int, y1:int, ms:int = 200 ):
        '''
        【滑動(dòng)操作】
        :param index: 模擬器序號(hào)
        :param x0,y0: 起點(diǎn)坐標(biāo)
        :param x1,y1: 終點(diǎn)坐標(biāo)
        :param ms: 滑動(dòng)時(shí)長(zhǎng)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        cmd = 'adb --index %d --command "shell input swipe %d %d %d %d %d"' %(index, x0, y0, x1, y1, ms)
        return self.CMD(cmd)


    def actionOfKeyCode( self, index:int, keycode:int ):
        '''
        【鍵碼輸入操作】
        :param index: 模擬器序號(hào)
        :param keycode: 鍵碼(0~9,10=空格)
        :return: 控制臺(tái)調(diào)試內(nèi)容
        '''
        try:
            list = ['KEYCODE_0', 'KEYCODE_1', 'KEYCODE_2', 'KEYCODE_3', 'KEYCODE_4', 'KEYCODE_5',
                    'KEYCODE_6', 'KEYCODE_7', 'KEYCODE_8', 'KEYCODE_9', 'KEYCODE_HOME']
            cmd = 'adb --index %d --command "shell input keyevent %s"' %(index, list[keycode])
            return self.CMD(cmd)
        except Exception as e:
            print(e)

實(shí)例化控制臺(tái)類:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-401698.html

# 實(shí)例化控制臺(tái)類
global Dc
Dc = Dnconsole(r'D:\Games\leidian9.0.35\LDPlayer9.0.35')

到了這里,關(guān)于Python - 控制雷電模擬器(Dnconsole)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vmare 虛擬機(jī)上安裝雷電模擬器的解決

    vmare 虛擬機(jī)上安裝雷電模擬器的解決

    自已有一個(gè)需求:需要在虛擬機(jī),需要在上面安裝一下模擬器3.0; 環(huán)境: vmare老版本:6.0~7.0 虛擬機(jī)系統(tǒng):windows7 旗艦版 64位 遇到問(wèn)題: 1. 沒(méi)有開(kāi)啟VT-x。 分析:原來(lái)的vmare是低版本好像是 vmare7;沒(méi)有Intel VT-x選項(xiàng)選擇。 我的解決方法: 升級(jí)vmare為Vmware Workstation 16 Pro; 把當(dāng)

    2024年02月06日
    瀏覽(26)
  • 雷電模擬器運(yùn)行非??D有效解決方法分享

    雷電模擬器運(yùn)行非常卡頓有效解決方法分享

    雷電模擬器運(yùn)行非??D有效解決方法分享。有用戶在電腦上開(kāi)啟雷電模擬器來(lái)使用的時(shí)候,遇到了軟件使用非??D的情況。那么這樣的軟件卡頓問(wèn)題要怎么去進(jìn)行處理呢?接下來(lái)我們一起來(lái)看看以下的解決方法教學(xué)吧。 雷電模擬器卡頓的解決方法 一、關(guān)閉360核晶防護(hù) 打

    2024年02月05日
    瀏覽(22)
  • 雷電9模擬器安裝magisk和lsposed

    雷電9模擬器安裝magisk和lsposed

    之前一直用真機(jī)搭建測(cè)試環(huán)境,今天看到正己大佬的 《安卓逆向這檔事》之模擬器環(huán)境搭建 視頻教程,看到其中推薦了 適用于幾乎所有安卓模擬器(7+)安裝magisk的教程-簡(jiǎn)單無(wú)腦向 這個(gè)教程,其實(shí)之前就看過(guò)這個(gè)大佬的教程,無(wú)奈我的模擬器版本可能不對(duì),一直安裝不成功,

    2024年02月02日
    瀏覽(34)
  • windows Vscode運(yùn)行Flutter項(xiàng)目,雷電模擬器

    windows Vscode運(yùn)行Flutter項(xiàng)目,雷電模擬器

    全流程參考鏈接 ?官網(wǎng)配置windows 的 flutter運(yùn)行環(huán)境? ?。?! 1、安裝jdk 11并配置全局環(huán)境變量 官網(wǎng)下載JAVA的JDK11版本(下載、安裝、配置環(huán)境變量)_java11下載_云邊的快樂(lè)貓的博客-CSDN博客 2、下載安裝Flutter SDK: (1)版本選擇(windows:Stable channel穩(wěn)定版本,3.7.7) Flutter SD

    2024年02月06日
    瀏覽(26)
  • 【解決方案】adb無(wú)法連接雷電模擬器問(wèn)題

    【解決方案】adb無(wú)法連接雷電模擬器問(wèn)題

    目錄 雷霆9問(wèn)題(安卓9.0) 雷霆5問(wèn)題 (安卓7.0) 問(wèn)題一:adb 提示adb server version(31) doesn\\\'t match this client(41) ?問(wèn)題二:more than one device and emulator 必須開(kāi)啟調(diào)試模式(默認(rèn)為關(guān)閉) 解決辦法:使用雷電模擬器安裝目錄下的adb.exe,位置這樣找。 執(zhí)行adb logcat后會(huì)得到這個(gè)日志

    2024年02月07日
    瀏覽(43)
  • 雷電9模擬器安裝抓包工具whistle證書(shū)

    雷電9模擬器安裝抓包工具whistle證書(shū)

    抓某游戲內(nèi)的包,普通的下載證書(shū),訪問(wèn)會(huì)出現(xiàn)白板情況 這里證書(shū)選擇的是 .pem 格式的,?.cer 格式的證書(shū)也是可以的,將證書(shū)下載到電腦上. 文件名稱大概就是 rootCA.pem? openssl下載地址 這里算出了當(dāng)前證書(shū)的名稱,修改證書(shū)??rootCA.pem 為 b09ba***.0 ,證書(shū)? .pem 改成 .0 1.adb?remount 2.ad

    2024年02月15日
    瀏覽(20)
  • HBuilderX 運(yùn)行Android App項(xiàng)目至雷電模擬器

    HBuilderX 運(yùn)行Android App項(xiàng)目至雷電模擬器

    一、下載安裝HBuilderX ? ? ? ??HBuildeX官網(wǎng) ? ? ? ? 安裝最新的正式版,或者點(diǎn)擊歷史版本查看更多版本;【ps:Alpha版本為開(kāi)發(fā)版,功能更多,但是也不穩(wěn)定,屬于測(cè)試版本】 ? ? ? ? 直接將壓縮包解壓,運(yùn)行HBuildeX即可。 二、下載安裝雷電模擬器 ?????????雷電模擬器

    2024年02月03日
    瀏覽(38)
  • emulator-5554 device adb 雷電模擬器9.0.11

    emulator-5554 device adb 雷電模擬器9.0.11

    首先,雷電模擬器9的安裝文件夾里面自帶adb。默認(rèn)允許adb本地調(diào)試,但是沒(méi)有默認(rèn)開(kāi)啟root權(quán)限且運(yùn)行自帶的adb后會(huì)自動(dòng)連接到雷電。 所以首先開(kāi)啟root權(quán)限,然后選擇重啟。 進(jìn)入文件夾,運(yùn)行自帶的adb: adb start-server ,不要直接 adb connect 127.0.0.1:5555 如上,直接 adb shell ,然后

    2024年02月13日
    瀏覽(25)
  • 安卓判斷是否是模擬器,適配主流雷電,MUMU,夜神,逍遙

    安卓判斷是否是模擬器,適配主流雷電,MUMU,夜神,逍遙

    前言 最近游戲項(xiàng)目組又有新的要求,對(duì)于數(shù)據(jù)上報(bào)和數(shù)據(jù)統(tǒng)計(jì)接口,盡可能的具體化,比如是否是模擬器,模擬器的型號(hào),品牌等,都要求統(tǒng)計(jì),后續(xù)模擬器玩家在活動(dòng)發(fā)放,安全風(fēng)控等方面也易于分析和把控。 實(shí)現(xiàn) 在網(wǎng)上搜了搜,大概思路是: 1:模擬器的cpu是x86,arm的

    2024年02月05日
    瀏覽(50)
  • 雷電模擬器(安卓9)將bp證書(shū)安裝為系統(tǒng)證書(shū)

    雷電模擬器(安卓9)將bp證書(shū)安裝為系統(tǒng)證書(shū)

    在安卓7.0以上的系統(tǒng)版本中,app默認(rèn)不信任用戶安裝的證書(shū),只默認(rèn)信任系統(tǒng)證書(shū),需要將bp證書(shū)導(dǎo)入在系統(tǒng)證書(shū)內(nèi)。 1.導(dǎo)出bp證書(shū) 2.轉(zhuǎn)換證書(shū)格式 這里直接用kali內(nèi)的工具進(jìn)行轉(zhuǎn)換 將cacert.pem證書(shū)重命名為:9a5ba575.0 (上面計(jì)算的值) 3.使用adb上傳證書(shū)至模擬器 打開(kāi)雷電模擬

    2024年01月20日
    瀏覽(76)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包