앱 구성 요소

 Android 앱의 필수적인 기본 구성 요소는 크게

4개로 이루어져있으며 각자 독립된 형태로 구성되어있습니다.

Activity

 

Ui (User interface) 유저와 상호작용하기 위한 화면

여러 화면이 존재할 시 데이터 공유가 가능하며 이를 위해 Activity Class를 상속 받아 구현해야합니다.

 

Service

백그라운드 프로세스, 사용자에게 보이지 않는 곳에서 동작

다른 앱을 실행 하더라도 계속 실행

 

1.지속적으로 장시간 동작해야 하는 기능 : 음악 시간, 영화 시간

2.원격 프로세스 기능 : 파일 다운로드, 음악 재생 (네트워크 연동)

 

Service 종류

  • Foreground → 다운로드 진행도, 음악재생
  • Background → Ui와 상관 없이 실행하는 서비스
  • bind → 서비스간 상호작용 

Service Class를 상속 받아 생명주기 메소드를 구현해야합니다. (메인 스레드에서 동작)

 

BroadCast Receiver

특정이벤트가 발생 했을 시 안드로이드 OS, 안드로이드 앱은 BroadCast를 전송하며

그에 대응하는 Receiver를 통해 대응합니다.

 

비행기모드, 배터리 부족, 재부팅 등

 

Manifast에 receiver 지정

 <receiver android:name=".MyBroadcastReceiver"  android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <action android:name="android.intent.action.INPUT_METHOD_CHANGED" />
        </intent-filter>
</receiver>

BroadcastReceiver 서브클래스를 선언하고 onReceive(Context, Intent)를 구현

class MyBroadcastReceiver : BroadcastReceiver()

 

Content Provider

  • 데이터를 관리하고 데이터를 제공하는 컴포넌트 Ex) Data Base
  • 다른 앱과 데이터 공유를 가능하며 Ex) 연락처 연동
  • 데이터 수정도 가능합니다.

 

<provider android:authorities="list" //데이터 식별 반환형
          android:directBootAware=["true" | "false"] //기기 잠금 해제시 실행 허용 여부
          android:enabled=["true" | "false"] //인스턴스화 여부 Default : True
          android:exported=["true" | "false"] //다른 앱에서도 데이터 공유가 가능한지
          android:writePermission="string" > //데이터 수정 허용 여부
</provider>
복사했습니다!