| page.title=핵심 앱 품질 |
| page.metaDescription=앱 품질은 설치, 사용자 평점 및 리뷰, 사용자 확보 및 유지 측면에서 앱의 장기간 성공에 직접적인 영향을 미칩니다. |
| page.image=/distribute/images/core-quality-guidelines.jpg |
| @jd:body |
| |
| <div id="qv-wrapper"><div id="qv"> |
| <h2>품질 기준</h2> |
| <ol> |
| <li><a href="#ux">디자인 및 상호작용</a></li> |
| <li><a href="#fn">기능</a></li> |
| <li><a href="#ps">성능 및 안정성</a></li> |
| <li><a href="#listing">Google Play</a></li> |
| |
| </ol> |
| |
| <h2>테스트</h2> |
| <ol> |
| <li><a href="#test-environment">테스트 환경 설정</a></li> |
| <li><a href="#tests">테스트 절차</a></li> |
| </ol> |
| |
| <h2>필독 항목</h2> |
| <ol> |
| <li><a href="{@docRoot}distribute/essentials/quality/tablets.html">태블릿 앱 품질</a></li> |
| <li><a href="{@docRoot}distribute/essentials/optimizing-your-app.html">앱 최적화</a></li> |
| </ol> |
| |
| |
| </div> |
| </div> |
| |
| <div class="top-right-float"> |
| <img src="{@docRoot}images/gp-core-quality.png" style="margin-left: 20px;"> |
| </div> |
| |
| <p> |
| Android 사용자는 고품질 앱을 기대합니다. 앱 품질은 설치, 사용자 평점 및 리뷰, 사용자 확보 및 유지 측면에서 앱의 장기간 성공에 직접적인 영향을 미칩니다. |
| |
| |
| </p> |
| |
| <p> |
| 이 문서는 핵심 앱 품질 기준 및 연관된 테스트의 간결한 집합을 통해 기본적인 앱 품질을 평가하는 데 도움이 됩니다. |
| 모든 Android 앱은 이 기준을 충족해야 합니다. |
| |
| </p> |
| |
| <p> |
| 앱을 게시하기 전에 이 기준에 대한 테스트를 거쳐 다양한 장치에서 잘 작동하는지, Android 탐색 및 디자인 표준을 충족하는지 확인하고, Google Play 스토어에서 홍보 기회를 잡으십시오. |
| |
| |
| 테스트는 여기에서 설명한 기준을 충족할 것입니다. 이 문서의 목적은 모든 앱이 표시해야 하는 필수 품질 특성을 지정하는 것이므로 테스트 계획에 필수 품질 특성을 포함할 수 있습니다. |
| |
| |
| </p> |
| |
| <p> |
| 태블릿 앱 및/또는 교육용 Google Play 앱을 만드는 경우 고려해야 하는 추가 품질 기준이 있는데, 해당 기준은 <a href="{@docRoot}distribute/essentials/quality/tablets.html">태블릿 앱 품질</a> 가이드라인 및 <a href="{@docRoot}distribute/essentials/gpfe-guidelines.html">교육 가이드라인</a>에 정의되어 있습니다. |
| |
| |
| |
| |
| </p> |
| |
| <div class="headerLine"> |
| <h2 id="ux"> |
| 시각적 디자인 및 사용자 상호작용 |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| 이 기준은 앱이 일관되고 직관적인 사용자 경험을 위해 필요한 경우 표준 Android 시각적 디자인 및 상호작용 패턴을 제공하도록 보장합니다. |
| |
| |
| </p> |
| |
| <table> |
| <tr> |
| <th style="width:2px;"> |
| 영역 |
| </th> |
| <th style="width:54px;"> |
| ID |
| </th> |
| |
| |
| <th> |
| 설명 |
| </th> |
| <th style="width:54px;"> |
| 테스트 |
| </th> |
| </tr> |
| <tr id="UX-B1"> |
| <td>표준 디자인</td> |
| <td> |
| UX-B1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱이 <a href="{@docRoot}design/index.html">Android 디자인</a> 가이드라인을 따르고 공통 <a href="{@docRoot}design/patterns/index.html">UI 패턴 및 아이콘</a>을 사용합니다. |
| |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>앱이 시스템 아이콘의 예상되는 기능(예: 뒤로 버튼)을 재정의하지 않습니다. |
| |
| </li> |
| |
| <li>앱이 표준 UI 동작을 트리거하는 경우 시스템 아이콘을 완전히 다른 아이콘으로 대체하지 않습니다. |
| |
| </li> |
| |
| <li>앱이 표준 시스템 아이콘의 사용자 지정 버전을 제공하는 경우 해당 아이콘은 시스템 아이콘과 매우 유사하고 표준 시스템 동작을 트리거합니다. |
| |
| |
| </li> |
| |
| <li>앱이 아이콘이나 동작이 사용자를 잘못 안내하거나 혼란스럽게 하지 않도록 Android UI 패턴을 재정의하거나 오용하지 않습니다. |
| |
| </li> |
| </ol> |
| </td> |
| <td> |
| <a href="#core">CR-all</a> |
| </td> |
| </tr> |
| |
| <tr> |
| <td rowspan="3"> |
| 탐색 |
| </td> |
| <td id="UX-N1"> |
| UX-N1 |
| </td> |
| <td> |
| <p> |
| 앱이 표준 시스템 <a href="{@docRoot}design/patterns/navigation.html">뒤로 버튼 탐색</a>을 지원하고 화면에 표시되는 사용자 지정 "뒤로 버튼" 프롬프트를 사용하지 않습니다. |
| |
| </p> |
| </td> |
| <td> |
| <a href="#core">CR-3</a> |
| </td> |
| </tr> |
| |
| <tr> |
| <td id="UX-N2"> |
| UX-N2 |
| </td> |
| <td> |
| <p> |
| 뒤로 버튼을 사용하여 모든 대화 상자를 취소할 수 있습니다. |
| </p> |
| </td> |
| <td> |
| <a href="#core">CR-3</a> |
| </td> |
| </tr> |
| |
| <tr id="UX-N3"> |
| <td> |
| UX-N3 |
| </td> |
| <td> |
| 어디서든지 홈 버튼을 누르면 장치의 홈 화면으로 이동합니다. |
| |
| </td> |
| <td> |
| <a href="#core">CR-1</a> |
| </td> |
| </tr> |
| |
| <tr id="UX-S1"> |
| <td rowspan="2"> |
| 알림 |
| </td> |
| <td> |
| UX-S1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 알림은 Android 디자인 <a href="{@docRoot}design/patterns/notifications.html">가이드라인</a>을 따릅니다. 특히 |
| |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>다중 알림은 단일 알림 개체로 누적됩니다(가능한 경우). |
| |
| </li> |
| |
| <li>알림은 진행 중인 이벤트(예: 음악 재생 또는 통화)와 관련된 경우에만 지속됩니다. |
| |
| </li> |
| |
| <li>알림은 사용자가 명시적으로 동의한 경우를 제외하고 앱의 핵심 기능과 관련되지 않은 광고를 포함하지 않습니다. |
| |
| </li> |
| </ol> |
| </td> |
| <td> |
| <a href="#core">CR-11</a> |
| </td> |
| </tr> |
| |
| <tr id="UX-S2"> |
| <td> |
| UX-S2 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱은 다음과 같은 경우에만 알림을 사용합니다. |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>개인적으로 사용자와 관련된 컨텍스트 변경(예: 수신 메시지)을 나타냅니다. |
| |
| </li> |
| |
| <li>진행 중인 이벤트(예: 음악 재생 또는 통화)와 관련된 정보/컨트롤을 표시합니다. |
| |
| </li> |
| </ol> |
| </td> |
| <td> |
| <a href="#core">CR-11</a> |
| </td> |
| </tr> |
| </table> |
| |
| <h3 class="rel-resources clearfloat">관련 자료</h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/essentials/corequalityguidelines/visualdesign" |
| data-sortorder="-timestamp" data-cardsizes="9x3,9x3,6x3,6x3,6x3" |
| data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine"> |
| <h2 id="fn"> |
| 기능 |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| 이 기준은 앱이 적절한 권한 수준과 함께 예상되는 기능 동작을 제공하도록 보장합니다. |
| |
| </p> |
| |
| <table> |
| <tr> |
| <th style="width:2px;"> |
| 영역 |
| </th> |
| <th style="width:54px;"> |
| ID |
| </th> |
| <th> |
| 설명 |
| </th> |
| <th style="width:54px;"> |
| 테스트 |
| </th> |
| </tr> |
| |
| <tr id="FN-P1"> |
| <td rowspan="2"> |
| 권한 |
| </td> |
| <td> |
| FN-P1 |
| </td> |
| <td> |
| 앱이 핵심 기능을 지원하는 데 필요한 <em>절대 최소</em> 권한만 요청합니다. |
| |
| </td> |
| <td rowspan="2"> |
| <a href="#core">CR-11</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-P2"> |
| <td> |
| FN-P2 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱이 핵심 기능과 관련되지 않은 경우 사용자가 비용을 지불할 수 있는 서비스(예: 전화 걸기 또는 SMS) 또는 민감한 데이터(예: 연락처 또는 시스템 로그)에 대한 액세스 권한을 요청하지 않습니다. |
| |
| |
| |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="FN-L1"> |
| <td> |
| 설치 위치 |
| </td> |
| <td> |
| FN-L1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱이 SD 카드에 설치된 경우 정상적으로 작동합니다(앱에서 지원하는 경우). |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| SD 카드에 설치 지원은 대부분의 대형 앱(10MB 이상)에서 권장됩니다. |
| SD 카드에 설치를 지원해야 하는 앱 유형에 대한 자세한 내용은 <a href="{@docRoot}guide/topics/data/install-location.html">앱 설치 위치</a> 개발자 가이드를 참조하십시오. |
| |
| |
| </p> |
| </td> |
| <td> |
| <a href="#SD-1">SD-1</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-A1"> |
| <td rowspan="4"> |
| 오디오 |
| </td> |
| <td> |
| FN-A1 |
| </td> |
| <td> |
| 핵심 기능이 아닌 경우 화면이 꺼지면 오디오가 재생되지 않습니다(예: 앱이 뮤직 플레이어인 경우). |
| |
| </td> |
| <td> |
| <a href="#core">CR-7</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-A2"> |
| <td> |
| FN-A2 |
| </td> |
| <td> |
| 핵심 기능이 아닌 경우 오디오가 <a href="http://android-developers.blogspot.com/2011/11/making-android-games-that-play-nice.html">화면 잠금 상태에서 재생</a>되지 않습니다. |
| |
| </td> |
| <td> |
| <a href="#core">CR-8</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-A3"> |
| <td> |
| FN-A3 |
| </td> |
| <td> |
| 핵심 기능이 아닌 경우 오디오가 홈 화면이나 다른 앱에서 재생되지 않습니다. |
| |
| </td> |
| <td> |
| <a href="#core">CR-1,<br> |
| CR-2</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-A4"> |
| <td> |
| FN-A4 |
| </td> |
| <td> |
| 앱이 포그라운드로 돌아오면 오디오가 다시 시작되거나 사용자에게 재생이 일시 중지된 상태임을 알립니다. |
| |
| </td> |
| <td> |
| <a href="#core">CR-1, CR-8</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-U1"> |
| <td rowspan="3"> |
| UI 및 그래픽 |
| </td> |
| <td> |
| FN-U1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱이 가로 방향과 세로 방향을 모두 지원합니다(가능한 경우). |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| 방향은 동일한 기능과 동작을 대부분 표시하고 기능 패리티를 보존합니다. |
| 콘텐츠 또는 보기의 사소한 변경은 허용됩니다. |
| </p> |
| </td> |
| <td> |
| <a href="#core">CR-5</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-U2"> |
| <td> |
| FN-U2 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱이 양쪽 방향에서 전체 화면을 사용하고, 방향 변경을 설명하기 위해 레터박스는 허용하지 않습니다. |
| |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| 화면상의 기하학적 형태의 미세한 변화를 보정하기 위한 사소한 레터박스는 허용됩니다. |
| |
| </p> |
| </td> |
| <td> |
| <a href="#core">CR-5</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-U3"> |
| <td> |
| FN-U3 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱이 렌더링 문제 없이 표시 방향 전환을 신속하고 정확하게 처리합니다. |
| |
| </p> |
| </td> |
| <td> |
| <a href="#core">CR-5</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-S1"> |
| <td rowspan="2"> |
| 사용자/앱 상태 |
| </td> |
| <td> |
| FN-S1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱의 핵심 기능과 관련되지 않은 경우 앱이 백그라운드 상태에서 서비스를 실행해서는 안 됩니다. |
| |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| 예를 들어, 앱이 알림을 위해 네트워크 연결을 유지하거나 Bluetooth 연결을 유지하거나 GPS를 켜진 상태로 유지하는 서비스를 실행해서는 안 됩니다. |
| |
| |
| </p> |
| </td> |
| <td> |
| <a href="#core">CR-6</a> |
| </td> |
| </tr> |
| |
| <tr id="FN-S2"> |
| <td> |
| FN-S2 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱이 사용자 또는 앱 상태를 정확히 보존하고 복원합니다. |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| 앱이 포그라운드를 떠날 때 사용자 또는 앱 상태를 보존하고 뒤로 탐색 및 기타 상태 변경으로 인해 실수로 데이터를 손실하는 것을 방지합니다. |
| |
| 앱이 포그라운드로 돌아올 때 앱 또는 게임의 편집 가능한 필드, 게임 진행률, 메뉴, 동영상, 기타 섹션의 변경 내용 등 보류 중인 중요한 상태 저장 트랜잭션과 보존된 상태를 복원해야 합니다. |
| |
| |
| |
| </p> |
| |
| <ol style="margin-bottom:.25em;list-style-type:lower-alpha"> |
| <li>앱이 Recents 앱 전환기에서 다시 시작한 경우 마지막으로 사용된 정확한 상태로 돌아갑니다. |
| |
| </li> |
| |
| <li>장치가 절전(잠금) 상태에서 해제된 후에 앱이 다시 시작하는 경우 앱이 마지막으로 사용된 정확한 상태로 돌아갑니다. |
| |
| |
| </li> |
| |
| <li>앱이 홈 또는 모든 앱에서 다시 시작하는 경우 이전 상태에 최대한 가깝게 앱 상태를 복원합니다. |
| |
| </li> |
| |
| <li>뒤로 키를 누를 때 앱이 뒤로 탐색에서 손실할 수도 있는 앱 또는 사용자 상태를 저장하는 옵션을 제공합니다. |
| |
| </li> |
| </ol> |
| </td> |
| <td> |
| <a href="#core">CR-1, CR-3, CR-5</a> |
| </td> |
| </tr> |
| </table> |
| |
| <h3 class="rel-resources clearfloat">관련 자료</h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/essentials/corequalityguidelines/functionality" |
| data-sortorder="-timestamp" data-cardsizes="6x3" data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine"> |
| <h2 id="ps"> |
| 성능 및 안정성 |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| 이 기준은 앱이 사용자가 기대하는 성능, 안정성 및 응답성을 제공하도록 보장합니다. |
| |
| </p> |
| |
| <table> |
| <tr> |
| <th style="width:2px;"> |
| 영역 |
| </th> |
| <th style="width:54px;"> |
| ID |
| </th> |
| <th> |
| 설명 |
| </th> |
| <th style="width:54px;"> |
| 테스트 |
| </th> |
| </tr> |
| |
| <tr id="PS-S1"> |
| <td> |
| 안정성 |
| </td> |
| <td> |
| PS-S1 |
| </td> |
| <td> |
| 앱이 대상 장치에서 작동 중단하거나 강제로 닫히거나 멈추거나 비정상적으로 작동하지 않습니다. |
| |
| </td> |
| <td> |
| <a href="#core">CR-all</a>, <a href="#SD-1">SD-1</a>, <a href="#HA-1">HA-1</a> |
| </td> |
| </tr> |
| |
| <tr id="PS-P1"> |
| <td rowspan="2"> |
| 성능 |
| </td> |
| <td> |
| PS-P1 |
| </td> |
| <td> |
| 앱이 빨리 로드되거나, 로드하는 데 3초 이상 걸리는 경우 화면에 피드백을 표시합니다(진행률 표시기 또는 유사 기능). |
| |
| |
| </td> |
| <td> |
| <a href="#core">CR-all</a>, <a href="#SD-1">SD-1</a> |
| </td> |
| </tr> |
| |
| <tr id="PS-P2"> |
| <td> |
| PS-P2 |
| </td> |
| <td> |
| StrictMode가 활성화된 상태에서(아래 <a href="#strictmode">StrictMode 테스트</a> 참조) 앱의 게임 실행, 애니메이션 및 UI 전환, 기타 부분 실행 등 앱을 실행할 때 빨간색 깜박임(StrictMode의 성능 경고)이 표시되지 않습니다. |
| |
| |
| |
| </td> |
| <td> |
| <a href="#PM-1">PM-1</a> |
| </td> |
| </tr> |
| |
| <tr id="PS-M1"> |
| <td> |
| 미디어 |
| </td> |
| <td> |
| PS-M1 |
| </td> |
| <td> |
| 정상적인 앱 사용 및 로드 시 음악 및 동영상 재생이 매끄럽고 잔금, 버벅거림 또는 기타 아티팩트가 없습니다. |
| |
| </td> |
| <td> |
| <a href="#core">CR-all</a>, <a href="#SD-1">SD-1</a>, <a href="#HA-1">HA-1</a> |
| </td> |
| </tr> |
| |
| <tr id="PS-V1"> |
| <td rowspan="2"> |
| 시각적 품질 |
| </td> |
| <td> |
| PS-V1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱이 현저한 왜곡, 흐림 또는 모자이크 현상 없이 그래픽, 텍스트 및 기타 UI 요소를 표시합니다. |
| |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>앱이 <a href="{@docRoot}distribute/essentials/quality/tablet.html">태블릿과 같은 대형 화면 장치</a>를 포함한 다양한 장치의 모든 대상 화면 크기 및 폼 팩터에 고품질 그래픽을 제공합니다. |
| |
| |
| </li> |
| |
| <li>메뉴, 버튼 및 기타 UI 요소의 가장자리에 앨리어싱이 표시되지 않습니다. |
| |
| </li> |
| </ol> |
| </td> |
| <td rowspan="2"> |
| <a href="#core">CR-all</a> |
| </td> |
| </tr> |
| |
| <tr id="PS-V2"> |
| <td> |
| PS-V2 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱이 허용되는 방식으로 텍스트 및 텍스트 블록을 표시합니다. |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>태블릿과 같은 대형 화면 장치를 포함한 다양한 장치의 모든 지원되는 폼 팩터에서 컴퍼지션이 허용됩니다. |
| |
| </li> |
| |
| <li>잘린 문자나 단어가 표시되지 않습니다. |
| </li> |
| |
| <li>버튼 또는 아이콘 내에서 부적합한 자동 줄바꿈이 표시되지 않습니다. |
| </li> |
| |
| <li>텍스트와 주변 요소 사이에 충분한 간격이 있습니다. |
| </li> |
| </ol> |
| </td> |
| </tr> |
| </table> |
| |
| <h3 class="rel-resources clearfloat">관련 자료</h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/essentials/core/performance" data-sortorder="-timestamp" |
| data-cardsizes="6x3" data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine"> |
| <h2 id="listing"> |
| Google Play |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| 이 기준은 앱을 Google Play에 게시할 수 있도록 보장합니다. |
| </p> |
| |
| <table> |
| <tr> |
| <th style="width:2px;"> |
| 영역 |
| </th> |
| <th style="width:54px;"> |
| ID |
| </th> |
| <th> |
| 설명 |
| </th> |
| <th style="width:54px;"> |
| 테스트 |
| </th> |
| </tr> |
| |
| <tr id="GP-P1"> |
| <td rowspan="2"> |
| 정책 |
| </td> |
| <td> |
| GP-P1 |
| </td> |
| <td> |
| 앱이 <a href="http://play.google.com/about/developer-content-policy.html">Google Play 개발자 콘텐츠 정책</a>의 약관을 철저히 준수하고, 부적절한 콘텐츠를 제공하지 않고 다른 사람의 지적 재산권이나 브랜드 등을 사용하지 않습니다. |
| |
| |
| </td> |
| <td> |
| <a href="#gp">GP-all</a> |
| </td> |
| </tr> |
| |
| <tr id="GP-P2"> |
| <td> |
| GP-P2 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱 완성도가 <a href="http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=188189">콘텐츠 등급 가이드라인</a>에 따라 적절히 설정되었습니다. |
| |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| 특히, 장치 위치 사용 권한을 요청하는 앱은 "전체 이용가" 완성도를 부여받을 수 없습니다. |
| |
| </p> |
| </td> |
| <td> |
| <a href="#gp">GP-1</a> |
| </td> |
| </tr> |
| |
| <tr id="GP-D1"> |
| <td rowspan="3"> |
| 앱 세부정보 페이지 |
| </td> |
| <td> |
| GP-D1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱 대표 그래픽은 이 <a href="http://android-developers.blogspot.com/2011/10/android-market-featured-image.html">블로그 게시물</a>에 나오는 가이드라인을 따릅니다. |
| 다음을 확인하십시오. |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>앱 목록에 고품질 대표 그래픽을 포함합니다. |
| </li> |
| |
| <li>앱이 대상으로 하는 가장 작은 화면에서 배율을 축소하여 표시할 때 대표 그래픽에 식별할 수 없는 장치 이미지, 스크린샷 또는 작은 텍스트를 포함하지 않습니다. |
| |
| |
| </li> |
| |
| <li>대표 그래픽은 광고와 비슷하지 않습니다. |
| </li> |
| </ol> |
| </td> |
| <td> |
| <a href="#gp">GP-1, GP-2</a> |
| </td> |
| </tr> |
| |
| <tr id="GP-D2"> |
| <td> |
| GP-D2 |
| </td> |
| <td> |
| 앱 스크린샷 및 동영상이 비 Android 장치를 표시하거나 참조하지 않습니다. |
| </td> |
| <td rowspan="2"> |
| <a href="#gp">GP-1</a> |
| </td> |
| </tr> |
| |
| <tr id="GP-D3"> |
| <td> |
| GP-D3 |
| </td> |
| <td> |
| 앱 스크린샷 또는 동영상이 앱의 콘텐츠와 경험을 잘못된 방식으로 나타내지 않습니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="GP-X1"> |
| <td> |
| 사용자 지원 |
| </td> |
| <td> |
| GP-X1 |
| </td> |
| <td> |
| Google Play 페이지의 리뷰 탭에서 일반 사용자가 보고하는 버그는 재현될 수 있고 많은 다른 장치에서 발생하는 경우 처리됩니다. |
| |
| 몇몇 장치에서만 버그가 발생하는 경우라도 해당 장치가 매우 인기 있거나 신기종인 경우 처리해야 합니다. |
| |
| </td> |
| <td> |
| <a href="#gp">GP-1</a> |
| </td> |
| </tr> |
| </table> |
| |
| <h3 class="rel-resources clearfloat">관련 자료</h3> |
| |
| <div class="resource-widget resource-flow-layout col-13" data-query= |
| "collection:distribute/essentials/core/play" data-sortorder="-timestamp" |
| data-cardsizes="6x3,6x3,6x3,6x3,6x3,6x3" data-maxresults="6"> |
| </div> |
| |
| <div class="headerLine"> |
| <h2 id="test-environment"> |
| 테스트 환경 설정 |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| 앱의 품질을 평가하려면 테스트용으로 적합한 하드웨어 또는 에뮬레이터 환경을 설정해야 합니다. |
| |
| </p> |
| |
| <p> |
| 이상적인 테스트 환경은 현재 소비자에게 제공되는 핵심 폼 팩터와 하드웨어/소프트웨어 조합을 나타내는 소수의 실제 하드웨어 장치를 포함합니다. |
| |
| 시장에 출시된 <em>모든</em> 장치에서 테스트할 필요는 없습니다. 오히려 폼 팩터당 한두 대의 장치를 사용하더라도 소수의 대표 장치에 초점을 맞춰야 합니다. |
| |
| |
| |
| </p> |
| |
| <p> |
| 테스트용 실제 하드웨어 장치를 구할 수 없는 경우 가장 일반적인 폼 팩터와 하드웨어/소프트웨어 조합을 나타내는 <a href="{@docRoot}tools/devices/index.html">에뮬레이트된 장치(AVD)를 설치</a>해야 합니다. |
| |
| |
| |
| </p> |
| |
| <p> |
| 기본 테스트 이상을 수행하려면 장치, 폼 팩터 또는 새 하드웨어/소프트웨어 조합을 테스트 환경에 추가하면 됩니다. |
| 테스트 수량이나 복잡성 및 품질 기준을 높일 수도 있습니다. |
| |
| </p> |
| |
| <div class="headerLine"> |
| <h2 id="tests"> |
| 테스트 절차 |
| </h2> |
| |
| |
| </div> |
| |
| <p> |
| 이 테스트 절차를 통해 앱에서 다양한 품질 문제 유형을 찾아낼 수 있습니다. 테스트를 조합하거나 테스트 그룹을 본인의 테스트 계획에 통합할 수 있습니다. |
| |
| 특정 기준과 특정 테스트의 연관성은 위의 절을 참조하십시오. |
| |
| </p> |
| |
| <table> |
| <tr> |
| <th style="width:2px;"> |
| 유형 |
| </th> |
| <th style="width:54px;"> |
| 테스트 |
| </th> |
| <th> |
| 설명 |
| </th> |
| </tr> |
| |
| <tr> |
| <td rowspan="12" id="core"> |
| 핵심 테스트 도구 모음 |
| </td> |
| <td> |
| CR-0 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 앱의 모든 부분(모든 화면, 대화 상자, 설정 및 모든 사용자 흐름)을 탐색합니다. |
| |
| </p> |
| |
| <ol style="margin-bottom:.5em;list-style-type:lower-alpha"> |
| <li>애플리케이션이 편집, 콘텐츠 만들기, 게임 실행 또는 미디어 재생을 허용하면 해당 흐름으로 진입하여 콘텐츠를 만들거나 수정합니다. |
| |
| |
| </li> |
| |
| <li>앱을 실행하는 동안 네트워크 연결, 배터리 기능, GPS 또는 위치 사용 가능성, 시스템 로드 등의 일시적인 변경 내용을 소개합니다. |
| |
| |
| </li> |
| </ol> |
| </td> |
| </tr> |
| |
| <tr id="tg2"> |
| <td id="core2"> |
| CR-1 |
| </td> |
| <td> |
| 각 앱 화면에서 장치의 홈 키를 누른 다음 모든 앱 화면에서 앱을 다시 시작합니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="CR-2"> |
| <td> |
| CR-2 |
| </td> |
| <td> |
| 각 앱 화면에서 실행 중인 다른 앱으로 전환한 다음 Recents 앱 전환기를 사용하여 테스트 중인 앱으로 돌아갑니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="CR-3"> |
| <td> |
| CR-3 |
| </td> |
| <td> |
| 각 앱 화면(및 대화 상자)에서 뒤로 버튼을 누릅니다. |
| </td> |
| </tr> |
| |
| <tr id="CR-5"> |
| <td> |
| CR-5 |
| </td> |
| <td> |
| 각 앱 화면에서 가로 방향과 세로 방향이 바뀌도록 장치를 세 번 이상 회전합니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="CR-6"> |
| <td> |
| CR-6 |
| </td> |
| <td> |
| 다른 앱으로 전환하여 테스트 앱을 백그라운드로 보냅니다. 설정으로 이동하여 테스트 앱에 백그라운드로 실행 중인 서비스가 있는지 확인합니다. |
| |
| Android 4.0 이상에서는 앱 화면으로 이동하여 "실행 중" 탭에서 앱을 찾습니다. |
| 이전 버전에서는 "애플리케이션 관리"를 사용하여 실행 중인 서비스가 있는지 확인합니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="CR-7"> |
| <td> |
| CR-7 |
| </td> |
| <td> |
| 전원 버튼을 눌러 장치를 절전 상태로 전환한 다음 전원 버튼을 다시 눌러 화면을 활성화합니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="CR-8"> |
| <td> |
| CR-8 |
| </td> |
| <td> |
| 전원 버튼을 누르면 장치를 잠금 설정합니다. 전원 버튼을 눌러 장치를 절전 상태로 전환한 다음 전원 버튼을 다시 눌러 화면을 활성화하고 장치의 잠금을 해제합니다. |
| |
| |
| </td> |
| </tr> |
| |
| <tr id="CR-9"> |
| <!-- Hardware features --> |
| |
| <td> |
| CR-9 |
| </td> |
| <td> |
| 장치에 슬라이드아웃 키보드가 있는 경우 키보드를 한 번 이상 슬라이드인 또는 슬라이드아웃합니다. |
| 장치에 키보드 도크가 있는 경우 장치를 키보드 도크에 장착합니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="CR-10"> |
| <td> |
| CR-10 |
| </td> |
| <td> |
| 장치에 외부 디스플레이 포트가 있는 경우 외부 디스플레이를 연결합니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="CR-11"> |
| <td> |
| CR-11 |
| </td> |
| <td> |
| 알림 서랍에서 앱이 표시할 수 있는 모든 유형의 알림을 트리거하고 관찰합니다. |
| 적용 가능한 경우 알림을 확장하고(Android 4.1 이상) 제공된 모든 작업을 누릅니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="CR-12"> |
| <td> |
| CR-12 |
| </td> |
| <td> |
| 설정 > 앱 정보로 이동하여 앱이 요청한 권한을 검사합니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="tg3"> |
| <td> |
| SD 카드에 설치 |
| </td> |
| <td> |
| SD-1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| <a href="{@docRoot}guide/topics/data/install-location.html">장치 SD 카드</a>에 앱이 설치된 상태에서 <em>핵심 테스트 도구 모음</em>을 반복합니다(앱에서 지원하는 경우). |
| |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| 앱을 SD 카드로 이동하려면 설정 > 앱 정보 > SD 카드로 이동을 사용하면 됩니다. |
| |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="tg32"> |
| <td> |
| 하드웨어 가속 |
| </td> |
| <td> |
| HA-1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| 하드웨어 가속이 활성화된 상태에서 <em>핵심 테스트 도구 모음</em>을 반복합니다. |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| 하드웨어 가속을 강제로 활성화하려면(장치에서 지원하는 경우) <code>hardware-accelerated="true"</code>를 앱 매니페스트의 <code><application></code>에 추가하고 다시 컴파일합니다. |
| |
| |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="tg33"> |
| <td> |
| 성능 모니터링 |
| </td> |
| <td> |
| PM-1 |
| </td> |
| <td> |
| <p style="margin-bottom:.5em;"> |
| <a href="#strictmode">아래 설명처럼</a> StrictMode 프로파일링이 활성화된 상태에서 <em>핵심 테스트 도구 모음</em>을 반복합니다. |
| </p> |
| |
| <p style="margin-bottom:.25em;"> |
| 가비지 수집 및 사용자 경험에 미치는 영향에 세심한 주의를 기울이십시오. |
| |
| </p> |
| </td> |
| </tr> |
| |
| <tr id="gp"> |
| <td rowspan="3"> |
| Google Play |
| </td> |
| <td> |
| GP-1 |
| </td> |
| <td> |
| <a href="https://play.google.com/apps/publish/">개발자 콘솔</a>에 로그인하여 개발자 프로필, 앱 설명, 스크린샷, 대표 그래픽, 완성도 설정 및 사용자 피드백을 검토합니다. |
| |
| |
| </td> |
| </tr> |
| |
| <tr id="GP-2"> |
| <td> |
| GP-2 |
| </td> |
| <td> |
| 대표 그래픽과 스크린샷을 다운로드하고 대상으로 하는 장치 및 폼 팩터의 디스플레이 크기에 맞게 배율을 축소합니다. |
| |
| |
| </td> |
| </tr> |
| |
| <tr id="GP-3"> |
| <td> |
| GP-3 |
| </td> |
| <td> |
| 앱 또는 확장 파일 다운로드에 패키지로 포함된 모든 그래픽 자산, 미디어, 텍스트, 코드 라이브러리 및 기타 콘텐츠를 검토합니다. |
| |
| </td> |
| </tr> |
| |
| <tr id="GP-4"> |
| <td> |
| 결제 |
| </td> |
| <td> |
| GP-4 |
| </td> |
| <td> |
| 앱의 모든 화면을 탐색하고 모든 인앱 구매 흐름으로 진입합니다. |
| </td> |
| </tr> |
| </table> |
| |
| <h3 id="strictmode"> |
| StrictMode로 테스트 |
| </h3> |
| |
| <p> |
| 성능을 테스트하려면 앱에서 {@link android.os.StrictMode}를 활성화하고 이를 사용하여 성능, 네트워크 액세스, 파일 읽기/쓰기 등에 영향을 줄 수 있는 기본 스레드 및 기타 스레드에서 작업을 캐치하는 것이 좋습니다. |
| |
| |
| |
| </p> |
| |
| <p> |
| {@link |
| android.os.StrictMode.ThreadPolicy.Builder}를 사용하여 스레드별 모니터링 정책을 수립하고 {@link |
| android.os.StrictMode.ThreadPolicy.Builder#detectAll()}을 사용하여 <code>ThreadPolicy</code>에서 지원되는 모든 모니터링을 활성화할 수 있습니다. |
| |
| </p> |
| |
| <p> |
| {@link |
| android.os.StrictMode.ThreadPolicy.Builder#penaltyFlashScreen() |
| penaltyFlashScreen()}을 사용하여 <code>ThreadPolicy</code> 정책 위반의 <strong>시각적 알림</strong>을 활성화하십시오. |
| |
| </p> |