자주 묻는 질문(FAQ)

이 페이지에서는 몇 가지 자주 묻는 질문(FAQ)에 대한 답변을 제공합니다.

오픈 소스

Android 오픈 소스 프로젝트란 무엇입니까?

AOSP(Android Open Source Project)는 Android를 구성하는 사람, 프로세스 및 소스 코드를 의미합니다.

사람들은 프로젝트를 감독하고 소스 코드를 개발합니다. 프로세스는 소프트웨어 개발을 관리하는 데 사용하는 도구 및 절차입니다. 최종 결과는 휴대폰 및 기타 장치에서 사용할 수 있는 소스 코드입니다.

Android 소스 코드를 공개한 이유는 무엇입니까?

Google은 모바일 앱을 출시한 경험을 바탕으로 Android 프로젝트를 시작했습니다. 우리는 통신 사업자, OEM 및 개발자가 혁신적인 아이디어를 실현하는 데 사용할 수 있는 개방형 플랫폼이 항상 존재하도록 하고 싶었습니다. 우리는 또한 중앙 실패 지점을 피하기를 원했기 때문에 단일 업계 플레이어가 다른 플레이어의 혁신을 제한하거나 제어할 수 없었습니다. AOSP의 가장 중요한 단일 목표는 오픈 소스 Android 소프트웨어가 가능한 한 광범위하고 호환 가능하게 구현되어 모든 사람에게 이익이 되도록 하는 것입니다.

안드로이드는 어떤 오픈소스 프로젝트인가요?

Google은 핵심 Android 오픈 소스 플랫폼의 개발을 감독하고 강력한 개발자 및 사용자 커뮤니티를 만들기 위해 노력합니다. 대부분의 경우 Android 소스 코드는 카피레프트 라이선스 가 아닌 허용되는 Apache 라이선스 2.0에 따라 라이선스가 부여됩니다. Apache 2.0 라이선스를 선택한 이유는 Android 소프트웨어의 광범위한 채택을 장려하기 때문입니다. 자세한 내용은 라이선스 를 참조하십시오.

구글이 안드로이드를 책임지는 이유는?

소프트웨어 플랫폼을 시작하는 것은 복잡합니다. 개방성은 개발자의 투자를 유치하고 공정한 경쟁의 장을 보장하기 때문에 플랫폼의 장기적인 성공에 매우 중요합니다. 또한 플랫폼은 사용자에게 매력적인 제품이어야 합니다.

Google은 Android가 완전히 경쟁력 있는 소프트웨어 플랫폼이 되도록 하는 데 필요한 전문 엔지니어링 리소스를 투입했습니다. Google은 Android 프로젝트를 본격적인 제품 개발 작업으로 간주하고 Android를 실행하는 훌륭한 기기가 시장에 출시되도록 하는 데 필요한 비즈니스 거래를 체결합니다.

Android가 사용자와 함께 성공할 수 있도록 함으로써 플랫폼 및 오픈 소스 프로젝트로서의 Android의 활력을 보장하는 데 도움이 됩니다. 결국 실패한 제품에 대한 소스 코드를 원하는 사람은 누구입니까?

Google의 목표는 Android 주변의 성공적인 생태계를 보장하는 것입니다. 누구나 자신의 필요에 맞게 소프트웨어를 수정하고 배포할 수 있도록 Android 소스 코드를 공개했습니다.

Android 제품 개발을 위한 Google의 전반적인 전략은 무엇입니까?

우리는 경쟁력 있는 시장에 훌륭한 장치를 출시합니다. 그런 다음 우리가 만든 혁신과 개선 사항을 핵심 플랫폼에 다음 버전으로 통합합니다.

실제로 이것은 Android 엔지니어링 팀이 소수의 "대표적인" 기기에 초점을 맞추고 이러한 제품 출시를 지원하기 위해 Android 소프트웨어의 다음 버전을 개발한다는 것을 의미합니다. 이러한 플래그십 장치는 제품 위험의 많은 부분을 흡수하고 새로운 기능을 활용하는 더 많은 장치를 후속 조치하는 광범위한 OEM 커뮤니티를 위한 길을 열어줍니다. 이러한 방식으로 Android 플랫폼이 실제 장치의 요구 사항에 따라 진화하는지 확인합니다.

안드로이드 소프트웨어는 어떻게 개발되나요?

Android의 각 플랫폼 버전(예: 1.5 또는 8.1)에는 오픈 소스 트리에 해당 분기가 있습니다. 가장 최근 분기는 현재 안정 분기 버전으로 간주됩니다. 이것은 제조업체가 장치에 이식하는 분기입니다. 이 분기는 항상 릴리스에 적합하게 유지됩니다.

동시에 대규모 차세대 기능과 같은 투기적 기여가 개발되는 현재 실험 분기가 있습니다. 버그 수정 및 기타 기여는 적절하게 실험 분기의 현재 안정 분기에 포함될 수 있습니다.

마지막으로 Google은 플래그십 장치 개발과 함께 Android 플랫폼의 다음 버전에서 작업합니다. 이 분기는 실험적이고 안정적인 분기에서 적절하게 변경 사항을 가져옵니다.

코드라인, 분기 및 릴리스에 대한 자세한 내용은 AOSP 코드 관리 를 참조하세요.

Android의 일부가 비공개로 개발된 이유는 무엇인가요?

일반적으로 장치를 시장에 출시하는 데 1년 이상이 걸립니다. 물론 장치 제조업체는 가능한 최신 소프트웨어를 출시하기를 원합니다. 한편 개발자는 앱을 작성할 때 플랫폼의 새 버전을 지속적으로 추적하기를 원하지 않습니다. 두 그룹 모두 제품 배송과 뒤처지기를 원하지 않는 사이의 긴장을 경험합니다.

이 문제를 해결하기 위해 핵심 플랫폼 API를 포함한 다음 버전의 Android의 일부는 프라이빗 브랜치에서 개발됩니다. 이러한 API는 Android의 다음 버전을 구성합니다. 우리의 목표는 플랫폼의 다음 버전을 만드는 동안 Android 소스 코드의 현재 안정적인 버전에 주의를 집중하는 것입니다. 이를 통해 개발자와 OEM은 완료되지 않은 향후 작업을 추적하지 않고 단일 버전을 사용할 수 있습니다. 애플리케이션 호환성과 관련이 없는 Android 시스템의 다른 부분은 공개적으로 개발됩니다. 시간이 지남에 따라 개발을 열기 위해 이러한 부분을 더 많이 이동하는 것이 우리의 의도입니다.

소스 코드 릴리스는 언제 이루어집니까?

준비가 되면 소스 코드를 릴리스하는 것은 상당히 복잡한 프로세스입니다. Android의 일부는 공개적으로 개발되며 해당 소스 코드는 항상 사용할 수 있습니다. 다른 부분은 먼저 프라이빗 트리에서 개발하고 해당 소스 코드는 다음 플랫폼 버전이 준비되면 릴리스됩니다.

일부 릴리스에서는 핵심 플랫폼 API가 사전에 충분히 준비되어 있으므로 장치 릴리스 전에 미리 보기 위해 소스 코드를 푸시할 수 있습니다. 다른 릴리스에서는 이것이 불가능합니다. 모든 경우에 버전이 안정적이라고 판단되고 개발 프로세스가 허용할 때 플랫폼 소스를 공개합니다.

새 Android 버전의 소스 코드를 릴리스하는 데 관련된 작업은 무엇입니까?

Android 플랫폼의 새 버전에 대한 소스 코드를 릴리스하는 것은 중요한 프로세스입니다. 첫째, 소프트웨어는 장치의 시스템 이미지에 내장되어 전화기가 배치될 지역에 대한 정부 규제 인증을 포함하여 다양한 형태의 인증을 거칩니다. 코드는 또한 연산자 테스트를 거칩니다. 이것은 소프트웨어 버그를 감지하는 데 도움이 되기 때문에 프로세스의 중요한 단계입니다.

규제 기관과 운영자가 릴리스를 승인하면 제조업체는 장치를 대량 생산하기 시작하고 우리는 소스 코드를 공개하기 시작합니다.

대량 생산과 동시에 Google 팀은 오픈 소스 릴리스를 준비하기 위한 여러 노력을 시작합니다. 이러한 노력에는 최종 API 변경, 문서 업데이트(예: 자격 테스트 중 수정 사항 반영), 새 버전용 SDK 준비, 플랫폼 호환성 정보 시작이 포함됩니다.

우리 법무팀은 코드를 오픈 소스로 출시하기 위해 최종 승인을 합니다. 오픈 소스 기여자가 자신의 기여에 대한 지적 재산권 소유권을 증명하는 기여자 라이선스 계약에 서명해야 하는 것처럼 Google은 해당 소스가 기여하도록 승인되었는지 확인해야 합니다.

양산이 시작되는 시점부터 소프트웨어 출시 프로세스는 보통 한 달 정도 걸리기 때문에 디바이스가 사용자에게 도달하는 것과 거의 동시에 소스 코드 출시가 이루어지는 경우가 많습니다.

AOSP는 Android 호환성 프로그램과 어떤 관련이 있나요?

Android 오픈 소스 프로젝트는 Android 소프트웨어를 유지 관리하고 새 버전을 개발합니다. 오픈 소스이기 때문에 이 소프트웨어는 동일한 소스를 기반으로 하는 다른 장치와 호환되지 않는 장치를 개발하는 것을 포함하여 모든 목적으로 사용할 수 있습니다.

Android 호환성 프로그램의 기능은 개발자가 작성한 타사 앱과 호환되는 Android의 기본 구현을 정의하는 것입니다. Android와 호환되는 기기는 Google Play를 포함한 Android 생태계에 참여할 수 있습니다. 호환성 요구 사항을 충족하지 않는 장치는 해당 에코시스템 외부에 존재합니다.

즉, Android 호환성 프로그램은 Android 호환 기기를 단순히 소스 코드의 파생물을 실행하는 기기와 분리하는 방법입니다. Android 소스 코드의 모든 사용을 환영하지만 Android 에코시스템에 참여하려면 프로그램에서 기기가 Android와 호환되는 것으로 식별되어야 합니다.

Android에 어떻게 기여할 수 있나요?

버그를 보고하거나 Android용 앱을 작성하거나 Android 오픈 소스 프로젝트에 소스 코드를 제공할 수 있습니다.

우리가 수락하는 코드 기여의 종류에는 제한이 있습니다. 예를 들어, 누군가가 완전한 C++ 기반 환경과 같은 대체 애플리케이션 API를 제공하기를 원할 수 있습니다. Android는 애플리케이션이 ART 런타임에서 실행되도록 권장하기 때문에 이러한 기여를 거부합니다. 마찬가지로 우리는 라이선스 목표와 호환되지 않는 GPL 또는 LGPL 라이브러리와 같은 기여를 수락하지 않습니다.

소스 코드를 제공하는 데 관심이 있는 분들은 작업을 시작하기 전에 Android 커뮤니티 페이지에 나열된 채널을 통해 문의하시기 바랍니다. 자세한 내용은 기여 를 참조하십시오.

Android 커미터가 되려면 어떻게 해야 하나요?

Android 오픈 소스 프로젝트에는 실제로 커미터 개념이 없습니다. 모든 기여(Google 직원이 작성한 기여 포함)는 Android 엔지니어링 프로세스의 일부인 Gerrit로 알려진 웹 기반 시스템을 거칩니다. 이 시스템은 git 소스 코드 관리 시스템과 함께 작동하여 소스 코드 기여를 깔끔하게 관리합니다.

제출 시 지정된 승인자가 변경 사항을 수락해야 합니다. 승인자는 일반적으로 Google 직원이지만 출처에 관계없이 동일한 승인자가 모든 제출을 책임집니다.

자세한 내용은 패치 제출 을 참조하십시오.

맨 위로

호환성

Android "호환성"이란 무엇입니까?

Android 호환 기기 는 Android SDK 및 NDK를 사용하여 타사 개발자가 작성한 모든 애플리케이션을 실행할 수 있는 기기로 정의합니다. 이를 필터로 사용하여 Android 앱 생태계에 참여할 수 있는 기기와 참여할 수 없는 기기를 구분합니다. 적절하게 호환되는 기기의 경우 기기 제조업체는 Android 상표 사용에 대한 승인을 요청할 수 있습니다. 호환되지 않는 기기는 Android 소스 코드에서 파생되었으며 Android 상표를 사용할 수 없습니다.

즉, 호환성은 안드로이드 앱 생태계에 참여하기 위한 전제 조건입니다. 누구나 Android 소스 코드를 사용할 수 있습니다. 그러나 기기가 호환되지 않으면 Android 생태계의 일부로 간주되지 않습니다.

호환성에서 Google Play의 역할은 무엇입니까?

Android 호환 기기를 사용하는 기기 제조업체는 Google Play 클라이언트 소프트웨어 라이선스를 요청할 수 있습니다. 라이선스가 부여된 기기는 Android 앱 에코시스템의 일부가 되어 사용자가 호환되는 모든 기기에서 공유하는 카탈로그에서 개발자 앱을 다운로드할 수 있습니다. 호환되지 않는 장치에는 라이선스를 사용할 수 없습니다.

어떤 종류의 기기가 Android와 호환될 수 있습니까?

Android 소프트웨어는 타사 앱이 제대로 실행되지 않는 일부 기기를 포함하여 다양한 기기로 이식될 수 있습니다. Android CDD(호환성 정의 문서 )는 호환되는 것으로 간주되는 특정 기기 구성을 설명합니다.

예를 들어 Android 소스 코드를 카메라가 없는 전화기에서 실행하도록 이식할 수 있지만 CDD에서는 모든 전화기에 카메라가 있어야 합니다. 이를 통해 개발자는 앱을 작성할 때 일관된 기능 집합에 의존할 수 있습니다.

CDD는 시장 현실을 반영하기 위해 계속 진화하고 있습니다. 예를 들어 CDD 버전 1.6은 휴대폰만 지원합니다. 그러나 버전 2.1에서는 장치에서 전화 통신 하드웨어를 생략할 수 있으므로 태블릿 스타일의 음악 플레이어와 같은 전화가 아닌 장치도 호환될 수 있습니다. 이러한 변경 사항을 적용하면 개발자가 앱을 사용할 수 있는 위치를 계속 제어할 수 있도록 Google Play도 보강할 예정입니다. 전화 통신 예제를 계속하려면 SMS 문자 메시지를 관리하는 앱은 미디어 플레이어에서 유용하지 않으므로 Google Play에서는 개발자가 해당 앱을 전화 장치로만 제한할 수 있습니다.

내 기기가 호환되는 경우 자동으로 Google Play 및 브랜딩에 액세스할 수 있습니까?

아니요. 액세스는 자동이 아닙니다. Google Play는 Google에서 운영하는 서비스입니다. 호환성을 확보하는 것은 Google Play 소프트웨어 및 브랜드에 대한 액세스 권한을 얻기 위한 전제 조건입니다. 기기가 Android 호환 기기로 인증 되면 기기 제조업체는 Google Play에 대한 액세스 권한을 얻기 위해 Google 모바일 서비스 라이선스 에 포함된 문의 양식을 작성해야 합니다. 도움이 된다면 연락드리겠습니다.

제조업체가 아닌 경우 Google Play를 어떻게 받을 수 있나요?

Google Play는 기기를 배송하는 핸드셋 제조업체에만 라이선스가 부여됩니다. 특정 사례에 대한 질문은 android-partnerships@google.com 으로 문의하세요.

지도와 같은 Android용 Google 앱에 액세스하려면 어떻게 해야 하나요?

예를 들어 YouTube, Google 지도 및 Gmail과 같은 Android용 Google 앱은 Android의 일부가 아니며 별도로 라이선스가 부여되는 Google 자산입니다. 이러한 앱과 관련된 문의 사항은 android-partnerships@google.com 으로 문의하세요.

호환성은 필수인가요?

아니요. Android 호환성 프로그램은 선택 사항입니다. Android 소스 코드가 열려 있으므로 누구나 이를 사용하여 모든 종류의 기기를 구축할 수 있습니다. 그러나 제조업체가 제품에 Android 이름을 사용하거나 Google Play에 액세스하려는 경우 먼저 기기가 호환된다는 것을 입증 해야 합니다.

호환성 인증 비용은 얼마입니까?

장치에 대한 Android 호환성을 얻는 데 드는 비용은 없습니다. Compatibility Test Suite는 오픈 소스이며 누구나 장치 테스트에 사용할 수 있습니다.

호환성은 얼마나 걸립니까?

프로세스가 자동화됩니다. 호환성 테스트 모음은 호환성을 확인하기 위해 Google에 제공할 수 있는 보고서를 생성합니다. 결국 우리는 이러한 보고서를 공개 데이터베이스에 업로드할 수 있는 셀프 서비스 도구를 제공할 계획입니다.

호환성 정의는 누가 결정합니까?

Google은 플랫폼 및 제품으로서 Android의 전반적인 방향을 책임지고 있으므로 Google은 각 릴리스에 대한 CDD(호환성 정의 문서)를 유지 관리합니다. 의견을 제공하는 다양한 OEM과 협의하여 새 Android 버전용 CDD 초안을 작성합니다.

새 기기에서 각 Android 버전은 얼마나 오래 지원되나요?

Android의 코드는 오픈 소스이므로 누군가가 이전 버전을 사용하여 기기를 실행하는 것을 막을 수는 없습니다. 대신 Google은 더 이상 사용되지 않는 것으로 간주되는 버전에서 사용하기 위해 Google Play 클라이언트 소프트웨어에 대한 라이선스를 부여하지 않기로 선택합니다. 이를 통해 누구나 이전 버전의 Android를 계속 출시할 수 있지만 해당 기기는 Android 이름을 사용하지 않으며 호환되지 않는 것처럼 Android 앱 생태계 외부에 존재합니다.

장치가 다른 사용자 인터페이스를 갖고도 여전히 호환될 수 있습니까?

Android 호환성 프로그램은 장치에서 타사 응용 프로그램을 실행할 수 있는지 여부를 결정합니다. 장치와 함께 제공되는 사용자 인터페이스 구성 요소(예: 홈 화면, 다이얼러 및 색 구성표)는 일반적으로 타사 앱에 큰 영향을 미치지 않습니다. 따라서 장치 빌더는 사용자 인터페이스를 자유롭게 사용자 지정할 수 있습니다. 호환성 정의 문서는 OEM이 타사 앱에 영향을 미치는 영역에 대해 시스템 사용자 인터페이스를 변경할 수 있는 정도를 제한합니다.

새 Android 버전에 대한 호환성 정의는 언제 릴리스됩니까?

우리의 목표는 해당 Android 플랫폼 버전이 허용할 만큼 충분히 수렴되었을 때 Android CDD(호환성 정의 문서)의 새 버전을 릴리스하는 것입니다. 첫 번째 주력 기기가 소프트웨어와 함께 배송되기 전에 Android 소프트웨어 버전용 CDD의 최종 초안을 출시할 수는 없지만 최종 CDD는 항상 첫 번째 기기 이후에 출시됩니다. 그러나 가능한 경우 CDD의 초안 버전을 릴리스합니다.

장치 제조업체의 호환성 주장은 어떻게 검증됩니까?

Android 기기 호환성에 대한 검증 프로세스가 없습니다. 그러나 기기에 Google Play가 포함되는 경우 Google은 일반적으로 Google Play 클라이언트 소프트웨어 라이선스에 동의하기 전에 기기의 호환성을 확인합니다.

호환성을 주장하는 장치가 나중에 호환성 문제가 있는 것으로 밝혀지면 어떻게 됩니까?

일반적으로 Google과 Google Play 라이선스 사용자의 관계를 통해 기기 제조업체에 문제를 해결하는 업데이트된 시스템 이미지를 출시하도록 요청할 수 있습니다.

맨 위로

호환성 테스트 제품군

CTS의 목적은 무엇입니까?

Compatibility Test Suite는 장치 제조업체에서 장치가 호환되는지 확인하고 검증을 위한 테스트 결과를 보고하는 데 사용하는 도구입니다. CTS는 호환성 문제를 조기에 파악하기 위해 엔지니어링 프로세스 전반에 걸쳐 OEM에서 자주 실행하도록 고안되었습니다.

CTS는 어떤 것들을 테스트합니까?

CTS는 현재 지원되는 모든 Android 강력한 유형의 API가 존재하고 올바르게 작동하는지 테스트합니다. 또한 애플리케이션 수명 주기 및 성능과 같은 기타 비 API 시스템 동작을 테스트합니다. 인텐트와 같은 소프트 API를 테스트하기 위해 향후 CTS 버전에 지원을 추가할 계획입니다.

CTS 보고서가 공개됩니까?

예. 현재 구현되지는 않았지만 Google은 OEM이 CTS 보고서를 게시하여 누구나 볼 수 있도록 웹 기반 셀프 서비스 도구를 제공할 계획입니다. 제조업체는 원하는 만큼 광범위한 청중과 CTS 보고서를 공유할 수 있습니다.

CTS 라이선스는 어떻게 됩니까?

CTS는 대부분의 Android에서 사용하는 것과 동일한 Apache 소프트웨어 라이선스 2.0에 따라 라이선스가 부여됩니다.

CTS는 기부를 수락합니까?

예, 부탁합니다! Android 오픈 소스 프로젝트는 다른 구성요소와 마찬가지로 CTS를 개선하기 위한 기여를 수락합니다. 사실, CTS 테스트 케이스의 커버리지와 품질을 개선하는 것은 Android를 돕는 가장 좋은 방법 중 하나입니다.

누구나 기존 장치에서 CTS를 사용할 수 있습니까?

호환성 정의 문서는 호환되는 장치가 adb 디버깅 유틸리티를 구현하도록 요구합니다. 즉, 모든 호환 장치(소매점에서 구입 가능한 장치 포함)에서 CTS 테스트를 실행할 수 있어야 합니다.

코덱은 CTS에서 확인합니까?

예. 모든 필수 코덱은 CTS에서 확인합니다.

맨 위로