Android

안드로이드 플랫폼의 기본적인 용어

by mahru posted Dec 15, 2011
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
  • .apk 파일(.apk file)

    • 안드로이드 애플리케이션 패키지 파일. 각각의 안드로이드 애플리케이션은 컴파일 되어 하나의파일로 패키지된다. 그것은 애플리케이션의 코드(.dex 파일), 리소스, 에셋, 그리고 매니페스트 파일 모두를 포함하고 있다. 애플리케이션 패키지 파일은 어떠한 이름도 가질 수 있지만 .apk 확장자를 사용해야만 한다. 예를 들어: myExampleAppname.apk. 편의상, 애플리케이션 패키지파일은 종종 “.apk”로 언급된다.

관련: Application
  • .dex 파일(.dex file)

    • 컴파일된 안드로이드 애플리케이션 코드 파일.

    • 안드로이드 프로그램은 .dex (Dalvik Executable) 파일로 컴파일된다. 그것은 디바이스 상의 하나의 .apk 파일내에 zip으로 압축된다. .dex 파일들은 자바 프로그래밍 언어로 작성된 컴파일된 애플리케이션을 자동적으로 변환함으로써 생성된다.

  • 액션(Action)

    • 인텐트Intent를 발송하는 것이 수행하길 원하는 어떤 것에 대한 설명. 액션 Action은 인텐트에 할당된 문자열 값이다. 액션 문자열들은 안드로이드 또는 제3의 개발자에 의해 정의될 수 있다. 예를 들어 웹 URL에 대한 android. intent.action.VIEW, 또는 폰을 진동시키는 커스텀 애플리케이션에 대한 com.example.rumbler.SHAKE_PHONE이 있다.

관련 : Intent
  • 액티비티(Activity)

    • 애플리케이션 내의 하나의 화면이며, Java code를 지원함으로써 Activity 클래스로부터 파생된다. 가장 일반적으로, 액티비티는 그것이 윈도우를 렌더 render하기 위해 사용하는 윈도우 때문에, UI 이벤트를 받아서 처리할 수 있고 복잡한 태스크를 수행하는 전체 스크린 윈도우에 의해 시각적으로 표현된다.

    • 액티비티가 일반적으로는 전체 스크린임에도 불구하고, 그것은 또한 화면 위에 떠 있거나floating 투명하게 될 수도 있다.

  • adb

    • Android Debug Bridge로, SDK와 함께 포함된 커맨드 라인 디버깅 애플리케이션. 그것은 디바이스를 브라우징하기 위한 도구, 디바이스에 복사하는 도구, 그리고 디버깅을 위해 포워드 포트를 제공한다. 만약 여러분이 ADT 플러그인을 사용하는 이클립스에서 개발하고 있다면, adb는 여러분의 개발 환경안에 통합된다. 더 많은 정보를 위해서는 다음에 나오는 URL에서 adb를 보라. http://developer.android.com/guide/developing/tools/adb.html

  • 애플리케이션(Application)

    • 컴포넌트 측면에서 보면, 안드로이드 애플리케이션은 하나 또는 그 이상의 액티비티, 서비스, 컨텐트 프로바이더, 브로드캐스트 리시버로 구성된다. 소스 파일 측면에서 보면, 안드로이드 애플리케이션은 코드, 리소스, 에셋, 그리고 하나의 매니페스트로 구성된다. 컴파일 도중에, 이러한 파일들은 애플리케이션 패키지 파일(.apk)로 불리는 하나의 파일로 패키지된다.

관련: .apk, Activity
  • 캔버스(Canvas)

    • 비티맵Bitmap이나 서피스Surface 오브젝트에 대한 실질적인 비트bit 컴포지션 compositing을 처리하는 그리기를 하는 표면surface. 그것은 비트맵, 선, 원, 사각형, 텍스트, 그리고 기타 등등에 대한 표준 컴퓨터 그리기에 대한 메쏘드를 가지고 있다. 캔버스는 스크린에 2D 오브젝트들을 그리기 위한 가장 간단하고 가장 손쉬운 방법이다. 하지만 이것은 OpenGL ES 하는 것 처럼 하드웨어 가속기를 지원하지는 않는다. 베이스 클래스는 캔버스Canvas이다.

관련: Drawable, OpenGL ES
  • 컨텐트 프로바이더(Content Provider)

    • 여러분의 애플리케이션의 데이터를 다른 애플리케이션에게 안전하게 보여주기 위해 여러분이 사용할 수 있는 데이터 추상화 계층data-abstraction layer. 컨텐트 프로바이더는 ContentProvider 클래스 위에서 만들어졌다. 이것은 특정 포맷의 데이터를 리턴하기 위한 특정 포맷의 컨텐트 쿼리query 포맷을 처리한다. 

관련: URI Usage in Android
  • 달빅(Dalvik)

    • 안드로이드 플랫폼의 가상 머신. 달빅 가상머신은 효율적인 저장공간과 메모리 매핑가능한 실행을 위해 최적화 된 .dex (Davik Executable) 포맷의 파일들을 실행하는 인터프리터 전용(interpreter-only) 가상 머신이다. 이 가상 머신은 레지스터 기반이고, Java 언어 컴파일러에 의해 컴파일된 클래스를 실행할 수 있다. 그 클래스는 포함되어 있는 “dx” 도구를 사용해서 달빅 네이티브 포맷 으로 변환되어 지게 된다. 그 가상 머신은 Posix 호환 운영 체제의 위에서 실행된다. 그것은 (쓰레딩과 저수준 메모리 관리와 같은) 그 아래에 있는 기능을 위해서 해당 운영체제에 의존한다. 달빅 코어 클래스 라이브러리Dalvik core class library는 Java Standard Edition으로 프로그래밍하기 위해 사용된 것들과 비슷한 개발 기반을 제공하고자 의도된 것이지만, 특히 작은 모바일 디바이스의 필요에 맞게 조정되었다.

  • DDMS

    • 달빅 디버그 모니터 서비스Dalvik Debug Monitor Service로, SDK와 함께 포함된 GUI 디버깅 애플리케이션. 그것은 스크린 캡쳐, 로그 덤프, 프로세스 검사 기능들을 제공한다. 여러분이 ADT 플러그인을 사용하는 이클립스에서 개발하고 있다면, DDMS는 여러분의 개발 환경에 통합되어 진다. 이 프로그램에 대하여 배우고 싶다면, Dalvik Debug Monitor Server를 보라.

  • 다이얼로그(Dialog)

    • 가벼운 폼form처럼 동작하는 떠 있는floating 윈도우. 다이얼로그는 오직 버튼컨트롤들만을 가질 수 있으며, (버튼 선택과 같은) 간단한 액션을 수행하고 아마 하나의 값을 리턴하도록 되어 있다. 다이얼로그는 히스토리 스택에 존속하거나, 복잡한 레이아웃을 가지거나, 또는 복잡한 액션을 수행하도록 되어 있지 않다. 안드로이드는 여러분을 위해 옵션 버튼을 가지는 간단한 디폴트 다이얼로그를 제공한다. 그럼에도 불구하여 여러분은 자신의 다이얼로그 레이아웃을 정의 할 수 있다. 다이얼로그에 대한 베이스 클래스는 다이얼로그Dialog 이다.

관련: Activity
  • 드로어블(Drawable)

    • 배경, 타이틀, 또는 스크린의 다른 영역으로 사용될 수 있는 컴파일 된 시각적 리소스. 드로어블Drawable은 예를 들어 백그라운드 이미지 같은 다른 UI 엘리먼트 안에 일반적으로 로드load된다. 드로어블은 이벤트를 받을 수 없지만, 애니메이션 오브젝트나 이미지 라이브러리와 같은 서브 클래스를 활성화하기 위해 “state”와 스케쥴링과 같은 다양한 다른 속성들이 부여한다. 많은 드로어블 오브젝트들은 드로어블 리소스 파일들, xml 또는 이미지를 그리는 비트맵 파일들로부터 적재된다. 드로어블 리소스들은 android.graphics. drawable의 서브클래스로 컴파일된다. 

관련: Resources, Canvas
  • 인텐트(Intent)

    • 다른 애플리케이션/액티비티를 런치하거나 또는 비동기적으로 커뮤니케이션하는데 사용할 수 있는 메시지 오브젝트. 인텐트 오브젝트는 인텐트에 대한 하나의 인스턴스이다. 그것은 어떤 애플리케이션/액티비티가 인텐트를 수신할지와 그 인텐트를 처리할 때 그 리시버가 무엇을 하는지를 결정하기 위해, 여러분이 제공할 수 있는 다양한 기준 필드들을 포함한다. 유용한 기준들은 요구되는 액션, 카테고리, 데이터 문자열, 데이터의 MIME 타입, 처리할 클래스, 그리고 그 밖의 것들을 포함한다. 하나의 애플리케이션은 다른 애플리케이션/액티비티에게 직접 인텐트를 전송한다기보다는 안드로이드 시스템에 인텐트를 보낸다. 애플리케이션은 하나의 타겟 애플리케이션에 인텐트를 보낼 수 있다.

    • 또한 그것은 여러 개의 애플리케이션에 의해 순서대로 차례로 처리될 수 있는 브로드캐스트로 그것을 전송할 수도 있다. 안드로이드에 시스템은 인텐트에 제공된 기준들과 다른 애플리케이션에 의해 정의된 인텐트 필터에 기반해서, 각각의 인텐트에 대한 가장 유용한 리시버를 확정하는 것에 대해 책임을 진다.

관련: Intent Filter, Broadcast Receiver
  • 인텐트 필터(Intent Filter)

    • 애플리케이션이 그것의 매니페스트 파일에 선언하는 필터 오브젝트로, 시스템에게 그것의 컴포넌트 각각이 받아들이고자 하는 인텐트의 타입이 무엇인지, 그리고 어떤 기준을 가지고 있는지를 알려준다. 인텐트 필터를 통해, 애플리케이션은 특정한 데이터 타입, 인텐트 액션, URI 포맷 등에 관심을 표현할 수 있다. 인텐트를 확정할 때, 시스템은 모든 애플리케이션 내의 유용한 인텐트 필터 모두를 평가하고, 그 인텐트와 기준들이 가장 일치하는 애플리케이션/액티비티에 인텐트를 전달한다. 

관련: Intent, Broadcast Receiver

  • 브로드캐스트 리시버(Broadcast Receiver)

    • 하나의 타겟 애플리케이션/액티비티에게 전송되는 것보다는 브로드캐스트 된인텐트를 수신하는 애플리케이션 클래스. 시스템은 모든 관심갖는 브로드캐스트 리시버에게 브로드캐스트 인텐트를 전달한다. 그것들은 순차적으로 인텐트를 처리한다.

관련: Intent, Intent Filter

  • 레이아웃 리소스(Layout Resource)

    • 액티비티 스크린의 레이아웃을 설명하는 XML 파일..

관련: Resources

  • 매니페스트 파일(Manifest File)

    • 각각의 애플리케이션이 애플리케이션의 패키지 이름, 버전, 컴포넌트(액티비티, 프로바이더, 리시버, 서비스), 임포트import 라이브러리, 그리고 다양한 액티비티를 설명하고, 그리고 기타 등등을 설명하기 위해 정의해야 하는 XML 파일. 

  • 나인-패치/9-패치/나인패치 이미지 (Nine-patch/9-patch/ Ninepatch image)

    • 디바이스 상의 배경이나 다른 이미지를 위해 사용될 수 있는 크기 조정이 가능한 비트맵 리소스. 더 많은 정보를 위해서는 “리소스와 에셋”의 “사용가능한 리소스 타입” 중 “나인패치 확대가능한stretchable 이미지”를 보라.

관련: Resources

  • OpenGL ES

    • 안드로이드는 빠르고 복잡한 3D 이미지를 위해 여러분이 사용할 수 있는 OpenGL ES 라이브러리를 제공한다. 이것은 캔버스Canvas 오브젝트보다 사용하기는 어렵지만 3D 오브젝트를 위해서는 더 좋다. android.opengl과 javax.microedition.khronos.opengles 패키지는 OpenGL ES 기능을 보여준다.

관련: Canvas, Surface

  • 리소스(Resources)

    • 컴파일된 애플리케이션 코드 외부에 있는 프로그램적이지 않는 애플리케이션 컴포넌트, 그러나 그것은 잘 알려진 참조 포맷을 사용하여 애플리케이션 코드로 부터 적재될 수 있다. 안드로이드는 다양한 리소스 타입을 지원한다. 그러나 일반적인 애플리케이션 리소스는 UI 문자열, UI 레이아웃 컴포넌트, 그래픽, 또는 다른 미디어 파일, 기타 등등으로 구성될 것이다. 애플리케이션은 효율적으로 로컬라이제이션localization과 다양한 디바이스 프로파일과 상태를 지원하기 위해 리소스를 사용한다. 예를 들어 애플리케이션은 지원되는 각각의 로컬 또는 디바이스 타입에 대해 별도의 리소스 집합을 포함할 것이고, 그리고 그것은 현재의 스크린 방위(가로 혹은 세로)에 대한 특정 레이아웃 리소스를 포함할 수 있다. 리소스에 대한 더 많은 정보를 위해서는 Resoureces and Assets를 참고하라. 애플리케이션의 리소스는 항상 프로젝트의 res/* 하위폴더에 저장되어 있다.

  • 서비스(Service)

    • 음악 재생 또는 네트워크 액티비티 모니터링과 같은 다양한 지속적인 액션들을 수행하기 위해 (어떤 UI를 표시하지 않고) 백그라운드에서 실행되는 클래스 서비스의 오브젝트.

관련: Activity

  • 서피스(Surface)

    • 스크린으로 컴포지트되는composited 메모리 블록을 나타내는 서피스Surface 타입의 오브젝트. 서피스Surface는 그리기를 위한 하나의 캔버스Canvas 오브젝트를 보유하며, 레이어를 그리고 그 서피스의 크기를 바꾸기 위한 다양한 헬퍼 helper 메쏘드를 제공한다. 여러분은 이 클래스를 직접 사용하지 말아야 하며, 대신 서피스뷰SurfaceView를 사용하라.

관련: Canvas

  • 서피스뷰(SurfaceView)

    • 그리기를 위한 서피스Surface를 감싸고 있는 뷰 오브젝트로, 동적으로 그것의 크기와 포맷을 지정하기 위한 메쏘드들을 제시한다. 서피스뷰SurfaceView 는 (게임이나 카메라 미리보기와 같은) 리소스 집약적resource-intensive 오퍼레이션을 위해 UI thread와는 독립적으로 그리는 방법을 제공한다. 그러나 그것은 결과적으로 추가적인 메모리를 사용한다. 서피스뷰SurfaceView는 캔버스Canvas와 OpenGL ES 그래픽 모두를 지원한다. 베이스 클래스는 서피스뷰SurfaceView 이다.

관련: Surface

  • 테마(Theme)

    • 다양한 디폴트 디스플레이 설정을 정의하기 위해 함께 묶어진 속성들(텍스트 크기, 백그라운드컬러, 그리고 기타 등등)의 집합. 안드로이드는 (“Theme_”으로 시작하는) R.style에 리스트된 몇 가지 표준 테마를 제공한다.

  • 안드로이드 URI들(URIs in Android)

    • 안드로이드는 (컨택 리스트를 얻어오는 것과 같은) 컨텐트 프로바이더에 데이터를 요청하는 것과 (브라우저에서 웹 페이지를 오픈하는 것과 같은) 인텐트에 액션을 요청하는 것에 대한 기초로 URI 문자열을 사용한다. 그 URI 스키마scheme과 포맷은 사용 유형에 따라 달라지며, 애플리케이션은 원하는 어떠한 방식으로도 특정 URI 스키마와 문자열을 처리할 수 있다. 어떤 URI 스키마는 시스템 컴포넌트에 의해 예약되어 있다. 예를 들어 컨텐트 프로바이더로부터의 데이터에 대한 요청은 content://를 사용해야 한다. 인텐트에서, http:// 스키마를 사용하는 URI는 브라우저에 의해 처리될 것이다.

  • 뷰(View)

    • 스크린에서 직사각형의 영역을 그리는 오브젝트이며, 클릭click, 키스트로크keystroke, 그리고다른 상호작용 이벤트를 처리한다. 뷰는 액티비티나 다이얼 로그 스크린(텍스트 상자, 윈도우, 그리고 기타 등등)의 레이아웃 컴포넌트 대부분에 대한 베이스 클래스이다. 뷰는 스스로를 그리기 위해 그것의 부모parent 오브젝트(아래의 뷰그룹(Viewgroup)을 보라)로부터 호출을 받는다. 그리고 (부모(parent) 오브젝트에 의해 반영될 수도 있고 그렇지 않을 수도 있지만) 그것이 어디에 있어야 하고 얼마나 커야 하는지에 대해 그것의 부모 오브젝트에게 알려준다. 더 많은 정보는 View를 보라.

관련: Viewgroup, Widget

  • 뷰그룹(Viewgroup)

    • 자식child 뷰들의 집합을 그룹화하는 컨테이너 오브젝트. 뷰그룹은 자식 뷰들이 적절할 때 스스로를 그리도록 하기 위해 각각을 호출하는 것뿐만 아니라, 자식뷰들이 어디에 위치하고 얼마나 커야하는가를 결정하는 것에 대해 책임을 진다. 어떤 뷰그룹은 다른 것들이 고유의 UI(예를 들어 스크롤되는 리스트 상자)를 가지는 것에 반해, 보여지지 않고 단지 레이아웃을 위해서만 존재하게 된다. 뷰그룹들은 widget 패키지 안에 모두 있지만, 뷰그룹Viewgroup을 확장extend한다.

관련: View

  • 위젯(Widget)

    • 텍스트 상자 또는 팝업 메뉴와 같은 폼 엘리먼트와 다른 UI 컴포넌트를 렌더render하는 완전하게 구현된 뷰 서브클래스들의 집합 중 하나. 위젯은 완전하게 구현되었기 때문에, 그것은 스스로를 측정하는 것과 그리는 것, 그리고 스크린 이벤트에 반응하는 것을 처리한다. 위젯은 모두 android.widget 패키지에 있다.

  • 윈도우(Window)

    • 안드로이드 애플리케이션에서 룩앤필(look and feel, 타이틀 바 텍스트, 메뉴의 위치와 컨텐츠, 그리고 기타 등등)과 같은, 일반적인 윈도우의 엘리먼트를 명시하는 추상 클래스Window로부터 파생된 오브젝트. 다이얼로그와 액티비티는 윈도우를 렌더render하기 위해서 이 클래스의 구현물을 사용한다. 여러분은 이 클래스를 구현할 필요없이 여러분의 애플리케이션에서 윈도우를 사용할 수 있다.