본문 바로가기

프로그램 개발일지

[Python] 파이썬 블루스택 제어하기 - 1

반응형
 

Instagram

 

www.instagram.com

 
 
프로그램 개발 의뢰로 PC에서 모바일 어플을 제어해야만 했다.
 
 
블루스택으로 제어 하고 싶다고 하셨기에 .....
 
 
이번에는 파이썬으로 블루스택 제어하는 프로그램을 만들어 보자 !
 
 
 
먼저 공식홈페이지에서 블루스택을 설치한다.
 

 

 

블루스택: PC 및 Mac으로 안드로이드 앱플레이어와 클라우드 게임 플랫폼에서 게임 플레이

세상에서 가장 빠르고 가벼운 안드로이드 앱플레이어 및 클라우드 게임 플랫폼으로 Windows 및 Mac에서 RPG, 전략, 액션 모바일 게임을 원활하게 플레이해 보세요.

www.bluestacks.com

 
 
 
 
 
다음 ADB를 설치 해야한다.
 
"""
Android Debug Bridge(ADB)는 Android 기기와 컴퓨터 사이의 통신을 가능하게 해주는 도구입니다. ADB는 Android SDK(Software Development Kit)의 일부로, 개발자들이 Android 애플리케이션을 개발하고 디버깅하는 데 사용됩니다.
"""
라고 한다.
 
아무튼 설치해준다
 

 

SDK 플랫폼 도구 출시 노트  |  Android Studio  |  Android Developers

Android SDK 플랫폼 도구는 Android SDK의 구성요소입니다.

developer.android.com

 
Windows용, Linux용, Mac용이 있다.
컴퓨터에 맞는걸로 설치해주자.
나는 Windows용으로 했다 .
 
 
 
 
다운로드 받은 .zip 파일을 C:\에 압축을 풀어준다.
 
그럼 C:\platform-tools-latest-windows\platform-tools 라는 경로가 생길텐데,
 
 
이걸 환경변수에 넣어줘야 한다.
 
 
내컴퓨터 -> 속성 -> 고급 시스템 설정 -> 환경 변수 -> 시스템 변수탭에서 path클릭 -> 편집 -> 새로만들기 -> C:\platform-tools-latest-windows\platform-tools 입력 -> 확인
 
 

 
그 후 cmd에서 adb version을 입력해보자.
 
위와 같이 나온다면 잘 된것 !
 
 
 

 
 
설치된 블루스택을 실행하고, 설정창에 가자.
 
고급 기능 설정에서 Android 디버그 브리지(ADB)를 체크해주고
저장해주면 이제 세팅 끝.
 
 
 
 
이제 파이썬으로 돌아와서,
 
 
필요한 모듈을 불러오자.
 
 
 

import subprocess

 
 
 
그 뒤 앞으로 요긴하게 써먹어야 하니까 class로 묶어주자.
 
 
 
 

class ADB:
    def __init__(self, device_ip='127.0.0.1', port=5555):
        self.device_ip = device_ip
        self.port = port
        self.device_id = f'{self.device_ip}:{self.port}'

 
ADB라는 클래스를 생성하고,
device_ip와 포트를 설정해주자.
블루스택과 연동하려면 그대로 사용하면된다.
 
 

def shell(self, command):
    result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
    if result.returncode == 0:
        return result.stdout
    else:
        return result.stderr

 
 
 
명령어를 블루스택에 전달할 함수도 만들어 준다.
 
command인자를 받아서 블루스택에 전달한다고 보면 된다.
 
 

def connect(self):
    command = f'adb connect {self.device_id}'
    return self.shell(command)

 
실제로 블루스택과 연결할 함수 !
 
 

def apps(self, app_package):
    command = f'adb -s {self.device_id} shell monkey -p {app_package} -c android.intent.category.LAUNCHER 1'
    return self.shell(command)

 
 
apps함수로 app_packge에 실제 실행할 앱패키지를 받아온다.
그 후 아까 만든 shell함수에 보내서 블루스택에서 앱을 실행시키는 함수 !
 
 

adbs = ADB()
res = adbs.connect()
print(res)

app = 'com.android.chrome'
appres = adbs.apps(app)
print(appres)

 
 
 
 
 

 
 
 

 
 
 
 
접속도 잘 되고, 블루스택에서 크롬도 켜졌다.
 
 
 
 
기본적인건 잘 작동하는지 확인이 됐고, 이제 추가적인 행동들을 할 수 있도록
 
더 자세히 파고들어보자 !
 
 
 
물론 2편에서 !

 

 

 

 

 

 

 

 

[종합 매크로] 공지사항

---업데이트 예정

myworld1004.tistory.com

 

 

 

코딩쟁이들 놀이터 : 네이버 카페

세상 모든 코딩쟁이들의 카페입니다

cafe.naver.com

 

 

 

주식회사 유메

#프로그램제작 #프로그램

open.kakao.com

 

반응형