Android Activity Life Cycle
·
Android
[안드로이드 공식문서] 활동 수명 주기에 관한 이해 | Android 개발자 | Android Developers 활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페 developer.android.com 🎉Acitivity Life Cycle 사용자가 앱에서 하는 다양한 동작을 통해 앱의 Activity는 다양한 액티비티 생명주기의 상태 변화를 취합니다. 이번 장에선 사용자의 동작에 따른 액티비티와 프래그먼트의 생명 주기 패러다임에 대해 설명하고 각 생명주기에 따른 콜백 함수에 대해 다뤄보겠습니다. 생명 주기를 쉽게 설명하자면 실제 화면에 표시되는 유무를 생각하면 편합..
Android Platform Architecture
·
Android
[안드로이드 공식문서] 애플리케이션 기본 항목 | Android 개발자 | Android Developers 애플리케이션 기본 항목 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 앱은 Kotlin, Java, C++ 언어를 사용하여 작성할 수 있습니다. Android SDK 도구는 모 developer.android.com [안드로이드 공식문서] 플랫폼 아키텍처 | Android 개발자 | Android Developers Android is an open source, Linux-based software stack created for a wide array of devices and form factors. The following diagram sho..
Android Main Thread
·
Android
[안드로이드 공식문서] 프로세스 및 스레드 개요 | App quality | Android Developers 프로세스 및 스레드 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 애플리케이션 구성 요소가 시작되고 애플리케이션에 실행 중인 다른 구성 요소가 developer.android.com 메인 스레드 기본 동작 메인 스레드는 프로세스가 시작되어 프로세스의 시작점인 main() 함수에서 실행됩니다. 즉, 메인 스레드가 생성되고 시작되는 곳을 main() 함수라고 부릅니다. 메인 스레드는 다른 스레드를 생성하고 관리하는 역할을 수행합니다. 안드로이드 메인 스레드 안드로이드의 어플리케이션을 실행하면 어플리케이션에 실행 중인 다른 구성 요소가 없다면 안드로이드 시스템은 ..
Anroid REST API 연동기 [GET]
·
Android
드디어 안드로이드에서 REST 서버와의 연동이 끝났습니다!! 처음엔 그냥 안드로이드와 MySQL을 연동하려고 했던건데 하다보니까 Node JS, Docker, Nginx를 사용하게 됐고 모두 처음 사용해 보는거라 너무 어렵고 머리 아팠지만 다 하고나니까 너무 뿌듯하고 눈물이 날거 같네요 😭 😭 😭 😭 우선 저는 안드로이드와 MySQL을 연결하기 위한 백엔드를 구축하기에 앞서 NodsJS로 리버스 프록시를 하기 위해 웹 서버로 Ngix를 사용했습니다. 이제 GET, POST, PUT, DELETE 차례대로 코드를 하나 하나 살펴보면서 리뷰 해볼겠습니다. 이번장은 GET Process에 관한 글 입니다. 도커에 대한 내용은 다른글을 참조해 주세요 Docker + Node.js + Nginx 4 이번엔 MyS..
Android Gallery Permission
·
Android
https://chanho-study.tistory.com/48 Android Runtime Permission Permission 퍼미션은 AndroidManifest.xml에 들어가는 설정입니다. 안드로이드 컴포넌트를 이용한 앱과 앱 사이의 연동이 빈번한데, 특정 앱이 을 부여했다면 그 앱을 이용하는 앱은 을 선언해야 합니다. chanho-study.tistory.com 이전 글에서 안드로이드 RunTime Permission에 대해 알아 봤으니 이제 프로젝트에 적용해 보겠습니다. 가장 먼저 갤러리에 접근하기 위한 권한을 선언해 줍니다!! AndoridManifest.xml 외부 저장소에 대한 읽기와 쓰기 권한을 요청하기 위한 상수 배열을 정의 해줍니다. class Constants { compani..
Android Runtime Permission
·
Android
안드로이드 어플리케이션은 예전엔 AndroidManifest.xml 파일에 권한을 명시해주기만 하면 됐지만 Android 6.0(API 수준 23) 이상의 경우 안드로이드 정책에 따라 사용자가 직접 권한을 허용 해야 합니다. Test App에서 Target APP의 컴포넌트를 실행한다고 가정했을 때, Target App에서 해당 컴포넌트의 을 부여했다면 testApp에서 해당 컴포넌트를 실행하기 위해선 반드시 을 선언해 사용해야 합니다. [Android Runtime Permission 공식 문서] 런타임 권한 요청 | Android 개발자 | Android Developers 런타임 권한 요청 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 모든 Android 앱은 액세스..
OkHTTP httpLoggingInterceptor
·
Android
이번엔 OKHttp Logging Interceptor를 사용하여 HTTP 통신 로그를 기록하는 방법 입니다. 단순히 Retrofit 을 사용해 네트워크 통신만 하려 했는데 하면 할 수록 다양한 방법들을 접하는게 너무 잼있네요 okHttp3 logging interceptor을 사용하기 위해 Gradle Dependencis에 아래 빌드 종속 항목 중 okhttp 관련 종속성을 추가해주세요. implementation 'com.squareup.okhttp3:logging-interceptor:4.9.2' 메소드를 그대로 사용해도 되지만 제가 원하는 형태대로 메시지를 만들고 싶어서 오버라이딩 해줬습니다. private fun httpLoggingInterceptor(): HttpLoggingIntercep..
Retrofit Network Time out
·
Android
안드로이드에서 서버로 이미지를 전송하기 위해 REST API로 통신 하는 과정에서 시간이 오래 걸려 Android Client에서 connection Error로 인식해 오류가 발생 했습니다. Retrofit은 기본적인 네트워크 타임아웃 설정을 가지고 있지만 다양한 상황에서 기본 타임아웃 시간을 변경해야 합니다. Retrofit의 기본 타임아웃 시간 설정값 Connection timeout : 10초 Read timeout : 10초 Write timeout : 10초 Connection Timeout 네트워크 요청을 시작한 후 서버와의 TCP handshake가 완료되기까지 지속되는 시간으로 Retrofit이 설정된 연결 시간 제한 내에서 서버에 연결할 수없는 경우 해당 요청을 실패한 것으로 계산합니다..