>일반적인 문제 >안드로이드의 네 가지 주요 구성 요소는 무엇입니까?

안드로이드의 네 가지 주요 구성 요소는 무엇입니까?

青灯夜游
青灯夜游원래의
2022-11-24 19:14:4445972검색

네 가지 주요 구성 요소: 1. 활동 구성 요소는 별도의 창이며 프로그램 흐름은 [활동]에서 실행되어야 하므로 가장 기본적인 모듈입니다. 2. 서비스 구성요소는 백그라운드에서 사용자가 지정한 작업을 완료하는 데 사용됩니다. 3. 콘텐츠 제공자 구성 요소는 모든 애플리케이션에 대한 콘텐츠 창을 준비하고 데이터베이스와 파일을 유지합니다. 4. 방송 수신기 구성 요소는 프로그램 간에 정보를 전송하는 메커니즘으로 알림을 받거나 보내는 것입니다.

안드로이드의 네 가지 주요 구성 요소는 무엇입니까?

이 튜토리얼의 운영 환경: Android 13 시스템, Xiaomi 12 휴대폰.

Android의 네 가지 주요 구성 요소는 활동, 서비스, 콘텐츠 제공자 및 방송 수신기입니다.

1. 안드로이드의 4가지 주요 구성 요소에 대한 자세한 설명

1. Activity

Activity는 Android 시스템의 기초라고 할 수 있으며, 이러한 기반 위에서만 다른 작업을 수행할 수 있습니다. 안드로이드 시스템에서 실행되기 때문에 모든 프로그램과 프로세스는 [액티비티]에서 실행되어야 하므로 가장 기본적인 모듈입니다. 프레임이나 페이지의 역할을 하며, 각 프로그램은 여러 개의 [활동]으로 구성됩니다.

(1) Activity는 일반적으로 별도의 화면(창)입니다.

(2) 활동은 의도를 통해 통신합니다.

(3) 안드로이드 애플리케이션의 모든 활동은 AndroidManifest.xml 구성 파일에서 선언되어야 합니다. 그렇지 않으면 시스템이 활동을 인식하거나 실행할 수 없습니다.

2. Service

Service는 Android에서 매우 중요한 구성요소입니다. 그러나 서비스는 Android 백그라운드에서만 실행될 수 있습니다. 그 기능은 Android의 다른 구성 요소와 상호 작용하는 것입니다. 예를 들어 휴대폰에서 음악 플레이어를 열고 백그라운드에 놓으면 이때 재생되는 음악이 서비스에 의해 제어됩니다.

1) 서비스는 백그라운드에서 사용자가 지정한 작업을 완료하는 데 사용됩니다. 서비스에는 두 가지 유형이 있습니다.

  • started(시작됨): 애플리케이션 구성 요소(예: 활동)가 startService() 메서드를 호출하여 서비스를 시작하면 서비스는 시작된 상태입니다.

  • bound(바인딩): 애플리케이션 구성 요소가 서비스에 바인딩하기 위해 서비스 바인딩() 메서드를 호출하면 서비스는 바인딩된 상태입니다.

2) startService()와 binService()의 차이점:

  • 시작된 서비스(시작된 서비스)는 startService() 메서드를 호출하는 다른 구성 요소에 의해 시작되며, 이로 인해 서비스의 onStartCommand() 메서드가 호출됩니다. . 서비스가 시작됨 상태에 있으면 해당 수명 주기는 서비스를 시작한 구성 요소와 독립적이며 서비스를 시작한 구성 요소가 삭제된 경우에도 백그라운드에서 무기한 실행될 수 있습니다. 따라서 작업을 완료한 후 stopSelf() 메서드를 호출하거나 stopService() 메서드를 호출하는 다른 구성 요소를 통해 서비스를 중지해야 합니다.

  • bindService() 메소드를 사용하여 서비스를 활성화합니다. 호출자와 서비스가 함께 바인딩됩니다. 호출자가 종료되면 서비스가 종료됩니다. , 하지만 동시에 죽어야 합니다."

3) 개발자는 태그를 사용하여 애플리케이션 구성 파일에서 모든 서비스를 선언해야 합니다.

4) 서비스는 일반적으로 백그라운드에서 실행됩니다. 일반적으로 사용자와 상호 작용할 필요가 없으므로 서비스 구성 요소에는 그래픽 사용자 인터페이스가 없습니다. 서비스 구성 요소는 서비스 기본 클래스를 상속해야 합니다. 서비스 구성 요소는 일반적으로 다른 구성 요소에 대한 백그라운드 서비스를 제공하거나 다른 구성 요소의 실행 상태를 모니터링하는 데 사용됩니다.

3. 콘텐츠 제공자(Content Provider)

이 구성 요소는 타사 애플리케이션용으로 특별히 설계되었으며 모든 애플리케이션에 대한 콘텐츠 창을 준비합니다. , 이를 통해 이러한 제3자 소프트웨어를 사용할 때 내부 데이터에 효과적으로 액세스하고 보호할 수 있습니다.

1) 안드로이드 플랫폼은 애플리케이션의 지정된 데이터 세트를 다른 애플리케이션에 제공하기 위해 콘텐츠 제공자를 제공합니다. 다른 애플리케이션은 ContentResolver 클래스를 통해 이 콘텐츠 제공자로부터 데이터를 얻거나 저장할 수 있습니다.

2) 콘텐츠 제공자는 여러 애플리케이션 간에 데이터를 공유해야 하는 경우에만 필요합니다. 예를 들어, 주소록 데이터는 여러 애플리케이션에서 사용되며 콘텐츠 제공자에 저장되어야 합니다. 그 이점은 데이터에 액세스하는 방식을 통합하는 것입니다.

3) ContentProvider는 데이터 공유를 구현합니다. ContentProvider는 데이터를 저장 및 획득하고 모든 애플리케이션에 표시하는 데 사용됩니다. Android는 모든 애플리케이션이 액세스할 수 있는 공통 저장 영역을 제공하지 않기 때문에 이것이 서로 다른 애플리케이션 간에 데이터를 공유하는 유일한 방법입니다.

4) 개발자는 ContentProvider 클래스의 개체를 직접 사용하지 않습니다. 대부분은 ContentResolver 개체를 통해 ContentProvider에 대한 작업을 구현합니다.

5) ContentProvider는 URI를 사용하여 데이터 세트를 고유하게 식별합니다. 여기서 URI 앞에는 content://가 붙어 있어 데이터가 ContentProvider에 의해 관리됨을 나타냅니다.

4. 방송 수신기

안드로이드 시스템에서는 방송 수신기가 직접적으로 보이지 않습니다. 프로그램 간 정보를 전송하는 메커니즘입니다. 알림을 받거나 보내는 기능입니다. 일반인의 관점에서 보면 브로드캐스트 수신기는 정보를 수신하고 필터링한 다음 응답할 수도 있는 전달 구성 요소에 가깝습니다.

1) 애플리케이션은 이를 사용하여 외부 이벤트를 필터링하고 관심 있는 외부 이벤트(예: 전화가 올 때 또는 데이터 네트워크를 사용할 수 있는 경우)만 수신하고 응답할 수 있습니다. Broadcast Receiver에는 사용자 인터페이스가 없습니다. 그러나 수신한 정보에 대한 응답으로 활동이나 서비스를 시작하거나, 사용자에게 알리기 위해 알림 관리자를 사용할 수 있습니다. 알림은 백라이트 깜박임, 진동, 소리 재생 등 사용자의 주의를 끌기 위해 다양한 방법으로 사용될 수 있습니다. 일반적인 아이디어는 사용자가 열고 메시지를 받을 수 있는 상태 표시줄에 영구 아이콘을 배치하는 것입니다.

2) 방송 수신기를 등록하는 방법에는 프로그램 내 동적 등록과 AndroidManifest 파일 내 정적 등록의 두 가지 방법이 있습니다.

3) 동적으로 등록된 방송 수신기의 특징은 등록에 사용된 활동이 꺼지면 방송이 무효화된다는 것입니다. 정적 등록은 방송 수신기가 꺼져 있는지 걱정할 필요가 없습니다. 장치가 켜져 있으면 방송 수신기도 켜집니다. 즉, 앱 자체가 시작되지 않더라도 앱이 구독하는 방송이 실행되면 영향을 미치게 됩니다.

2. 안드로이드의 4가지 주요 구성요소 요약:

1. 4가지 주요 구성요소 등록

4가지 기본 구성요소를 사용하려면 먼저 등록해야 합니다. 및 콘텐츠 제공자는 AndroidManifest 파일 구성에 있어야 합니다. AndroidManifest 파일에 선언되지 않은 활동, 서비스 및 콘텐츠 제공자는 시스템에 표시되지 않으므로 사용할 수 없습니다. Broadcast Receiver 등록은 정적 등록(AndroidManifest 파일에 구성)과 코드를 통한 동적 생성, Context.registerReceiver() 호출을 통한 시스템 등록으로 구분됩니다. AndroidManifest 파일에 구성된 브로드캐스트 수신기는 시스템이 시작될 때 활성 상태로 유지되며 관심 있는 브로드캐스트가 수신되는 한(프로그램이 실행되고 있지 않더라도) 트리거됩니다.

2. 4가지 주요 구성 요소 활성화

콘텐츠 제공자 활성화: ContentResolver의 요청을 받은 후 콘텐츠 제공자가 활성화됩니다. 다른 세 가지 구성 요소인 활동, 서비스 및 브로드캐스트 수신기는 인텐트라는 비동기 메시지에 의해 활성화됩니다.

3개와 4개의 주요 구성 요소를 닫습니다

콘텐츠 공급자는 ContentResolver의 요청에 대한 응답으로만 활성화됩니다. 브로드캐스트 수신기는 브로드캐스트 메시지에 대한 응답으로만 활성화됩니다. 따라서 이러한 구성 요소를 명시적으로 닫을 필요가 없습니다. 활동 종료: 종료() 메서드를 호출하여 활동을 닫을 수 있습니다. 서비스 종료: startService() 메소드를 통해 시작된 서비스의 경우 Context.stopService() 메소드를 호출하여 서비스를 종료해야 합니다.bindService() 메소드를 사용하여 시작된 서비스의 경우 Contex.unbindService() 메소드를 호출해야 합니다. 서비스를 종료합니다.

4. Android의 작업(활동 스택)

a) 작업은 실제로 하나 이상의 활동으로 구성된 활동의 스택이며 함께 완전한 사용자 경험을 완성합니다. 스택의 맨 아래는 전체 작업을 시작하는 액티비티이고, 스택의 맨 위는 사용자가 상호 작용할 수 있는 현재 실행 중인 액티비티입니다. 한 액티비티가 다른 액티비티를 시작하면 새 액티비티가 스택에 푸시되어 현재 액티비티가 됩니다. 달리기 활동. 이전 활동은 스택에 남아 있습니다. 사용자가 BACK 키를 누르면 현재 활동이 스택에서 사라지고 이전 활동이 현재 실행 중인 활동으로 돌아갑니다. 스택에 저장되는 것은 실제로 개체입니다. 스택의 활동은 재배열되지 않으며 푸시되거나 팝될 뿐입니다.

b) 작업의 모든 활동은 전체적으로 움직입니다. 전체 작업(예: 활동 스택)은 전경으로 이동하거나 배경으로 돌아갈 수 있습니다.

c) 안드로이드 시스템은 휴대폰에서 음악을 들으면서 여러 다른 프로그램을 실행할 수 있는 멀티 태스킹 운영 체제입니다. 추가 응용 프로그램이 실행될 때마다 더 많은 시스템 메모리가 소비됩니다. 동시에 너무 많은 프로그램이 실행되거나 닫힌 프로그램이 메모리를 올바르게 해제하지 않으면 시스템이 느려지고 느려지거나 심지어 불안정해지는 것처럼 느껴집니다. 이 문제를 해결하기 위해 Android에서는 Life Cycle이라는 새로운 메커니즘을 도입했습니다.

관련 지식이 더 궁금하시다면 FAQ 칼럼을 방문해 주세요!

위 내용은 안드로이드의 네 가지 주요 구성 요소는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.