본문 바로가기

SW Engineering41

[Android] Activity resumed, paused가 무한 반복되는 현상 오류 : Activity resume, pause 가 무한 반복되는 현상 관련 로그 V/FA: Activity resumed, time: 8562145 V/FA: Screen exposed for less than 1000 ms. Event not sent. time: 32 V/FA: Activity paused, time: 8562177 위와 같은 로그가 무한 반복되고, 아무런 Exception도 안뜨는 상황이고 화면은 멈춘 상태였다. App keeps pausing and resuming, in an endless loop, but doesn't throw an exception 발생 시점 타겟 버전 S인 앱을 안드로이드 11 기종으로 빌드 테스트 수행 시 발생 발생 원인 Permission 요청 로.. 2022. 5. 25.
[Android] 권한(Permission) # 1 - 시스템 권한 (feat. Bluetooth) [Android] 권한(Permission) # 1 - 시스템 권한 (feat. Bluetooth) 작성 시점 : 22.05.15 안드로이드 개발을 하다 보면, 특정 기능을 사용할 때 권한(Permission)이 필요한 경우가 있다. 특히 안드로이드 12 (API Level 31 이상)부터 몇 가지 권한의 변경 사항이 있어 현재 내가 개발 중인 앱도 컴파일 버전(CompileSdk)을 올려야 할 필요가 있었는데 그 영향이 있었다. 그래서 내친김에 권한(Permission)에 대해 정리해보고 기본적인 권한 요청 방식에 대해 알아보고자 한다. 1. 권한의 기본 개념 2. 권한의 종류 3. 권한 요청의 기본 로직 권한의 기본 개념 권한(Permission) 이란? 우선 권한이 무엇인지 간단히 살펴보고자 한다... 2022. 5. 16.
[Jetpack AAC] Data Binding 기본 #2 : ObservableField [Jetpack AAC] Data Binding 기본 #2 : ObservableField https://full-stack.tistory.com/23 [Jetpack AAC] Data Binding 기본 #1 [Jetpack AAC] Data Binding 기본 #1 Jetpack은 2018년에 첫 공개된 안드로이드 개발에 도움을 주는 패키지 묶음이다. 기존의 구글에서 제공하던 서포트 라이브러리를 모아 통합한 것으로, 그중 AAC(Android full-stack.tistory.com Android Jetpack의 아키텍처 컴포넌트(AAC) 중 하나인 데이터 바인딩의 기본기를 좀 더 학습해보고자 한다. 이번에는 이벤트 바인딩의 방법과 옵저버블 필드(ObservableField)에 대해 알아보겠다. 간단.. 2022. 4. 30.
[Android] INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 오류 : INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 관련 키워드 android.content.pm.PackageParser$PackageParserException /data/app/vmdl170122893.tmp/base.apk (at Binary XML file line #33): 발생 시점 안드로이드 스튜디오에 오픈 소스 프로젝트 Import 한 후, 스마트폰에 빌드 시 발생 해결 방법 1. Manifest 파일의 모든 패키지명이 소문자인지 확인. com.fbiego.ota.MainActivity com.fbiego.ota.MainActivity 2. 안드로이드 12(S+) 부터는 모든 Manifest에서 모든 컴포넌트 태그 안쪽에 android:exported="tru.. 2022. 4. 29.
[Pattern] Android의 설계 패턴 2 : MVP by Java [Pattern] Android의 설계 패턴 2 : MVP by Java 안드로이드에서의 MVC를 살펴보았으니, 이제 MVP를 살펴볼 차례이다. Eric Maxwell 선생님께서는 안드로이드에서 어떻게 MVP를 활용하는지 역시 TicTacToe 예제를 통해 보여주셨다. 대단하신 분이다. 우선 MVP가 무엇인지부터 살펴보고 가자. MVP는 모델(Model)-뷰(View)-프레젠터(Presenter)라는 책임 집합으로 나뉘는 설계 패턴이다. https://github.com/ericmaxwell2003/ticTacToe GitHub - ericmaxwell2003/ticTacToe: A simple tic tac toe app, to illustrate the use of MVC, MVP, and MVVM .. 2022. 4. 17.
[Jetpack AAC] Data Binding 기본 #1 [Jetpack AAC] Data Binding 기본 #1 Jetpack은 2018년에 첫 공개된 안드로이드 개발에 도움을 주는 패키지 묶음이다. 기존의 구글에서 제공하던 서포트 라이브러리를 모아 통합한 것으로, 그중 AAC(Android Architecture Component)는 안드로이드 MVVM(Model-View-ViewModel) 패턴의 시대를 연 장본인이다. 그로부터 약 4년이 지난 지금, MVVM은 이제 대세다. MVVM을 시작하기 위해선 뭐부터 시작해야 할까? 바로 데이터 바인딩(Data Binding) 이다. 데이터 바인딩은 선언적 형식으로 UI와 데이터 소스를 연결하는 행위를 말한다. 이게 뭔 소린가? 그동안 UI 구성하고 데이터 소스 연결 잘해왔는데? 선언형 UI란 무엇일까. 일단 .. 2022. 4. 12.
[Pattern] Android의 설계 패턴 1 : MVC by Java [Pattern] Android의 설계 패턴 1 - MVC Eric Maxwell 선생님께서 작성하신 안드로이드의 패턴 간단 정리를 통해 그동안 머릿속에 있던 안드로이드 설계 패턴에 대한 파편화된 기억을 모아보고자 한다. 안드로이드에서 쓰이는 패턴은 크게 MVC, MVP, MVVM이 있지만 각기 장/단점이 있고, 늘 엔지니어들 사이에서 무엇이 나은가에 대한 논의는 계속해서 이루어지고 있다. 최근(2017 이후)에 이르러서는 구글이 제시하는 Jetpack을 통한 설계로 중간~대규모 프로젝트에는 거의 MVVM가 많이 쓰인다. 그렇다고 MVVM이 최고로 좋다!는 아니고 어떤 경우는 MVC, MVP가 좋을 때도 있다. 그리고 왜 MVVM 으로 귀결되는 추세를 보이는지 더 잘 알기위해선 MVC, MVP에 대해 당.. 2022. 4. 1.