1page.title=API-интерфейсы ICU4J в платформе Android 2page.tags=androidn 3page.image=images/cards/card-nyc_2x.jpg 4 5@jd:body 6 7<div id="qv-wrapper"> 8<div id="qv"> 9<h2>Содержание документа:</h2> 10<ol> 11 <li><a href="#relation">Связь с ICU4J</a></li> 12 <li><a href="#migration">Переход на API-интерфейсы android.icu с ICU4J</a></li> 13 <li><a href="#licence">Лицензирование</a></li> 14</ol> 15 16<h2>См. также:</h2> 17<ol> 18 <li> 19 <a class="external-link" href="http://userguide.icu-project.org">Документация по ICU4J</a> 20 </li> 21 22 <li> 23 <a class="external-link" href="http://site.icu-project.org/#TOC-What-is-ICU-">Последние стандарты, поддерживаемые 24ICU4J</a> 25 </li> 26</ol> 27</div> 28</div> 29 30<p> 31 ICU4J — широко используемый набор библиотек Java с открытым кодом, обеспечивающий для приложений поддержку формата Unicode 32и глобализации. Android N 33открывает в платформе Android частичный набор API-интерфейсов ICU4J, который разработчики приложений 34могут использовать в составе пакета {@code android.icu}. Эти API используют 35данные локализации, присутствующие на устройстве. Это позволяет уменьшить размеры APK 36, не компилируя библиотеки ICU4J в APK, а 37просто вызывая их в платформе. (В этом случае может оказаться удобно предоставлять 38<a href="{@docRoot}google/play/publishing/multiple-apks.html">несколько версий 39вашего APK</a>, чтобы пользователи с версиями Android ниже Android N 40могли загружать версию приложения, содержащую библиотеки ICU4J.) 41</p> 42 43<p> 44 В начале этого документа предоставляется базовая информация по минимальным уровням 45Android API, которые требуются для поддержки этих библиотек. Далее приводятся необходимые пояснения 46о реализации ICU4J в Android. В заключение 47в нем рассказывается, как использовать API-интерфейсы ICU4J в платформе Android. 48</p> 49 50<h2 id="relation">Связь с ICU4J</h2> 51 52<p> 53 В Android N частичный набор API-интерфейсов ICU4J открывается через пакет 54 <code>android.icu</code>, а не через <code>com.ibm.icu</code>. Для платформы 55Android может быть принято решение не 56открывать API-интерфейсы ICU4J по различным причинам. Например, Android N не открывает 57некоторые устаревшие API-интерфейсы, а также те, которые рабочая группа ICU еще не объявила 58стабильными. По мере того, как рабочая группа ICU будет объявлять API-интерфейсы устаревшими, они будут так же помечаться и в Android, 59но при этом будут и дальше входить в состав платформы. 60</p> 61 62<p class="table-caption"><strong>Таблица 1.</strong> Версии ICU и CLDR, используемые 63в Android N.</p> 64<table> 65<tr> 66<th>Уровень Android API</th> 67<th>Версия ICU</th> 68<th>Версия CLDR</th> 69</tr> 70<tr> 71<td>Android N</td> 72<td>56</td> 73<td>28</td> 74</tr> 75</table> 76 77<p>Следует отметить несколько важных моментов:</p> 78 79<ul> 80<li>В состав API-интерфейсов ICU4J платформы Android входят не все API-интерфейсы ICU4J.</li> 81<li>Разработчикам NDK следует помнить, что Android ICU4C не поддерживается.</li> 82<li>API-интерфейсы в платформе Android не заменяют поддержку 83<a href="{@docRoot}guide/topics/resources/localization.html">локализации с 84ресурсами</a> в Android.</li> 85</ul> 86 87<h2 id="migration">Переход на пакет android.icu с com.ibm.icu</h2> 88 89<p> 90 Если вы уже используете в своем приложении API-интерфейсы ICU4J, и если API 91 <code>android.icu</code> соответствуют вашим требованиям, то для перехода на 92API-интерфейсы платформы вам нужно будет изменить импорт Java 93с <code>com.ibm.icu</code> на <code>android.icu</code>. После этого вы сможете 94удалить свои копии файлов ICU4J из APK. 95</p> 96 97<p class="note"> 98 <b>Примечание</b>. API-интерфейсы ICU4J в платформе используют пространство имен {@code android.icu} 99вместо {@code com.ibm.icu}. Это позволяет избежать конфликтов пространств имен 100в пакетах APK, содержащих собственные библиотеки {@code com.ibm.icu}. 101</p> 102 103<h3 id="migrate-from-android"> 104 Переход на API-интерфейсы android.icu с других API Android SDK 105</h3> 106 107<p> 108 Некоторые классы в пакетах <code>java</code> и <code>android</code> имеют 109эквиваленты в ICU4J. Однако ICU4J обычно обеспечивает более широкую 110поддержку стандартов и языков. 111</p> 112<p>Ниже приведены несколько примеров для начала работы:</p> 113<table> 114<tr> 115<th>Класс</th> 116<th>Альтернативы</th> 117</tr> 118<tr> 119<td><code>java.lang.Character</code> </td> 120<td><code>android.icu.lang.UCharacter</code> </td> 121</tr> 122<tr> 123<td><code>java.text.BreakIterator</code> </td> 124<td><code>android.icu.text.BreakIterator</code> </td> 125</tr> 126<tr> 127<td><code>java.text.DecimalFormat</code> </td> 128<td><code>android.icu.text.DecimalFormat</code> </td> 129</tr> 130<tr> 131<td><code>java.util.Calendar</code></td> 132<td> 133<code>android.icu.util.Calendar</code></td> 134</tr> 135<tr> 136<td><code>android.text.BidiFormatter</code> 137 </td> 138<td><code>android.icu.text.Bidi</code> 139 </td> 140</tr> 141<tr> 142<td><code>android.text.format.DateFormat</code> 143 </td> 144<td><code>android.icu.text.DateFormat</code> 145 </td> 146</tr> 147<tr> 148<td><code>android.text.format.DateUtils</code> </td> 149<td><code>android.icu.text.DateFormat</code> 150<code>android.icu.text.RelativeDateTimeFormatter</code> 151</td> 152</tr> 153</table> 154 155<h2 id="licence">Лицензирование</h2> 156 157<p> 158 ICU4J выпускается по лицензии ICU. Более подробную информацию можно найти в <a class="external-link" href="http://userguide.icu-project.org/icufaq#TOC-How-is-the-ICU-licensed-">Руководстве пользователя 159ICU.</a> 160</p> 161