Home | History | Annotate | Download | only in features
      1 page.title=API de ICU4J en el framework de Android
      2 page.image=images/cards/card-nyc_2x.jpg
      3 
      4 @jd:body
      5 
      6 <div id="qv-wrapper">
      7 <div id="qv">
      8 <h2>En este documento:</h2>
      9 <ol>
     10     <li><a href="#relation">Relacin con ICU4J</a></li>
     11     <li><a href="#migration">Migracin hacia API de android.icu desde ICU4J</a></li>
     12     <li><a href="#licence">Licencias</a></li>
     13 </ol>
     14 
     15 <h2>Consulta tambin</h2>
     16 <ol>
     17   <li>
     18     <a class="external-link" href="http://userguide.icu-project.org">Documentacin para ICU4J</a>
     19   </li>
     20 
     21   <li>
     22     <a class="external-link" href="http://site.icu-project.org/#TOC-What-is-ICU-">ltimos estndares compatibles
     23  con ICU4J</a>
     24   </li>
     25 </ol>
     26 </div>
     27 </div>
     28 
     29 <p>
     30   ICU4J es un conjunto de bibliotecas de Java de cdigo abierto y amplio uso que brinda soporte de Unicode
     31  y de globalizacin para aplicaciones de software. Android N
     32  expone un subconjunto de las API de ICU4J en el framework de Android para que los desarrolladores de aplicaciones
     33  lo usen debajo del paquete {@code android.icu}. Estas API usan
     34  datos de ubicacin que estn presentes en el dispositivo. Como resultado, puedes reducir la superficie de APK
     35  evitando la compilacin de las bibliotecas de ICU4J en APK. En lugar de esto, puedes
     36  llamarlas en el framework. (En este caso, posiblemente debas brindar
     37  <a href="{@docRoot}google/play/publishing/multiple-apks.html">versiones mltiples
     38  del APK</a>, de modo que los usuarios que usan versiones de Android inferiores a Android N
     39  puedan descargar una versin de la aplicacin que incluya las bibliotecas de ICU4J).
     40 </p>
     41 
     42 <p>
     43   Al principio de este documento, encontrars informacin bsica sobre el mnimo de niveles de Android API
     44  necesarios para soportar estas bibliotecas. Ms adelante, encontrars explicaciones sobre qu
     45  necesitas saber acerca de la implementacin de ICU4J especfica para Android. Por ltimo,
     46  encontrars explicaciones sobre cmo usar las API de ICU4J en el framework de Android.
     47 </p>
     48 
     49 <h2 id="relation">Relacin con ICU4J</h2>
     50 
     51 <p>
     52   Android N expone un subconjunto de las API de ICU4J mediante el
     53  paquete <code>android.icu</code>, en lugar de <code>com.ibm.icu</code>. El
     54 framework de Android puede elegir no
     55  exponer las API de ICU4J por varias razones; por ejemplo, Android N no expone
     56  algunas API obsoletas o algunas que el equipo de ICU an no ha declarado como
     57  estables. A medida que el equipo de ICU deje de usar API en el futuro, Android tambin las marcar
     58  como obsoletas, pero las seguir incluyendo.
     59 </p>
     60 
     61 <p class="table-caption"><strong>Tabla 1.</strong> Versiones de ICU y CLDR usadas
     62  en Android N.</p>
     63 <table>
     64 <tr>
     65 <th>Nivel de Android API</th>
     66 <th>Versin de ICU</th>
     67 <th>Versin de CLDR</th>
     68 </tr>
     69 <tr>
     70 <td>Android N</td>
     71 <td>56</td>
     72 <td>28</td>
     73 </tr>
     74 </table>
     75 
     76 <p>Debes tener en cuenta lo siguiente:</p>
     77 
     78 <ul>
     79 <li>Las API de ICU4J del framework de Android no incluyen todas las API de ICU4J.</li>
     80 <li>Los desarrolladores de NDK deben saber que ICU4C de Android no es compatible.</li>
     81 <li>Las API del framework de Android no reemplazan la compatibilidad de Android para
     82 <a href="{@docRoot}guide/topics/resources/localization.html">localizar con
     83 recursos</a>.</li>
     84 </ul>
     85 
     86 <h2 id="migration">Migracin hacia el paquete android.icu desde com.ibm.icu</h2>
     87 
     88 <p>
     89   Si ya ests usando las API de ICU4J en tu aplicacin y las
     90  API de <code>android.icu</code> cumplen con tus requisitos, migrar hacia las
     91  API del framework implicar que cambies tus importaciones de Java
     92  de <code>com.ibm.icu</code> a <code>android.icu</code>. Luego, puedes
     93  quitar tu propia copia de los archivos de ICU4J del APK.
     94 </p>
     95 
     96 <p class="note">
     97   <b>Nota</b>: Las API del framework de ICU4J usan el espacio de nombres {@code android.icu}
     98  en lugar de {@code com.ibm.icu}. El motivo de esto es evitar conflictos de espacio de nombres
     99  en APK que contienen sus propias bibliotecas de {@code com.ibm.icu}.
    100 </p>
    101 
    102 <h3 id="migrate-from-android">
    103   Migracin hacia API de android.icu desde otras Android SDK API
    104 </h3>
    105 
    106 <p>
    107   Algunas clases de los paquetes de <code>java</code> y de <code>android</code> son
    108  equivalentes a las clases de ICU4J. Sin embargo, ICU4J a menudo brinda una compatibilidad
    109  ms amplia para estndares e idiomas.
    110 </p>
    111 <p>Aqu tienes algunos ejemplos para comenzar:</p>
    112 <table>
    113 <tr>
    114 <th>Clase</th>
    115 <th>Alternativa</th>
    116 </tr>
    117 <tr>
    118 <td><code>java.lang.Character</code> </td>
    119 <td><code>android.icu.lang.UCharacter</code> </td>
    120 </tr>
    121 <tr>
    122 <td><code>java.text.BreakIterator</code> </td>
    123 <td><code>android.icu.text.BreakIterator</code> </td>
    124 </tr>
    125 <tr>
    126 <td><code>java.text.DecimalFormat</code> </td>
    127 <td><code>android.icu.text.DecimalFormat</code> </td>
    128 </tr>
    129 <tr>
    130 <td><code>java.util.Calendar</code></td>
    131 <td>
    132 <code>android.icu.util.Calendar</code></td>
    133 </tr>
    134 <tr>
    135 <td><code>android.text.BidiFormatter</code>
    136  </td>
    137 <td><code>android.icu.text.Bidi</code>
    138  </td>
    139 </tr>
    140 <tr>
    141 <td><code>android.text.format.DateFormat</code>
    142  </td>
    143 <td><code>android.icu.text.DateFormat</code>
    144  </td>
    145 </tr>
    146 <tr>
    147 <td><code>android.text.format.DateUtils</code> </td>
    148 <td><code>android.icu.text.DateFormat</code>
    149 <code>android.icu.text.RelativeDateTimeFormatter</code>
    150 </td>
    151 </tr>
    152 </table>
    153 
    154 <h2 id="licence">Licencias</h2>
    155 
    156 <p>
    157   ICU4J se presenta bajo la licencia de ICU. Para obtener informacin ms detallada, consulta la <a class="external-link" href="http://userguide.icu-project.org/icufaq#TOC-How-is-the-ICU-licensed-">Gua de usuario
    158  de ICU.</a>
    159 </p>
    160