1page.title=리소스 개요 2@jd:body 3 4<div id="qv-wrapper"> 5<div id="qv"> 6 <h2>주제</h2> 7 <ol> 8 <li><a href="providing-resources.html">리소스 제공</a></li> 9 <li><a href="accessing-resources.html">리소스 액세스</a></li> 10 <li><a href="runtime-changes.html">런타임 변경 처리</a></li> 11 <li><a href="localization.html">지역화</a></li> 12 </ol> 13 14 <h2>참조</h2> 15 <ol> 16 <li><a href="available-resources.html">리소스 유형</a></li> 17 </ol> 18</div> 19</div> 20 21 22<p>이미지나 문자열 같은 리소스는 항상 애플리케이션 코드에서 23외부화하여 독립적으로 유지해야 합니다. 리소스를 외부화하면 24다양한 언어나 화면 크기와 같은 특정 기기 구성을 지원하는 25대체 리소스를 제공할 수 있습니다. 이러한 기능은 Android 구동 장치를 26다양한 구성에서 이용하게 되면서 점점 더 중요해지고 있습니다. 여러 가지 구성에 27호환성을 제공하려면 프로젝트의 28{@code res/} 디렉터리 안에 리소스를 정리해야 합니다. 이때 여러 가지 하위 디렉터리를 사용하여 리소스를 유형과 구성 29기준으로 그룹화하면 좋습니다.</p> 30 31<div class="figure" style="width:429px"> 32<img src="{@docRoot}images/resources/resource_devices_diagram1.png" height="167" alt="" /> 33<p class="img-caption"> 34<strong>그림 1.</strong> 각각 기본 레이아웃을 사용하는 서로 다른 두 개의 기기입니다 35(앱에서 대체 레이아웃을 제공하지 않습니다).</p> 36</div> 37 38<div class="figure" style="width:429px"> 39<img src="{@docRoot}images/resources/resource_devices_diagram2.png" height="167" alt="" /> 40<p class="img-caption"> 41<strong>그림 2.</strong> 서로 다른 두 개의 기기로, 각각 다른 화면 크기에 맞게 제공된 서로 다른 42레이아웃을 사용하고 있습니다.</p> 43</div> 44 45<p>어떤 유형의 리소스든 애플리케이션에 맞게<em>기본값</em>과 여러 46<em>대체</em> 리소스를 지정할 수 있습니다.</p> 47<ul> 48 <li>기본 리소스는 기기 구성에 관계없이 항상 사용하거나 49기존 구성에 일치하는 대체 리소스가 없을 때 50사용합니다.</li> 51 <li>대체 리소스는 특정 구성에서 사용하기 위해 개발자가 특별히 디자인한 것을 52말합니다. 리소스 그룹을 특정 구성용으로 지정하려면, 53디렉터리 이름에 적절한 구성 한정자를 추가하십시오.</li> 54</ul> 55 56<p>예를 들어 기본 UI 레이아웃은 57{@code res/layout/} 디렉터리에 저장되어 있더라도 화면이 가로 방향일 때 사용할 58다른 레이아웃을 지정할 수도 있습니다. 이를 {@code res/layout-land/} 59디렉터리에 저장하면 됩니다. Android는 60기기의 현재 구성을 리소스 디렉터리 이름과 일치시켜서 적절한 리소스를 적용합니다.</p> 61 62<p>그림 1은 이용 가능한 대체 리소스가 없을 경우 시스템이 서로 다른 두 개의 기기에 63같은 레이아웃을 적용하는 방법을 보여줍니다. 그림 2는 64같은 애플리케이션에 큰 화면용 레이아웃 리소스를 추가한 모습을 나타낸 것입니다.</p> 65 66<p>다음 문서는 대체 리소스를 체계화하고, 67대체 리소스를 지정하고, 애플리케이션에 액세스 하는 등의 방법에 관한 완전한 지침을 제공합니다.</p> 68 69<dl> 70 <dt><strong><a href="providing-resources.html">리소스 제공</a></strong></dt> 71 <dd>앱에 포함할 수 있는 여러 가지 종류의 리소스와, 이러한 리소스를 저장하는 장소, 특정 기기 구성에 대한 72대체 리소스를 생성하는 방법입니다.</dd> 73 <dt><strong><a href="accessing-resources.html">리소스 액세스</a></strong></dt> 74 <dd>제공한 리소스를 사용하는 방법입니다. 이를 애플리케이션 코드에서 참조하거나 75다른 XML 리소스에서 참조하는 방식을 씁니다.</dd> 76 <dt><strong><a href="runtime-changes.html">런타임 변경 처리</a></strong></dt> 77 <dd>액티비티가 실행 중인 동안 발생한 구성 변경을 관리하는 방법입니다.</dd> 78 <dt><strong><a href="localization.html">지역화</a></strong></dt> 79 <dd>대체 리소스를 사용하여 애플리케이션을 지역화하는 방법에 대한 상세한 가이드입니다. 이것은 대체 80리소스를 사용하는 한 가지 방법에 불과하지만, 더 많은 사용자에게 도달하려면 매우 중요한 81방법입니다.</dd> 82 <dt><strong><a href="available-resources.html">리소스 유형</a></strong></dt> 83 <dd>개발자가 제공할 수 있는 다양한 리소스 유형의 참조로, 각각의 XML 요소, 84속성과 구문을 설명하는 것입니다. 예를 들어, 이 참조는 애플리케이션 메뉴와 드로어블 리소스, 85애니메이션에 대한 리소스를 생성하는 법을 보여줍니다.</dd> 86</dl> 87 88<!-- 89<h2>Raw Assets</h2> 90 91<p>An alternative to saving files in {@code res/} is to save files in the {@code 92assets/} directory. This should only be necessary if you need direct access to original files and 93directories by name. Files saved in the {@code assets/} directory will not be given a resource 94ID, so you can't reference them through the {@code R} class or from XML resources. Instead, you can 95query data in the {@code assets/} directory like an ordinary file system, search through the 96directory and 97read raw data using {@link android.content.res.AssetManager}. For example, this can be more useful 98when dealing with textures for a game. However, if you only need to read raw data from a file 99(such as a video or audio file), then you should save files into the {@code res/raw/} directory and 100then read a stream of bytes using {@link android.content.res.Resources#openRawResource(int)}. This 101is uncommon, but if you need direct access to original files in {@code assets/}, refer to the {@link 102android.content.res.AssetManager} documentation.</p> 103--> 104