Development/Android(Kotlin)
[Android] 기본 개념(1)
Go0G
2021. 11. 4. 21:28
주요 용어
컴포넌트
- 액티비티(Activity): 사용자 인터페이스 화면을 구성하는 컴포넌트
- 서비스(Service): 백그라운드에서 실행되는 컴포넌트(시각적인 사용자 인터페이스를 가지지 않음)
- 인텐트(Intent): 컴포넌트간의 동작, 데이터 등을 전달하는 메시지 컴포넌트
- 인텐트 필터(Intent Filter): 수신할 수 있는 인텐트를 설정하여 컴포넌트를 정의하는 역할을 수행하는 컴포넌트
- 브로드캐스트 리시버(Broadcast Receiver): 앱 자체의 특정 브로드캐스트(배터리 부족, 언어 설정 등)를 수신하거나 반응하는 컴포넌트(시각적인 사용자 인터페이스를 가지지 않음)
- 컨텐트 프로바이터(Content Provide): 애플리케이션 간의 데이터 공유를 위해 표준화된 인터페이스를 제공하는 컴포넌트
- 노티피케이션(Notification): 사용자에게 특정 이벤트를 알리는 컴포넌트
- 프래그먼트(Fragment): 액티비티 내에서 독자적으로 동작할 수 있는 UI 컴포넌트
4대 구성 요소
안드로이드에서 가장 많이 사용하는 4대 컴포넌트
*프래그먼트도 활용도가 높음
애플리케이션 구조
MVC구조
- 뷰(VIEW): 화면 구성을 담는 영역으로 View 클래스를 상속하는 클래스로 구성
- 컨트롤(Control): 뷰와 모델을 연결하고 제어하는 영역
- 모델(Model): 애플리케이션 데이터를 저장하는 영역으로 SQLite, File(Shared Preference) 및 애플리케이션 간 데이터 공유에 사용
액티비티 살펴보기
액티비티는 사용자 인터페이스 화면을 관리하는 컴포넌트로 즉, 우리가 실제로 애플리케이션에서 보여지는 화면
액티비티는 Activty 클래스를 상속해야 하며, 액티비티가 기본적으로 가지고 있는 생명주기 메소드를 재정의해서 원하는 기능을 구현
HelloWorld 클래스의 Activity
public class HelloWorld extend Activity{ //Activity 클래스 상속
@Override
public void onCreate(Bundle savedInstancesState){
super.onCreate(saveInstancesState);
setContentView(R.layout.main);
}
}
- 액티비티의 onCreate() 메소드에서는 setContentView() 메소드를 호출
- setContentView() 메소드는 주어진 R.layout.main으로 화면 구성
*R.layout.main은 실제 /res/layout/main.xml을 가리킴
/res/layout/main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android:"http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
- 화면에 보이는 레이아웃을 정의
- LinearLayout은 LinearLayout 내부에 정의된 뷰들을 수직이나 수평으로 나열하는 역할을 수행하는 레이아웃
- 위 코드에서는 android:orientation="vertical"로 정의도어 있기 때문에 수직으로 보여짐
- Textview는 문자열을 출력하는 역할을 수행하며, 문자열은 android:text에 지정
특징
- 액티비티의 크기는 상대바(Status Bar)영역을 제외한 화면 전체로 고정
- 두 개의 액티비티를 동시에 보여줄 수 없음
- 다른 애플리케이션의 액티비티를 불러낼 수 있음
- 액티비티 내에는 프래그먼트로 화면을 분할하여 별도로 조작할 수 있음
*상대바 영역은 디바이스의 최상단에 위치한 시간, 배터리 상태 등을 표시
Reference
더보기
[2]
https://kairo96.gitbooks.io/android/content/ch0.html
[3]
https://developer.android.com/guide/components/activities/activity-lifecycle?hl=ko