[Android] 기본 레이아웃들

Bard·2024년 9월 26일
0

Android Programming

목록 보기
2/2

Android is..

  • 구글에 의해 개발된 모바일 OS
  • Linux kernel의 modified version에 기반.
  • 터치스크린이 있는 모바일 기기를 우선으로 디자인 되었음.
  • Android TV, Android Auto 등을 이후에 개발됨.
  • Java 또는 Kotlin으로 프로그래밍된 애플리케이션을 실행시킴

Glossary of Android

  • Activity
  • Service
  • Broadcase receiver
  • Content Provider
  • Intent
  • Context
  • Layout, View & View group

Activity

  • 유저와 상호작용하는 인터페이스
  • 안드로이드 앱은 여러 Activity로 만들어지고 각각은 하나의 스크린을 의미한다.

Intent

  • 다른 앱 컴포넌트로부터 행동을 요청하는 메시지 객체

Content Provider

  • 앱 간의 데이터 공유를 할 수 있게 만들어주는 컴포넌트
  • 예를 들어 연락처 앱이나 사진 앱으로부터 데이터를 사용하고 싶다면 content provider를 사용해야 한다.

Broadcast Receiver

  • 시스템이나 다른 어플리케이션으로부터 이벤트를 받고 사용할 수 있도록 만들어진 컴포넌트.
  • 예를 들어 배터리 낮음, 네트워크 연결 상태 변경, 또는 각종 알림이 발생.

Context

  • 어플리케이션에 환경정보를 저장하는 객체.

Gradle

  • 유연성과 성능에 초점을 둔 빌드 자동화 도구

Manifest

  • manifest는 앱에 대한 중요한 정보들을 저장해두는 파일로, 다음과 같은 역할을 수행함.
    • 앱이 필요한 권한을 정의함.
    • 앱 이름, 아이콘, 테마, 최소 SDK 버전을 정의함.
    • 앱이 필요로 하는 하드웨어와 소프트웨어 기능을 정의함.

Layout

  • XML 파일에 정의된 UI 요소로, View와 View Group이 있다.
  • View는 유저가 볼 수 있고 상호작용할 수 있는 무언가를 그리는 객체이고,
  • ViewGroup은 View나 다른 ViewGroup의 레이아웃 구조를 정의하는 보이지 않는 컨테이너이다.

Android Basic Layout

View and ViewGroup

View

  • Android UI의 가장 기본적인 요소.
  • 각각의 컴포넌트는 유저와 상호작용할 수 있다.
  • 예) TextView, Button, ImageView, EditText

ViewGroup

  • 여러 View와 ViewGroup 들을 포함할 수 있는 요소
  • 스크린에 레이아웃을 배치하는데 사용된다.
  • 예) LinearLayout, ContraintLayout

XML file for Layout

  • UI를 디자인하기 쉽게 만들어진 파일
  • 각각의 레이아웃은 하나의 루트 객체만들 가져야 하고,
  • 루트 객체는 반드시 View나 ViewGroup이 되어야함.

Attributes of Layout

  • ID
    • 모든 View 객체는 정수 id를 가질 수 있다.
    • android:id="@+id/button"
    • @은 XML 파서를 위한 구분자
    • +는 새로운 리소스 이름이라고 알려주는 심볼
    • 각각의 View object는 ID로 접근할 수 있으며, 다음과 같이 접근할 수 있다.
      Button button = (Button)findViewById(R.id.button)
  • Layout Parameters
    • wrap_content
      Content의 크기를 포함할만큼 크게.
    • match_parent
      Parent의 크기만큼 크게.
    • dp
      스크린의 physical density에 따라서 정의되는 추상적인 크기 단위로, 1dp는 160 dpi 화면에서의 1px이다.
    • sp
      dp와 비슷하지만 유저의 폰트사이즈에 따라서도 커지는 단위. (em 같은 느낌)

LinearLayout

css의 flex처럼 생각하면 됨.

Event Driven Execution

  • Android는 이벤트 기반 실행을 사용하기 때문에 입력이 들어왔을 때 이벤트가 발생된다.
  • 따라서 Callback method를 설정하여 input이 Listener를 통해 들어왔을 때 실행될 메서드를 정의해둬야 한다.
profile
The Wandering Caretaker

0개의 댓글