scrcpy 라이브러리를 통해 다중 미러링 구현까지 포스팅을 해봤었는데, 앞 단계에서 USB 연결을 통해서 유선연결을 꼭 해야 하는 사전작업이 있었습니다.USB 케이블이 없거나, 이게 귀찮으신 분들이 활용하기 좋을 것 같습니다. 2024.04.03 - [쓸만한 지식] - [SCRCPY] 안드로이드 기기 USB, WIFI를 통한 미러링, 다중 미러링 [SCRCPY] 안드로이드 기기 USB, WIFI를 통한 미러링 , 다중 미러링scrcpy 사용 동기 더보기 개발을 하다가 내 프로젝트를 다른 사람에게 소개하는 과정에서 미러링을 통해 pc 화면에 내 디바이스의 화면을 공유해서 보여주는 경우가 있다. 게다가 두 개 이상의 디goharry.tistory.com 환경변수 설정까지는 앞의 글을 보시면 자세히 나와있..
안드로이드에서 어플리케이션에 대한 패키지 이름을 알아야 할 때가 있는데, 이걸 얻는 방법에 대해서 간단하게 정리해보려고 합니다. 플레이스토어플레이스토어에서 패키지 이름을 알고 싶은 앱에 대해서 검색을 하면 url에 패키지 이름이 나오게 된다.예를 들어 크롬에 대한 패키지 이름을 알고 싶다고 했을 때,검색을 통해 상세페이지로 들어가보겠습니다. 짜잔 위와같이 주소의 id 에 해당하는 부분이 패키지 이름인 것을 확인할 수 있습니다. 코드로 확인플레이스토어에 등록이 안되어 있거나 검색이 안되는 경우는 그럼 어떻게 찾을 수 있을까요?코드를 통해서 확인해 볼 수 있습니다.PackageManager를 통해서 앱정보에 대한 리스트를 받아와서 결과를 뿌려줄 수 있습니다.결과를 뿌려줄때 출력형태는 본인이 편하신대로 코딩..
Assert단언문이라고도 하는 assert는 특정 조건이 true 인지 확인합니다.조건이 false 일 경우, AssertError를 발생시켜 프로그램을 비정상 종료 시킵니다. 쉽게 생각하면,내가 참이라고 생각하는 결과가 정말 참인지 검증할 때 사용하는데, 만약 참이라면 아무 문제가 없고 거짓이라면 AssertionError를 발생시키게 됩니다. 기본문법assert 조건식;assert 조건식 : 오류메시지;조건식 : true 이어야 하고, false일 경우 AssertError가 발생합니다.오류메시지(선택) : 조건이 false일 때 출력할 메시지 입니다.Assert 키워드 사용 전 세팅Assert 키워드를 사용하기 위해서는 JVM에서 -ea 옵션을 설정해 주어야 한다. IntelliJ를 기준으로 설명하..
버전 카탈로그를 아시나요?이번에 새로운 노트북으로 안드로이드 스튜디오를 설치하고 나서 프로젝트를 생성했더니 제가 알던 방법과는 조금 다르게 구성이 되어 있더라고요.원래 있던 기능인데 레이디버그 최신버전부터는 버전카탈로그로 구성되도록 바뀐 것 같습니다.그래서 한번 관련내용을 정리해보려고 합니다. https://developer.android.com/build/migrate-to-catalogs?hl=ko&_gl=1*ji5a6o*_up*MQ..*_ga*MTIyODE1ODc1OC4xNzM0NjU3MDIz*_ga_6HH9YJMN9M*MTczNDY1NzAyMi4xLjAuMTczNDY1NzAyMi4wLjAuMzQ4NDgzNTcw 버전 카탈로그로 빌드 이전 | Android Studio | Android De..
루틴프로그래밍에서 루틴이란 프로그램의 흐름을 추상적으로 일컫는 말입니다.메인루틴과 서브루틴으로 나눌 수 있습니다.main 함수에 의해 수행되는 프로그램이 있다고 가정하면,메인 루틴 : main 함수에 의해 수행되는 프로그램의 흐름서브 루틴 : main 함수 안에서 실행되는 개별 함수들에 의해 수행되어야 하는 흐름 코루틴 실행의 지연과 재개를 허용함으로써, 비선점적 멀티태스킹을 위한 서브 루틴을 일반화한 컴퓨터 프로그램 구성요소 안드로이드에서는 AsyncTask를 이용해서 손쉽게 비동기 프로그래밍을 구현했었지만 구글은 컨택스트 누수, 콜백 누락, 구성 변경 시 충돌 과 같은 여러가지 문제로 API 30 이상부터 deprecate 시키고 코루틴을 사용하도록 권장하고 있습니다.코루틴과 스레드구글에서는 Asy..
ANR에 관한 안드로이드 공식문서를 보고 정리해 보았습니다.https://developer.android.com/topic/performance/vitals/anr?hl=ko ANR | App quality | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. ANR 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 앱의 UI 스레드가 너무 오랫동안 차단되면 'ANRdeveloper.android.com ANR 개발을 하다 보면 앱이 비정상종료될 때 이런 메시지가 나오는 것을 많이 보셨을 텐데요.Android에서는 앱의 UI 스레드가 너무 오랫동안 차단되면 위와 같은 Application Not ..
메모리 구조프로그램이 실행되면 메모리에 로드 되게 됩니다. 이때 프로그램에서 사용되는 변수들을 저장할 메모리도 필요한데, 이때 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있습니다. 프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간은 총 4가지(코드 영역,데이터 영역, 힙 영역, 스택 영역) 이 있습니다. 스택(Stack) 영역메모리의 스택(stack) 영역은 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 영역입니다.스택영역은 함수의 호출화 함께 할당되며, 함수의 호출이 완료되면 소멸합니다.스택영역은 푸시 동작으로 데이터를 저장하고, 팝 동작으로 데이터를 인출합니다.스택 구조는 후입선출(LIFO, Last-In Frist-Out) 방식에 따라 동작하므로, 가장 늦..
이번에 저는 시리얼 통신을 이용해서 안드로이드 앱에서 모터나 센서를 제어해 보는 예제를 만들어보았습니다. 과거에 파이썬으로 라즈베리파이를 이용해서 대학교 졸업작품을 만들었던 기억과 지금 안드로이드 개발을 공부하고 있으니까 두개를 합쳐서 예제를 한번 만들어볼까? 라는 생각이 들었습니다.진짜로 해보고 싶었던 건 블루투스 또는 와이파이를 통해서 센서나 모터를 제어하고 싶었지만, 시간관계상 급하게 인터넷에서 아두이노를 주문한 나머지 관련된 모듈이 포함되지 않은 채로 주문할 수밖에 없었습니다.그래서 결국 USB를 이용하였습니다. 시리얼 통신이란?데이터를 한번에 1비트씩 순차적으로 전송하는 방식의 통신입니다.일반적으로 컴퓨터와 외부장치 간의 데이터 전송에 사용되는데 병렬통신과 달리 하나의 데이터 라인을 사용하여 데..
이전 글에서 액티비티 생명주기를 알아보았습니다.각 버튼으로 프래그먼트를 프레임레이아웃에 프래그먼트를 띄우는 예제를 통해서 프래그먼트의 생명주기에 대해 알아보려고 합니다.2024.11.08 - [안드로이드] - [Android] Activity Lifecycle [Android] Activity Lifecycle안드로이드를 공부할 때 가장 먼저 공부하게 되는 것 중에 하나가 생명주기입니다.안드로이드 4대 컴포넌트 중 하나인 액티비티의 생명주기에 관해서 적어보려고 합니다.차근차근 알아보겠습goharry.tistory.com 프래그먼트 생명주기(Fragment Lifecycle)프래그먼트 생명주기의 종류는 액티비티의 생명주기 종류보다 많습니다.간단하게 알아보겠습니다.onAttach()프래그먼트가 액티비티..
안드로이드를 공부할 때 가장 먼저 공부하게 되는 것 중에 하나가 생명주기입니다. 안드로이드 4대 컴포넌트 중 하나인 액티비티의 생명주기에 관해서 적어보려고 합니다. 차근차근 알아보겠습니다.1. 액티비티 생명주기(Activity Lifecycle)액티비티 생명주기에 대한 내용이 안드로이드 공식문서에 다음과 같이 적혀 있습니다.사용자가 앱을 탐색하고, 앱에서 나가고, 앱으로 다시 돌아가면, 앱의 Activity 인스턴스는 생명 주기 안에서 서로 다른 상태를 통해 전환됩니다. Activity 클래스는 여러 콜백을 제공합니다.https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko 활동 수명 주기 | Android Dev..