component : 구성요소
안드로이드 4대 컴포넌트 하면, 안드로이드 앱을 구성하는데 필수적인 4개의 구성 요소를 의미한다.
Activity , Service, Broadcast Receiver, Content Provider가 있다.
특징 :
각 컴포넌트는 독립적으로 존재한다.
각 컴포넌트는 고유의 기능을 수행한다.
각 컴포넌트는 Intent를 통해서 서로 상호작용 한다.
사용자와 상호작용을 담당하는 인터페이스
앱을 실행 할 때는 앱을 전체적으로 호출하지 않고, 앱의 액티비티를 호출한다.
액티비티는 생명주기와 관련된 메서드들을 재정의하여 원하는 기능들을 구현할 수 있다.
사용자가 어플리케이션과 상호작용할 때 실제로 사용자에게 보이는 화면이 바로 Activity 다.
어플리케이션에는 반드시 하나 이상의 액티비티가 있어야한다.
하나 이상의 View나 ViewGroup을 가지고 있어야한다.
Intent를 통해서 다른 어플리케이션의 액티비티를 호출할 수있다.
한번에 1개의 액티비티를 호출 할 수 있다.
액티비티 내에 프래그만트를 추가하여 화면을 분할시킬 수 있다.
어플리케이션이 종료되어도 백그라운드에서 동작하는 컴포넌트
네트워크와 연동이 가능하다.
액티비티와 서비스는 UI스레드 라고 불리는 동일한 어플리케이션 스레드로 실행된다.
안드로이드 OS에서 발생하는 각종 이벤트오 정보를 받아 핸들링하는 컴포넌트
시스템 부팅시 앱 초기화, 네트워크 끊김같은 특수한 상황에 관한 처리, 배터리 부족 알림 등의 정보를 받아서 처리한다.
대부분 UI를 따로 가지지 않는다.
수신기를 통해 디바이스 상황을 감시하다가 이벤트가 발생하면 해당 이벤트에 맞는 작업을 수행한다.
데이터를 관리하고 다른 어플리케이션의 데이터를 제공하는데 사용되는 컴포넌트
특정한 어플리케이션이 사용하고있는 데이터베이스를 공유하기 위해 사용하며, 어플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 사용한다.
외부 어플리케이션이 현재 실행중인 어플리케이션 내에 있는 데이터베이스에 함부로 접근하지 못하게하고, 나 자신이 공개하고 싶은 데이터만 공유할 수 있도록 한다.
작은데이터는 주로 Intent로 서로 공유가 가능하지만 음악, 사진파일 등 용량이 큰 데이터를 공유하는데에는 Content Provider를 사용한다.
데이터의 Read, Write 에 대한 permission 이 있어야 어플리케이션에 접근이 가능하다.
안드로이드 어플리케이션을 개발하고 테스트하기 위한 가상 에뮬레이터 디바이스
다양한 안드로이드 디바이스 화면크기에서 테스트할 수 있다.
다양한 안드로이드 버전을 테스트 해 볼 수 있다.
물리적 디바이스 없이 개발 및 테스트 가능하다.
개발자에게 다른 프로그램에 추가하거나 연결할 수 있는 커슽엄 앱을 제작할 수있는 기능을 제공하는 도구 모음.
안드로이드에는 내장된 기본 레이아웃의 종류가 다양하다.
1.LinearLayout
가로 혹은 세로로 순차적으로 쌓아나가는 레이아웃.
2.RelativeLayout
상대적으로 위치를 지정해주는 레이아웃
3.ConstraintLayout
구글이 권장하는 레이아웃 으로 RelativeLayout에서 조금 더 발전된 레이아웃.
자식 View들에 제약을 주어 부모 View 기준으로 위치를 지정하거나 다른 View를 기준으로 위치를 지정할 수 있고, 각 View의 크기를 유연하게 지정할 수 있다.
4.TableLayout
View들을 표처럼 배치할 수 있는 레이아웃
5.GridLayout
TableLayout 에서 발전된 형태로 Table과 Linear 레이아웃이 합쳐진 형태'
6.FrameLayout
한가지 뷰를 보여줄 때 사용하는 레이아웃
여러개의 뷰를 중첨시킬 수 있어서 여러개의 뷰를 중첨한 후에 android:visibility를 설정하여 한가지의 뷰만 visible처리를 해서 보여주는 방식으로 사용한다.
7.TabLayout
Tab을 선택하여 화면전환을 할 수 있도록 만든 레이아웃
주 메뉴 안에서 보조메뉴를 선택할 때 주로 사용한다.
8.CoordinatorLayout
스크롤 시 화면을 차지하는 부분을 줄여 사용성을 개선하며, 디자인적으로 도움이 되는 레이아웃
9.DrawerLayout
화면의 끝에서 가운데로 드래그하여 나타나는 보조 레이아웃
(최신 버전에서는 제스처 효과 때문에 드래그 기능은 막고 특정 버튼을 통해서 띄워서 사용하는 것을 권장함)
View와 View Group
안드로이드 화면을 구성하는 요소
안드로이드 앱을 실행시켰을 때 화면에 보이는 모든 요소를 View 라고 부를 수 있으며,
View를 화면에 적절히 배치하기 위해 ViewGroup을 사용함.
View 종류
1.TextView : 화면에 텍스트를 나타내는 뷰
2.EditText : 앱의 사용자로부터 텍스트를 입력받을 수있는 뷰
3.Button : 이벤트 처리를 위한 클릭 기능이 포함된 뷰
4.ImageView : 화면에 이미지를 나타내는 뷰
5.CheckBox : 여러 항목 중 선택된 항목과 선택되지 않은 항목을 나타낼 수 있는 뷰
6.RadioButton : 여러 항목 중 한가지 항목만 선택할 수 있는 뷰
ViewGroup 종류
1. LinearLayout
2. RelativeLayout
3. FrameLayout
4. TableLayout
5. GridLayout
6. ConstraintLayout 등