Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ar vr 차이
- 플러터 설치 2022
- rxjava hot observable
- Rxjava Observable
- rxjava cold observable
- android retrofit login
- 큐 자바 코드
- 안드로이드 라이선스
- 자바 다형성
- 2022 플러터 설치
- 안드로이드 레트로핏 사용법
- 객체
- 안드로이드 유닛 테스트
- 멤버변수
- 서비스 vs 쓰레드
- 안드로이드 os 구조
- 스택 큐 차이
- rxjava disposable
- 스택 자바 코드
- 클래스
- 2022 플러터 안드로이드 스튜디오
- ANR이란
- 안드로이드 레트로핏 crud
- jvm 작동 원리
- jvm이란
- android ar 개발
- 안드로이드 유닛 테스트 예시
- 안드로이드 유닛테스트란
- 안드로이드 라이선스 종류
- 서비스 쓰레드 차이
Archives
- Today
- Total
나만을 위한 블로그
[Android] Application 클래스란? 본문
728x90
반응형
안드로이드를 사용하다 보면 아주 가끔 Application이란 이름의 클래스를 써야 할 때가 있다.
이 클래스는 왜 있는 거고 뭐에 쓰는 걸까?
안드로이드 디벨로퍼에서 말하는 application 클래스는 아래와 같다.
https://developer.android.com/reference/android/app/Application
전역 응용 프로그램 상태를 유지하기 위한 기본 클래스다. 하위 클래스를 만들고 이 하위 클래스의 정규화된 이름을 매니페스트의 <application> 태그에서 "android:name" 속성으로 지정해 고유한 구현을 제공할 수 있다. Application 클래스 또는 Application 클래스의 하위 클래스는 애플리케이션 / 패키지에 대한 프로세스가 생성될 때 다른 클래스보다 먼저 인스턴스화된다
전역으로 공유하기 위해서 사용한다는 것 같다. 사용하려면 매니페스트의 name 속성에 등록해서 써야 한다는 것 같다.
다른 블로그에선 이 클래스를 어떻게 설명하고 있는지 확인해봤다.
https://guides.codepath.com/android/Understanding-the-Android-Application-Class#overview
Application 클래스는 액티비티, 서비스와 같은 다른 기본 구성 요소를 포함하는 안드로이드 앱 내의 기본 클래스다. Application 클래스 또는 Application 클래스의 모든 하위 클래스는 애플리케이션 / 패키지에 대한 프로세스가 생성될 때 클래스보다 먼저 인스턴스화된다. 이 클래스는 주로 첫 번째 액티비티가 표시되기 전에 전역 상태를 초기화하는 데 사용된다. 많은 앱에서 Application 클래스와 직접 작업할 필요는 없다. 그러나 사용자 지정 응용 프로그램 클래스에는 몇 가지 허용되는 용도가 있다.
- 첫 번째 액티비티를 만들기 전에 실행해야 하는 특수 작업
- 모든 구성 요소에서 공유해야 하는 전역 초기화(충돌 보고, 지속성)
- 공유 네트워크 클라이언트 객체 같은 불변 정적 데이터에 쉽게 접근할 수 있는 static 메서드
https://cat-servant.tistory.com/113
Application 클래스는 어느 컴포넌트(액티비티, 서비스, 인텐트 등)에서나 공유할 수 있는 전역 클래스를 의미한다. Application을 상속받은 클래스는 공동으로 관리해야 하는 데이터를 작성하기에 적합하다. Application 클래스는 다른 서브 클래스보다 먼저 인스턴스화된다. 일반적으로 서브 클래스 Application을 필요로 하지 않는다. 대부분 static singleton이 모듈적인 방법으로 동일한 기능을 제공할 수 있다. 만약 싱글톤 클래스가 전역 컨텍스트(브로드캐스트 리시버 등록 등)를 요구할 경우, 컨텍스트를 Context.getApplicationContext()로 써서 싱글톤 클래스의 getInstance()를 호출하라
정리하면 Application 클래스는 이런 것이다.
- 클래스를 만들고 Application 클래스를 상속한 뒤, 매니페스트의 android:name 속성에 등록해서 사용한다
- 어떤 값을 액티비티, 서비스 등 안드로이드 컴포넌트들 사이에서 공유해 사용할 수 있게 해준다
- Application을 상속받은 클래스는 1번째 액티비티보다 먼저 인스턴스화된다
내 경우 로그 라이브러리 중에 Logger라는 게 있는데, 이것의 초기화 코드를 Application을 상속한 클래스에 넣어서 매니페스트에 넣어 사용한다. 그리고 카카오 로그인도 App이라는 클래스를 만들고 여기에 관련 코드들을 넣은 뒤, 매니페스트에 넣어서 사용한다.
반응형
'Android' 카테고리의 다른 글
Comments