Android에 대해서

조준형·2024년 1월 20일
0

안드로이드

목록 보기
1/7

Android OS

  • Linux 기반의 운영체제
  • 오픈소스 기반
  • 스마트폰 OS의 약 70%를 차지
  • 스마트폰 뿐만 아니라 웨어러블 디바이스, TV, 자동차 등 다양한 플랫폼에서 동작할 수 있는 OS
  • 버저닝이 디저트 이름으로 되어 있음

Android 기본요소

앱 구성요소

  • Android 앱의 필수적인 구성요소로, 각각은 시스템이나 사용자가 앱에 들어올 수 있는 진입점

Activity

  • 앱과 사용자가 상호작용을 하기 위한 진입점
    • 앱을 실행을 할 때는 앱을 전체적으로 호출하는 것이 아니라 앱의 액티비티를 호출
  • 모든 앱에 반드시 1개 이상 존재
  • Activity는 사용자와 상호작용을 위한 UI가 있음
    • 앱이 실행되면, 화면이 표시됨
    • 사용자의 입력값을 받음 (화면 클릭, 더블 클릭, 롱클릭, 스와이프, 드래그 앤 드랍 등)
    • 사용자에게 제공하고자 하는 내용을 화면에 표시함
  • Lifecycle이 있음

Service

  • 백그라운드에서 오래 실행되는 작업 수행을 위한 컴포넌트
  • 사용자가 다른 앱으로 전환하더라도 백그라운드에서 계속 실행
  • UI 없음
  • 포그라운드 서비스: 사용자에게 잘 보이는 작업. 포그라운드 서비스의 경우, 반드시 알림을 표시해야 하며, 사용자가 앱과 상호작용하지 않을 때도 계속 실행됨
    • ex) 음악 재생
  • 백그라운드 서비스: 사용자에게 보이지 않는 작업
    • ex) 사용자에게 보이지 않는 작업 (저장소 압축, 게임 업데이트, 파일 압축 등)
    • 앱이 API 레펠 26 이상을 대상으로 할 경우
      • 즉시 실행해야 하는 작업: Work Manager
      • 지연 작업: Alarm Manager
  • 바인드 서비스: 앱 컴포넌트가 bindService를 호출해 서비스를 호출하면 서비스가 바인딩 됨. 바인딩 된 서비스는 클라이언트-서버 인터페이스를 제공해 서비스와 상호작용함. 여러개가 한꺼번에 바인딩 될 수 있고, 바인딩 된 컴포넌트가 모두 종료되면, 서비스도 종료됨

BroadcastReceiver

  • 안드로이드 OS에서 발생하는 이벤트와 정보를 앱에서 수신할 수 있도록 하는 구성요소
  • UI 없음
  • 예시
    • 화면이 꺼졌거나
    • 배터리가 부족하거나
    • 사진을 캡쳐했거나

ContentProvider

  • 파일 시스템, SQLite 데이터베이스, 웹상이나 앱이 액세스할 수 있는 다른 모든 영구 저장위치에 저장 가능한 앱 데이터의 공유형 집합을 관리
  • 다른 앱은 콘텐츠 프로바이더를 통해 해당 데이터를 질의하거나, 수정할 수 있음
  • 예시
    • 연락처 정보
    • 갤러리 이미지/비디오

Manifest

  • 앱의 필수적인 정보를 담고 있는 파일
    • 앱의 패키지 이름
    • 앱의 구성요소
    • 권한
    • 필요한 기능

Intent

  • 구성요소간의 통신을 할 수 있게 하는 역할
  • 앱에 포함된 구성요소 이외에, 다른 앱의 구성요소와도 통신할 수 있음
    • 명시적 인텐트: 특정 컴포넌트, 액티비티를 명확히 특정해 실행할 경우
      • 예시) A Activiy에서 B Activity 실행을 호출할 경우
    • 암시적 인텐트: 동작을 특정하긴 했지만, 실행될 대상이 달라질 수 있는 경우
      • 예시) 특정 URL을 실행이라는 액션을 요청 경우, 웹 브라우저 기능을 가진 다수의 앱이 호출될 수 있는 경우
profile
코린이

0개의 댓글