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

python實(shí)現(xiàn)adb輔助點(diǎn)擊屏幕工具

這篇具有很好參考價(jià)值的文章主要介紹了python實(shí)現(xiàn)adb輔助點(diǎn)擊屏幕工具。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re
import os
import time
import subprocess
import tkinter as tk
from tkinter import messagebox
from PIL import Image, ImageTk

# 設(shè)置ADB路徑(根據(jù)你的系統(tǒng)和安裝路徑進(jìn)行調(diào)整)
ADB_PATH = 'C:/Users/DHY-20210315/AppData/Local/Android/Sdk/platform-tools/adb.exe'
# 設(shè)置截屏圖片顯示比例
scl = 0.7

# 創(chuàng)建一個(gè)GUI窗口
root = tk.Tk()
root.title("ADB輔助點(diǎn)擊助手")
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# 設(shè)置窗口大小
window_width = 900
window_height = 600
x = (screen_width - window_width) // 2
y = (screen_height - window_height) // 2
root.geometry(f"{window_width}x{window_height}+{x}+{y}")


# 函數(shù):通過ADB截屏并顯示
def capture_and_display():
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    # file = str(round(time.time() * 1000)) + '.png'
    file = 'screencap.png'
    scp = '/sdcard/Pictures/' + file
    capture_process = subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'screencap', scp])
    capture_process.wait()

    lsc = './' + file
    pull_process = subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'pull', scp, lsc])
    pull_process.wait()

    screenshot = Image.open(lsc)
    width, height = screenshot.size
    new_width = int(width * scl)
    new_height = int(height * scl)
    screenshot = screenshot.resize((new_width, new_height), Image.ANTIALIAS)
    s_w = new_width + 20
    s_h = new_height + 50
    root.geometry(f"{s_w}x{s_h}+{(screen_width - s_w) // 2}+{(screen_height - s_h) // 2}")

    img = ImageTk.PhotoImage(screenshot)
    img_label.config(image=img)
    img_label.image = img


# 函數(shù):通過ADB點(diǎn)擊圖片
def click_img(event):
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    if ck_var.get() == 1:
        for i in range(8):
            subprocess.Popen(
                [ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'tap', str(event.x / scl), str(event.y / scl)])
            time.sleep(0.01)
        ck_var.set(0)
    else:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'tap', str(event.x / scl), str(event.y / scl)])
    time.sleep(1)
    capture_and_display()


# 函數(shù):通過ADB發(fā)送按鍵
def send_back_command():
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'keyevent', '4'])
    time.sleep(1)
    capture_and_display()


# 函數(shù):通過ADB發(fā)送滑動(dòng)
def send_slide_command(arg):
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    if arg == 1:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'swipe', '969 1050 969 800 100'])
        time.sleep(1)
        capture_and_display()
    else:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'swipe', '969 800 969 1050 100'])
        time.sleep(1)
        capture_and_display()


# 函數(shù):通過ADB獲取設(shè)備名
def find_device():
    dvs = os.popen("adb devices").readlines()
    dfs = ''
    for ss in dvs:
        ss = ss.strip('\n')
        if 'List of devices' not in ss and len(ss) > 6 and 'offline' not in ss:
            dv = ss.split('\t')[0]
            p = subprocess.Popen("adb -s %s shell getprop ro.product.model" % dv, stdout=subprocess.PIPE)
            result = p.communicate()
            dn = result[0].decode('utf-8').strip()
            cold_bev = tk.Radiobutton(button_frame, text=dn, variable=r_var, value=dv)
            cold_bev.pack(side="left")
            if dfs == '':
                dfs = dv
    if dfs != '':
        r_var.set(dfs)


def find_ip(input_string):
    ip_pattern = r'\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b'
    ip_addresses = re.findall(ip_pattern, input_string)
    return ip_addresses[0]


# 函數(shù):通過ADB wifi連接設(shè)備
def wifi_connect():
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    dv = r_var.get()
    if r_var.get().startswith('192.168.'):
        messagebox.showinfo(title='提示', message='已經(jīng)是WiFi連接了??!')
        return
    p = subprocess.Popen("adb -s %s shell ip -f inet addr show wlan0" % dv, stdout=subprocess.PIPE)
    result = p.communicate()
    dn = result[0].decode('utf-8').strip()
    ip = find_ip(dn)
    subprocess.Popen([ADB_PATH, 'connect', ip])


button_frame = tk.Frame(root)
button_frame.pack()

capture_button = tk.Button(button_frame, text="截屏", command=capture_and_display)
capture_button.pack(side="left")
tk.Label(button_frame, text="   ").pack(side="left")
back_button = tk.Button(button_frame, text="后退", command=send_back_command)
back_button.pack(side="left")
tk.Label(button_frame, text="   ").pack(side="left")
up_button = tk.Button(button_frame, text="上滑", command=lambda: send_slide_command(1))
up_button.pack(side="left")
tk.Label(button_frame, text="   ").pack(side="left")
down_button = tk.Button(button_frame, text="下滑", command=lambda: send_slide_command(0))
down_button.pack(side="left")
tk.Label(button_frame, text="   ").pack(side="left")
ck_var = tk.IntVar()
c1 = tk.Checkbutton(button_frame, text='8連擊', variable=ck_var, onvalue=1, offvalue=0)
c1.pack(side="left")
tk.Label(button_frame, text="   ").pack(side="left")
r_var = tk.StringVar(value='')
find_device()
img_label = tk.Label(root)
img_label.pack()
img_label.bind('<Button-1>', click_img)
wifi_button = tk.Button(button_frame, text="WiFi連接", command=wifi_connect)
wifi_button.pack(side="left")

root.mainloop()

python實(shí)現(xiàn)adb輔助點(diǎn)擊屏幕工具,python3,java原創(chuàng),python,adb,開發(fā)語言,屏幕點(diǎn)擊

version 1.2:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import re
import os
import time
import subprocess
import tkinter as tk
from tkinter import messagebox
from PIL import Image, ImageTk

# 設(shè)置ADB路徑(根據(jù)你的系統(tǒng)和安裝路徑進(jìn)行調(diào)整)
ADB_PATH = 'C:/Users/DHY-20210315/AppData/Local/Android/Sdk/platform-tools/adb.exe'
# 設(shè)置截屏圖片顯示比例
scl = 0.7

# 創(chuàng)建一個(gè)GUI窗口
root = tk.Tk()
root.title("ADB輔助點(diǎn)擊助手")
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# 設(shè)置窗口大小
window_width = 900
window_height = 600
x = (screen_width - window_width) // 2
y = (screen_height - window_height) // 2
root.geometry(f"{window_width}x{window_height}+{x}+{y}")


# 函數(shù):通過ADB截屏并顯示
def capture_and_display():
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    # file = str(round(time.time() * 1000)) + '.png'
    file = 'screencap.png'
    scp = '/sdcard/Pictures/' + file
    capture_process = subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'screencap', scp])
    capture_process.wait()

    lsc = './' + file
    pull_process = subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'pull', scp, lsc])
    pull_process.wait()

    screenshot = Image.open(lsc)
    width, height = screenshot.size
    new_width = int(width * scl)
    new_height = int(height * scl)
    screenshot = screenshot.resize((new_width, new_height), Image.ANTIALIAS)
    s_w = new_width + 20
    s_h = new_height + 50
    root.geometry(f"{s_w}x{s_h}+{(screen_width - s_w) // 2}+{(screen_height - s_h) // 2}")

    img = ImageTk.PhotoImage(screenshot)
    img_label.config(image=img)
    img_label.image = img


# 函數(shù):通過ADB點(diǎn)擊圖片
def click_img(event):
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    if ck_var.get() == 1:
        for i in range(8):
            subprocess.Popen(
                [ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'tap', str(event.x / scl), str(event.y / scl)])
            time.sleep(0.01)
        ck_var.set(0)
    else:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'tap', str(event.x / scl), str(event.y / scl)])
    time.sleep(1)
    capture_and_display()


# 函數(shù):通過ADB發(fā)送按鍵
def send_back_command():
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'keyevent', '4'])
    time.sleep(1)
    capture_and_display()


# 函數(shù):通過ADB發(fā)送滑動(dòng)
def send_slide_command(arg):
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    if arg == 1:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'swipe', '969 1000 969 800 100'])
        time.sleep(1)
        capture_and_display()
    else:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'swipe', '969 800 969 1000 100'])
        time.sleep(1)
        capture_and_display()


# 函數(shù):通過ADB獲取設(shè)備名
def find_device():
    for widget in devices_frame.winfo_children():
        widget.destroy()
    dvs = os.popen("adb devices").readlines()
    dfs = ''
    for ss in dvs:
        ss = ss.strip('\n')
        if 'List of devices' not in ss and len(ss) > 6 and 'offline' not in ss:
            dv = ss.split('\t')[0]
            p = subprocess.Popen("adb -s %s shell getprop ro.product.model" % dv, stdout=subprocess.PIPE)
            result = p.communicate()
            dn = result[0].decode('utf-8').strip()
            cold_bev = tk.Radiobutton(devices_frame, text=dn, variable=r_var, value=dv)
            cold_bev.pack(side="left")
            if dfs == '':
                dfs = dv
    if dfs != '':
        r_var.set(dfs)
    else:
        r_var.set('')


def find_ip(input_string):
    ip_pattern = r'\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b'
    ip_addresses = re.findall(ip_pattern, input_string)
    return ip_addresses[0]


# 函數(shù):通過ADB wifi連接設(shè)備
def wifi_connect():
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    dv = r_var.get()
    if r_var.get().startswith('192.168.'):
        messagebox.showinfo(title='提示', message='已經(jīng)是WiFi連接了??!')
        return
    p = subprocess.Popen("adb -s %s shell ip -f inet addr show wlan0" % dv, stdout=subprocess.PIPE)
    result = p.communicate()
    dn = result[0].decode('utf-8').strip()
    ip = find_ip(dn)
    subprocess.Popen([ADB_PATH, 'connect', ip])


button_frame = tk.Frame(root)
button_frame.pack()

capture_button = tk.Button(button_frame, text="刷新截屏", command=capture_and_display)
capture_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
back_button = tk.Button(button_frame, text="后退", command=send_back_command)
back_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
up_button = tk.Button(button_frame, text="上滑", command=lambda: send_slide_command(1))
up_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
down_button = tk.Button(button_frame, text="下滑", command=lambda: send_slide_command(0))
down_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
ck_var = tk.IntVar()
c1 = tk.Checkbutton(button_frame, text='8連擊', variable=ck_var, onvalue=1, offvalue=0)
c1.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
r_var = tk.StringVar(value='')
devices_frame = tk.Frame(button_frame)
devices_frame.pack(side="left")
find_device()
img_label = tk.Label(root)
img_label.pack()
img_label.bind('<Button-1>', click_img)
wifi_button = tk.Button(button_frame, text="WiFi連接", command=wifi_connect)
wifi_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
wifi_button = tk.Button(button_frame, text="獲取設(shè)備", command=find_device)
wifi_button.pack(side="left")

root.mainloop()

version 1.3:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# version v1.3

import re
import os
import time
import subprocess
import tkinter as tk
from tkinter import messagebox
from PIL import Image, ImageTk

# 設(shè)置ADB路徑(根據(jù)你的系統(tǒng)和安裝路徑進(jìn)行調(diào)整)
ADB_PATH = 'C:/Users/DHY-20210315/AppData/Local/Android/Sdk/platform-tools/adb.exe'
# 設(shè)置截屏圖片顯示比例
scl = 0.7

# 創(chuàng)建一個(gè)GUI窗口
root = tk.Tk()
root.title("ADB輔助點(diǎn)擊助手")
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# 設(shè)置窗口大小
window_width = 900
window_height = 600
x = (screen_width - window_width) // 2
y = (screen_height - window_height) // 2
root.geometry(f"{window_width}x{window_height}+{x}+{y}")


# 函數(shù):通過ADB截屏并顯示
def capture_and_display():
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    # file = str(round(time.time() * 1000)) + '.png'
    file = 'screencap.png'
    scp = '/sdcard/Pictures/' + file
    capture_process = subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'screencap', scp])
    capture_process.wait()

    lsc = './' + file
    pull_process = subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'pull', scp, lsc])
    pull_process.wait()

    screenshot = Image.open(lsc)
    width, height = screenshot.size
    new_width = int(width * scl)
    new_height = int(height * scl)
    screenshot = screenshot.resize((new_width, new_height), Image.ANTIALIAS)
    s_w = new_width + 20
    s_h = new_height + 50
    root.geometry(f"{s_w}x{s_h}+{(screen_width - s_w) // 2}+{(screen_height - s_h) // 2}")

    img = ImageTk.PhotoImage(screenshot)
    img_label.config(image=img)
    img_label.image = img


# 函數(shù):通過ADB點(diǎn)擊圖片
def click_img(event):
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    if ck_var.get() == 1:
        for i in range(8):
            subprocess.Popen(
                [ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'tap', str(event.x / scl), str(event.y / scl)])
            time.sleep(0.2)
        ck_var.set(0)
    else:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'tap', str(event.x / scl), str(event.y / scl)])
    time.sleep(1)
    capture_and_display()


# 函數(shù):通過ADB發(fā)送按鍵
def send_back_command():
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'keyevent', '4'])
    time.sleep(1)
    capture_and_display()


# 函數(shù):通過ADB發(fā)送滑動(dòng)
def send_slide_command(arg):
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    if arg == 1:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'touchscreen', 'swipe', '969 800 969 300 100'])
        time.sleep(1)
        capture_and_display()
    elif arg == 2:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'touchscreen', 'swipe', '1920 500 1620 500 1920 800 1620 800 100'])
        time.sleep(1)
        capture_and_display()
    elif arg == 3:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'keyevent', '26'])
        time.sleep(1)
        capture_and_display()
    elif arg == 4:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'reboot', '-p'])
        time.sleep(1)
        capture_and_display()
    elif arg == 5:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'touchscreen', 'swipe', '1300 500 300 500 100'])
        time.sleep(1)
        capture_and_display()
    elif arg == 6:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'touchscreen', 'swipe', '300 500 1300 500 100'])
        time.sleep(1)
        capture_and_display()
    else:
        subprocess.Popen([ADB_PATH, '-s', r_var.get(), 'shell', 'input', 'touchscreen', 'swipe', '969 300 969 800 100'])
        time.sleep(1)
        capture_and_display()


# 函數(shù):通過ADB獲取設(shè)備名
def find_device(aa=0):
    for widget in devices_frame.winfo_children():
        widget.destroy()
    dvs = os.popen("adb devices").readlines()
    dfs = ''
    for ss in dvs:
        ss = ss.strip('\n')
        if 'List of devices' not in ss and len(ss) > 6 and 'offline' not in ss:
            dv = ss.split('\t')[0]
            p = subprocess.Popen("adb -s %s shell getprop ro.product.model" % dv, stdout=subprocess.PIPE)
            result = p.communicate()
            dn = result[0].decode('utf-8').strip()
            cold_bev = tk.Radiobutton(devices_frame, text=dn, variable=r_var, value=dv)
            cold_bev.pack(side="left")
            if dfs == '':
                dfs = dv
    if dfs != '':
        r_var.set(dfs)
    else:
        r_var.set('')
        if aa == 0:
            messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')


def find_ip(input_string):
    ip_pattern = r'\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b'
    ip_addresses = re.findall(ip_pattern, input_string)
    return ip_addresses[0]


# 函數(shù):通過ADB wifi連接設(shè)備
def wifi_connect():
    if r_var.get() == '':
        messagebox.showinfo(title='提示', message='沒有連接設(shè)備呀!')
        return
    dv = r_var.get()
    if r_var.get().startswith('192.168.'):
        messagebox.showinfo(title='提示', message='已經(jīng)是WiFi連接了啊!')
        return
    p = subprocess.Popen("adb -s %s shell ip -f inet addr show wlan0" % dv, stdout=subprocess.PIPE)
    result = p.communicate()
    dn = result[0].decode('utf-8').strip()
    ip = find_ip(dn)
    subprocess.Popen([ADB_PATH, 'connect', ip])


button_frame = tk.Frame(root)
button_frame.pack()

capture_button = tk.Button(button_frame, text="刷新截屏", command=capture_and_display)
capture_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
back_button = tk.Button(button_frame, text="后退", command=send_back_command)
back_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
up_button = tk.Button(button_frame, text="上滑", command=lambda: send_slide_command(1))
up_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
down_button = tk.Button(button_frame, text="下滑", command=lambda: send_slide_command(0))
down_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
up_button = tk.Button(button_frame, text="左滑", command=lambda: send_slide_command(5))
up_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
down_button = tk.Button(button_frame, text="右滑", command=lambda: send_slide_command(6))
down_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
#down_button = tk.Button(button_frame, text="分屏", command=lambda: send_slide_command(2))
#down_button.pack(side="left")
#tk.Label(button_frame, text=" ").pack(side="left")
down_button = tk.Button(button_frame, text="點(diǎn)亮", command=lambda: send_slide_command(3))
down_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
down_button = tk.Button(button_frame, text="關(guān)機(jī)", command=lambda: send_slide_command(4))
down_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
ck_var = tk.IntVar()
c1 = tk.Checkbutton(button_frame, text='8連擊', variable=ck_var, onvalue=1, offvalue=0)
c1.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
r_var = tk.StringVar(value='')
devices_frame = tk.Frame(button_frame)
devices_frame.pack(side="left")
find_device(1)
img_label = tk.Label(root)
img_label.pack()
img_label.bind('<Button-1>', click_img)
wifi_button = tk.Button(button_frame, text="WiFi連接", command=wifi_connect)
wifi_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")
wifi_button = tk.Button(button_frame, text="獲取設(shè)備", command=find_device)
wifi_button.pack(side="left")
tk.Label(button_frame, text=" ").pack(side="left")

root.mainloop()

python實(shí)現(xiàn)adb輔助點(diǎn)擊屏幕工具,python3,java原創(chuàng),python,adb,開發(fā)語言,屏幕點(diǎn)擊文章來源地址http://www.zghlxwxcb.cn/news/detail-704832.html

到了這里,關(guān)于python實(shí)現(xiàn)adb輔助點(diǎn)擊屏幕工具的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【經(jīng)典算法】LeetCode 5: 最長回文子串(Java/C/Python3實(shí)現(xiàn)含注釋說明,Medium)

    【經(jīng)典算法】LeetCode 5: 最長回文子串(Java/C/Python3實(shí)現(xiàn)含注釋說明,Medium)

    標(biāo)簽(題目類型):回文串、動(dòng)態(tài)規(guī)劃 原題:LeetCode 5 思路 Dynamic Programming(DP) 動(dòng)態(tài)規(guī)劃是一種將問題分解成子問題并分別計(jì)算的優(yōu)化技術(shù)。對于回文子串,我們可以使用動(dòng)態(tài)規(guī)劃來解決。 對于一個(gè)子串而言,如果它是回文串,并且長度大于 2,那么將它首尾的兩個(gè)字母去除之后

    2024年04月14日
    瀏覽(27)
  • 【iOS免越獄】利用IOS自動(dòng)化web-driver-agent_appium-實(shí)現(xiàn)自動(dòng)點(diǎn)擊+滑動(dòng)屏幕

    【iOS免越獄】利用IOS自動(dòng)化web-driver-agent_appium-實(shí)現(xiàn)自動(dòng)點(diǎn)擊+滑動(dòng)屏幕

    1.目標(biāo) 在做飯、鍛煉等無法騰出雙手的場景中,想刷刷抖音 刷抖音的時(shí)候有太多的廣告 如何解決痛點(diǎn) 抖音自動(dòng)播放下一個(gè)視頻 ?iOS系統(tǒng)高版本無法 越獄 安裝插件 2.操作環(huán)境 MAC一臺,安裝 Xcode iPhone一臺,16 系統(tǒng)以上最佳 ?3.流程 下載最新?web-driver-agent_appium xcode 打開 ?配置

    2024年02月08日
    瀏覽(23)
  • [1159]adb判斷手機(jī)屏幕狀態(tài)并點(diǎn)亮屏幕

    喚醒屏幕操作 解鎖屏幕 關(guān)閉和開啟屏幕樣例 重新啟動(dòng)手機(jī)app 以上操作需要adb環(huán)境已經(jīng)搭建好,使用以下命令查看連接設(shè)備 想獲取某個(gè)APP名稱用于啟動(dòng)時(shí),手機(jī)先打開APP,然后執(zhí)行以下命令 參考:https://www.cnblogs.com/Kirito-Asuna-Yoyi/p/Python-ADB1.html https://blog.csdn.net/weixin_40895135/

    2024年02月11日
    瀏覽(18)
  • 【ADB】借助ADB模擬滑動(dòng)屏幕,并進(jìn)行循環(huán)

    adb shell input的swipe指令格式: swipe x1 y1 x2 y2 time(以毫秒為單位) 進(jìn)行循環(huán) 把上面adb shell指令復(fù)制到txt中,并重命名為.bat,手機(jī)連接電腦,打開USB調(diào)試,雙擊運(yùn)行即可,就可以看到屏幕下滑,這里是循環(huán)10次

    2024年02月04日
    瀏覽(14)
  • android如何通過adb快速開啟、關(guān)閉輔助副屏

    android如何通過adb快速開啟、關(guān)閉輔助副屏

    adb 指令 效果

    2024年02月01日
    瀏覽(23)
  • Python3(二):開發(fā)工具 IDEA配置

    Python3(二):開發(fā)工具 IDEA配置

    因?yàn)橐恢笔褂肐DEA進(jìn)行Java開發(fā),對IDEA相對熟悉,上手比較快,所以就選擇了IDEA進(jìn)行相關(guān)的Python腳本編寫。當(dāng)然也可以選擇vsCode,PyCharm等工具。 本文主要介紹IDEA配置及如何創(chuàng)建Python項(xiàng)目。 選擇本地安裝的Python環(huán)境即可。 File - Project,選擇Project SDK,一路Next,然后設(shè)置項(xiàng)目名

    2024年02月16日
    瀏覽(88)
  • adb控制手機(jī)屏幕滑動(dòng)

    adb控制手機(jī)屏幕滑動(dòng)

    前言: 這個(gè)用的是小米手機(jī),在“開發(fā)者選項(xiàng)中”把 “USB調(diào)試”和**“USB調(diào)試(安全設(shè)置**)”兩個(gè)都打開, 也可以把 指針位置 打開 來看觸控點(diǎn)在屏幕的坐標(biāo): 2 adb 劃動(dòng)相冊 其中 1.choice /t 1 /d y /n nul 的1 是1秒鐘滑動(dòng)一次 2.adb shell input swipe 350 1000 850 1000 200 350 1000 850 1000 2

    2024年02月13日
    瀏覽(21)
  • 知識圖譜-命名實(shí)體-關(guān)系-免費(fèi)標(biāo)注工具-快速打標(biāo)簽-Python3

    知識圖譜-命名實(shí)體-關(guān)系-免費(fèi)標(biāo)注工具-快速打標(biāo)簽-Python3

    你好! 這是一款實(shí)體關(guān)系聯(lián)合標(biāo)注的本地小程序,以 P y t h o n 3 Python3 P y t h o n 3 實(shí)現(xiàn)。本系統(tǒng)是一種標(biāo)注文本語料中命名實(shí)體與關(guān)系或?qū)傩缘陌胱詣?dòng)化軟件系統(tǒng),應(yīng)用 P y t h o n Python P y t h o n 編程實(shí)現(xiàn)可視化界面和主要功能,利用 H T M L HTML H TM L 和 C S S CSS CSS 提示標(biāo)注教程與

    2024年02月03日
    瀏覽(21)
  • 屏幕分辨率dpi解析(adb 調(diào)試查看)

    屏幕分辨率dpi解析(adb 調(diào)試查看)

    author daisy.skye的博客_CSDN博客-嵌入式,Qt,Linux領(lǐng)域博主 ro.sf.lcd_density屬性指定了這個(gè)機(jī)型使用的dpi是多少,dpi全稱是dots?per?inch,對角線每英寸的像素點(diǎn)的個(gè)數(shù)。 密度 ldpi mdpi hdpi xhdpi xxhdpi 分辨率 240x320 320x480 480x800 720x1280 1080x1920 系統(tǒng)dpi 120 160 240 320 480 基準(zhǔn)比例 0.75 1 1.5 2 3 adb?查

    2024年02月03日
    瀏覽(22)
  • 為teamcity的代碼語法檢查工具pyflakes增加支持python2和python3

    為teamcity的代碼語法檢查工具pyflakes增加支持python2和python3

    TeamCity是一款由JetBrains公司開發(fā)的持續(xù)集成和部署工具,它提供了豐富的功能來幫助團(tuán)隊(duì)協(xié)作進(jìn)行軟件開發(fā)。其中包括代碼檢查、自動(dòng)化構(gòu)建、測試運(yùn)行、版本控制等多個(gè)方面。 在我們團(tuán)隊(duì)中使用TeamCity進(jìn)行配合pyflakes代碼檢查,我們需要升級pyflakes到支持python3,同時(shí)保留py

    2024年02月07日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包