Android의 구성 요소 (2)

2021. 8. 3. 09:52
728x90

 [ 안드로이드 Application 구조 ] 

MVC 모델은 Model, View, Control 로 구성되어 있다.

  1. Model (모델) : application의 data를 저장하는 영역
    • 종류 : 안드로이드에 내장된 DB (SQLite, File), Content Provider
  2. View(뷰) : 화면을 구성하는 영역
    • 종류 : View 클래스를 상속하는 클래스를 사용해서 구성할 수 있음
  3. Control(컨트롤) : View, Model을 서로 연결하고 제어하는 영역
    • 종류 : Activity, Service, Broadcast Receiver, Fragment

 

 [ 컴포넌트 활성화 및 비활성화 ] 

1. 활성화

  • Activity - Intent 에 의해 활성화 됨

처음에 새로운 프로젝트를 생성하면, app > manifests > AndroidManifest.xml 파일 안에 아래와 같이 표시되어 있다. , 우리는 앱 실행 시 가장 처음에 뜨는 화면이 Main Activity인 것을 알 수 있다.

<activity android:name=".MainActivity">
	<intent-filter>
		<action android:name="android.intent.action.MAIN" />

		<category android:name="android.intent.category.LAUNCHER" />
	</intent-filter>
</activity>
  • Service - Intent 에 의해 활성화 됨
  • Broadcast Receiver - Intent 에 의해 활성화 됨
  • Content Provider - Content Resolver 에 의해 활성화 됨

2. 비활성화

  • Activity - finish() 메서드 호출. 다른 activity를 비활성화 하려면 finishActivity() 호출.
  • Service - stopSelf() 또는 Context.stopService() 메서드 호출.
  • Broadcast Receiver, Content Provider - 각자 Broadcast 메세지, content resolver의 요청 응답시에만 활성화 되므로 직접 비활성화 시킬 필요가 없음. 

 

 [ View ] 

아래의 구성도를 보자. 안드로이드 화면을 구성하는 interface 요소들은 전부 View 클래스를 상속한다. 그리고 ViewGroup 클래스를 상속하지 않는 클래스는 layout 안에 포함하여 사용한다.

developer.android.com

View의 종류는 매우 다양하지만 그 중 내가 많이 사용한 것은 TextView와 EditText이다 (사실 너무 많아서 2개만 씀ㅎ)

1. TextView : 화면에 고정된 문자열을 보여줌 (사용자가 수정할 수 없음)

  • Layout - wrap_content : 콘텐츠에 필요한 치수대로 알아서 크기 설정
  • Layout - match_parent : 상위 뷰 그룹이 허용하는 한 최대한 커지도록 설정

2. EditText : 사용자 입력을 받을 수 있는 view. 

 

참고 사이트 : https://developer.android.com/guide/topics/ui/declaring-layout?hl=ko

728x90

BELATED ARTICLES

more