본문 바로가기

개인공부

안드로이드 : 기본 애플리케이션

반응형

이번 포스팅은 기본 애플리케이션이라는 제목으로 작성하였다. 막상 안드로이들 개발을하면서 어떤 원리로 안드로이 버튼이 재생되고 전송되는지 잘모른다. 이번 포스팅을 통해서 이러한 부족한 개념을 집고 넘어 가야겠다.

※ 애플리케이션 컴포넌트

○ 컴포넌트

- 안드로이드 애플리케이션 구성요소

- 하나의 독립된 엔티티로 존재

- 각 컴포넌트는 애플리케이션을 시작하는 진입점을 가질 수 있다.

- 액티비티

- 서비스

- 방송수신자

- 콘텐츠 제공자

(액티비티,서비스 등 어떤 프로그램의 최상위 클래스라 생각하면 될듯)

※ 액티비티(Activity)

- 사용자 인터페이스 화면을 가지고 하나의 작업을 담당하는 컴포넌트

- 하나의 화면이 하나의 액티비티

- Activity 클래스를 상속 받음

※ 서비스(Service)

- 백그라운드에서 실행되는 컴포넌트

- 오랫동안 실행되는 작업이나 원격 프로세스를 위한 작업을 할때 사용됨

- 사용자 인터페이스 화면을 가지지 않음

- 배경음악 연주

- Service 클래스를 상속

※ 방송수신자(broadcast receiver)

- 방송을 받고 반응하는 컴포넌트

- 방송 : 시스템에서 발생

- 만약 와이파이 접속이 끊겼을 때 BroadcastReceiver 를 등록하면 시스템에서 전송하는 와이파이 끊김 알림을 받을 수 있게 됨

- 화면이 꺼짐, 배터리 사용 가능량

- BroadcastReceiver 클래스를 상속

(블루투스 모듈을 이용한 개발을 이용할때 브로드 캐스터 리시버를 이용하여 송수신한다.)

※ 콘텐트 제공자(Content Provider)

- 각 앱은 자신의 데이터만 접근 가능

- B 앱에서에서 A앱의 데이터를 접근하고자 할 때 (다른 앱에서 갤러리의 사진을 접근하고자 할 때)ContentProvider를 통해서만 제공받을 수 있다

- 데이터를 공유하면서 다른 프로그램이 임의로 데이터를 바꿀수 없더록 제어할 수 있음

- ContentProvider 클래스 상속

(보안적으로 우수한 데이터 송수신 클래스인것 같음)

※ R 클래스

- 레이아웃 파일, string.xml에 들어 있는 문자열, 버튼 등의 id, 이미지 파일의 id 등을 저장

- [app] - [패키지 이름] - [R]

- Ctrl + F : 검색

(R클래스는 안드로이드 findViewid 를 사용할때 가장 많이보이는 값이다. R은 안드로이드 패키지 내의 경로의 하나의 약어이다)

※ 환경 설정 파일/메타 정보 파일

- AndroidMainifest.xml : 안드로이드 시스템이 알아야 하는 필수 정보를 가지고 있고, Application의 권한 정보, Activity 정보를 가짐

- 이런식으로 안드로이드안에 속성들의 권한또는 Activitiy에 관한 권한 설정들을 할수가 있다.

- <intent-filter> 이부분은 프로젝트의 시작점의 권한을 설정할수가 있다. 4개의 컴포넌트 모두가능(액티비티,방송수신자,서비스,콘텐츠제공자)

※ intent

- 애플리케이션이 원하는 컴포넌트를 안드로이드 안에서 찾아 실행시키는 방법

- 비동기적 메세지

※ 매니페스트에서 사용할 수 있는 태그

<action>

인텐트 필터에 액션 정의

<intent-filter>

action,service,BroadcastReceiver가 응답할 수 있는 인텐트 유형을 지정

<permission>

앱의 요소나 기능에 대한 액세스를 제한하는 보안 권한 선언

<provider>

콘텐츠 공급자 구성 요소를 선언

<receiver>

BroadcastReciever를 앱의 구성요소로 선언

<service>

앱의 구성요소중 하나인 서비스를 선언

<uses-permission>

앱이 올바르게 동작하기 위한 권한 요청

※ Gradle Srcript

- 애플리캐이션이 어떻게 구성 될 것인지 빌드 정보와 환경 정보를 가짐(라이브러리 정보)

※ res

- resource 의 약자

- 레이아웃 파일, 아이콘 및 그림 파일, 앱을 작성하는데 쓰이는 많은 기타 파일

디렉토리

리소스ID

리소스 유형

drawable

R.drawable 파일이름

이미지

mipmap

R.mipmap

각기 다른 런처 아이콘 해상도에 대한 이미지

layout

r.layout

액티비티 레이아웃을 정의하는 xml

menu

R.menu

옵션 메뉴, 컨텍스트 메뉴, 하위 메뉴 등과 같은 메뉴정의 xml

raw

R.raw

안드로이드의 시스템에 의한 압축이나 변형없이 그대로 저장될 파일

values

R.string

R.color

R.style

코드와 레이아웃 모두에서 사용할 수 있는 공통 리소스를

정의한 xml

※주요 매서드 설명

매서드

호출시기

다음 호출되는 메서드

onCreate()

엑티비티가 처음 생성되었을 때 호출됨

onStart()

onRestart()

엑티비티가 중단되었다가 다시 시작되기 직전에 호출

onStart()

onStart()

엑티비티가 유저에게 표시되기 직전에 호출

표시되면 onResume()

숨겨지면 onStop()

onResume()

onStop()

onResume()

엑티비티가 시작되고 유저와 상호작용하기 직전에 호출

onResume()

onPause()

시스템이 다른 액티비티를 표시하기 직전에 호출

onStop()

onStop()

엑티비티가 더 이상 사용자에게 표시되지 않게 되면 호출됨

엑티비티가 유저와 상호 작용하면 onRestart()

엑티비티가 사라지면 onDestroy()

onRestart()

onDestroy()

onDestroy()

엑티비티가 소멸되기 전에 호출됨

엑티비티의 마지막 호출

※ xml

- 화면 제어

- Text 에 직접 코드 입력

- Xml 주석

-<!-- -->

- 기본 레이아웃 <LineraLayout>

반응형