| page.title=Filtros en Google Play |
| @jd:body |
| |
| <div id="qv-wrapper"> |
| <div id="qv"> |
| |
| <h2>Vista rápida</h2> |
| <ul> |
| <li>Google Play utiliza filtros para controlar qué dispositivos Android pueden descargar |
| tu aplicación de la tienda.</li> |
| <li>El filtrado garantiza que tus aplicaciones estén disponibles solo para los usuarios cuyos dispositivos cumplen los requisitos de compatibilidad de la aplicación. |
| <li>El filtrado se determina en función de los requisitos de configuración que declares en el archivo |
| de manifiesto de tu aplicación, y también en otros factores.</li> |
| </ul> |
| |
| <h2>En este documento:</h2> |
| |
| <ol> |
| <li><a href="#how-filters-work">Cómo funcionan los filtros en Google Play</a></li> |
| <li><a href="#manifest-filters">Filtrado en función de los elementos del manifiesto</a> |
| </li> |
| <li><a href="#other-filters">Otros filtros</a></li> |
| <li><a href="#MultiApks">Publicación de múltiples APK con diferentes filtros</a></li> |
| </ol> |
| |
| <h2>Consulta también</h2> |
| <ol> |
| <li><a href="{@docRoot}guide/practices/compatibility.html">Compatibilidad con Android</a></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html"><supports-gl-texture></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code></li> |
| <li><code><a |
| href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></code></a></li> |
| </ol> |
| |
| </div> |
| </div> |
| |
| <p>Cuando un usuario busca o examina aplicaciones para descargar en Google Play, los |
| resultados se filtran en función de las aplicaciones compatibles con el dispositivo. |
| Por ejemplo, si una aplicación requiere una cámara, Google Play no mostrará la aplicación a los dispositivos |
| que no tengan cámara. Este <em>filtrado</em> ayuda a los desarrolladores a administrar la |
| distribución de sus aplicaciones y también ayuda a garantizar la mejor experiencia posible para los |
| usuarios.</p> |
| |
| <p>El filtrado en Google Play se basa en diversos tipos de metadatos de las aplicaciones y en los |
| ajustes de configuración, incluidos los enunciados del manifiesto, las bibliotecas |
| requeridas, las dependencias de arquitectura y los controles de distribución configurados en la Consola para desarrolladores |
| de Google Play, como el perfilamiento geográfico, la fijación de precios, etc.</p> |
| |
| <p>El filtrado en Google Play se basa en los enunciados del manifiesto y en otros |
| aspectos del marco de Android, pero los comportamientos de filtrado reales son diferentes |
| de los del marco y no están condicionados a niveles de API específicos. Este documento |
| especifica las reglas actuales de filtrado que utiliza Google Play.</p> |
| |
| |
| <h2 id="how-filters-work">Cómo funcionan los filtros en Google Play</h2> |
| |
| <p>Google Play utiliza las restricciones de filtrado que se describen a continuación para determinar |
| si se exhibirá tu aplicación a los usuarios que examinen o busquen |
| aplicaciones en la Play Store de Google.</p> |
| |
| <p>Para determinar si se exhibirá o no tu aplicación, Google Play comprueba los requisitos de |
| hardware y software del dispositivo, como también su operador, ubicación y otras |
| características. Luego los compara con las restricciones y |
| dependencias que se indican en el archivo de manifiesto de la aplicación y en los detalles de |
| publicación. </p> |
| |
| <p>Si la aplicación es compatible con el dispositivo, de acuerdo con las reglas de |
| filtrado, Google Play le muestra la aplicación al usuario. De lo contrario, Google Play |
| oculta tu aplicación en los resultados de búsqueda y la exploración de categorías aunque un usuario |
| solicite específicamente la aplicación al hacer clic en un vínculo profundo que apunte directamente a la |
| ID de la aplicación en Google Play.</p> |
| |
| <p>Puedes usar cualquier combinación de los filtros disponibles para tu aplicación. Por ejemplo, puedes establecer un requisito |
| <code>minSdkVersion</code> de <code>"4"</code> y configurar <code>smallScreens="false"</code> |
| en la aplicación; luego, al cargar la aplicación a Google Play, podrías apuntar a países (operadores) europeos |
| únicamente. De este modo, los filtros de Google Play evitarán que la aplicación esté disponible en un dispositivo |
| que no coincida con estos tres requisitos. </p> |
| |
| <p>Todas las restricciones de filtrado están asociadas con una versión de la aplicación y pueden |
| diferir entre versiones. Por ejemplo, si un usuario instaló tu aplicación y publicas una |
| actualización que permite que la aplicación esté visible para el usuario, el usuario no verá que hay una actualización |
| disponible.</p> |
| |
| <h4>Filtrado en el sitio web de Google Play</h4> |
| |
| <p>Cuando los usuarios examinan el <a href="http://play.google.com/apps">sitio web de Google |
| Play</a>, pueden ver todas las aplicaciones publicadas. No obstante, el sitio web de Google Play |
| compara los requisitos de la aplicación para cada uno de los dispositivos registrados del usuario |
| a fin de determinar la compatibilidad, y solo les permite instalar la aplicación si |
| es compatible con su dispositivo.</p> |
| |
| <h2 id="manifest-filters">Filtrado en función del manifiesto de la aplicación</h2> |
| |
| <p>La mayoría de los filtros son activados por elementos del archivo de manifiesto de una |
| aplicación, <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">AndroidManifest.xml</a> |
| (aunque no todo lo que se encuentra en el archivo de manifiesto puede desencadenar el filtrado). |
| La tabla 1 contiene los elementos del manifiesto que debes usar para desencadenar el |
| filtrado y explica cómo funciona el filtrado para cada elemento.</p> |
| |
| <p id="table1" class="table-caption"><strong>Tabla 1.</strong> Elementos del manifiesto que |
| desencadenan el filtrado en Google Play.</p> |
| <table> |
| <tr> |
| <th>Elemento del manifiesto</th> |
| <th>Nombre del filtro</th> |
| <th>Cómo funciona</th> |
| </tr> |
| <tr> |
| <td valign="top" style="white-space:nowrap;"><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code> |
| <!-- ##api level 4## --></td> |
| <td valign="top">Tamaño de pantalla</td> |
| <td valign="top"> |
| |
| <p>Una aplicación indica el tamaño de pantalla que puede admitir mediante |
| la configuración de atributos del elemento <code><supports-screens></code>. Cuando |
| se publica la aplicación, Google Play usa esos atributos para determinar si puede |
| mostrar la aplicación a los usuarios en función de los tamaños de pantalla de sus |
| dispositivos. </p> |
| |
| <p>Como regla general, Google Play asume que la plataforma del dispositivo puede adaptar |
| diseños más pequeños a pantallas más grandes, pero no puede adaptar diseños grandes a pantallas |
| más pequeñas. Por lo tanto, si una aplicación declara compatibilidad con el tamaño de pantalla "normal" únicamente, |
| Google Play exhibe la aplicación para dispositivos con pantallas normales y grandes, |
| pero filtra la aplicación de modo que no esté disponible para dispositivos con |
| pantalla pequeña.</p> |
| |
| <p>Si una aplicación no declara atributos para |
| <code><supports-screens></code>, Google Play utiliza los valores predeterminados para esos |
| atributos, que varían según el nivel de API. Específicamente: </p> |
| |
| <ul> |
| <li><p>Para las aplicaciones que tienen <code><a |
| href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">android: |
| minSdkVersion</a></code> o <code><a |
| href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">android: |
| targetSdkVersion</a></code> configurados en 3 o menos, el elemento <code><supports-screens></code> se considera |
| no definido y no habrá atributos disponibles. En ese caso, Google Play supone que |
| la aplicación se diseñó para pantallas de tamaño normal y exhibe la aplicación a |
| dispositivos con pantallas de tamaño normal o más grande. </p> |
| |
| <li>Cuando <code><a |
| href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">android: |
| minSdkVersion</a></code> o <code><a |
| href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">android: |
| targetSdkVersion</a></code> están configurados en 4 o más, el valor predeterminado para todos los atributos es |
| <code>"true"</code>. De esta manera, se considera que la aplicación es compatible, de forma predeterminada, con todos los tamaños |
| de pantalla.</li> |
| </ul> |
| |
| <p><strong>Ejemplo 1</strong><br /> |
| El manifiesto establece <code><uses-sdk android:minSdkVersion="3"></code> |
| y no incluye un elemento <code><supports-screens></code>. |
| <strong>Resultado</strong>: Google Play no le mostrará la aplicación a un usuario que tenga |
| un dispositivo con pantalla pequeña, pero se la mostrará a los usuarios con dispositivos con pantallas de tamaño normal y grande, |
| a menos que se apliquen otros filtros. </p> |
| <p><strong>Ejemplo 2<br /> |
| </strong>El manifiesto establece <code><uses-sdk android:minSdkVersion="3" |
| android:targetSdkVersion="4"></code> y no incluye un |
| elemento <code><supports-screens></code>. |
| <strong>Resultado</strong>: Google Play mostrará la aplicación a los usuarios de todo tipo de dispositivos, |
| a menos que se apliquen otros filtros. </p> |
| <p><strong>Ejemplo 3<br /> |
| </strong>El manifiesto establece <code><uses-sdk android:minSdkVersion="4"></code> |
| y no incluye un elemento <code><supports-screens></code>. |
| <strong>Resultado</strong>: Google Play mostrará la aplicación a todos los usuarios, |
| a menos que se apliquen otros filtros. </p> |
| <p>Para obtener más información acerca de cómo declarar la compatibilidad con tamaños de pantalla en tu |
| aplicación, consulta <code><a |
| href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code> |
| y <a href="{@docRoot}guide/practices/screens_support.html">Admisión de múltiples |
| pantallas</a>.</p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td valign="top" style="white-space:nowrap;"><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></code> |
| <!-- ##api level 3## --></td> |
| <td valign="top">Configuración del |
| dispositivo: <br /> |
| teclado, navegación, pantalla táctil</td> |
| <td valign="top"><p>Una aplicación puede |
| requerir ciertas características de hardware, y Google Play mostrará la aplicación únicamente a los dispositivos que tengan el hardware requerido.</p> |
| <p><strong>Ejemplo 1<br /> |
| </strong>El manifiesto incluye <code><uses-configuration android:reqFiveWayNav="true" /></code>, y un usuario está buscando aplicaciones en un dispositivo que no cuenta con un control de navegación de cinco vías. <strong>Resultado</strong>: Google Play no le mostrará la aplicación al usuario. </p> |
| <p><strong>Ejemplo 2<br /> |
| </strong>El manifiesto no incluye un elemento <code><uses-configuration></code>. <strong>Resultado</strong>: Google Play mostrará la aplicación a todos los usuarios, a menos que se apliquen otros filtros.</p> |
| <p>Para obtener información detallada, consulta <a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code><uses-configuration></code></a>.</p></td> |
| </tr> |
| |
| <tr> |
| <td rowspan="2" valign="top" style="white-space:nowrap;"><code><a |
| href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a> |
| </code> |
| <!-- ##api level 4## --></td> |
| <td valign="top">Funciones del dispositivo<br /> |
| (<code>name</code>)</td> |
| <td valign="top"><p>Una aplicación puede requerir que el dispositivo tenga |
| ciertas funciones. Esta funcionalidad se introdujo en Android 2.0 (API |
| de nivel 5).</p> |
| <p><strong>Ejemplo 1<br /> |
| </strong>El manifiesto incluye <code><uses-feature |
| android:name="android.hardware.sensor.light" /></code>, y un usuario |
| está buscando aplicaciones en un dispositivo que no tiene sensor de luz. |
| <strong>Resultado</strong>: Google Play no le mostrará la aplicación al usuario. </p> |
| <p><strong>Ejemplo 2<br /> |
| </strong>El manifiesto no incluye un elemento <code><uses-feature></code> |
| . <strong>Resultado</strong>: Google Play mostrará la aplicación a todos los usuarios, |
| a menos que se apliquen otros filtros.</p> |
| <p>Para obtener información completa, consulta <code><a |
| href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a> |
| </code>.</p> |
| <p><em>Filtrado basado en funciones implícitas:</em> En algunos casos, Google |
| Play interpreta los permisos requeridos a través de |
| elementos <code><uses-permission></code> como requisitos de funciones equivalentes |
| a los declarados en los elementos <code><uses-feature></code>. Consulta <a href="#uses-permission-filtering"><code><uses-permission></code></a> |
| a continuación.</p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td valign="top">Versión de |
| OpenGL-ES<br /> |
| (<code>openGlEsVersion</code>)</td> |
| <td valign="top"><p>Una aplicación puede requerir que el dispositivo admita una |
| versión de OpenGL-ES específica mediante el atributo <code><uses-feature |
| android:openGlEsVersion="int"></code>.</p> |
| <p><strong>Ejemplo 1<br /> |
| </strong>Una aplicación |
| exige múltiples versiones de OpenGL-ES al especificar <code>openGlEsVersion</code> varias veces en el |
| manifiesto. <strong>Resultado</strong>: Google Play asume que la aplicación requiere las últimas actualizaciones de las versiones indicadas.</p> |
| <p><strong>Ejemplo 2<br /> |
| </strong>Una aplicación |
| exige la versión 1.1 de OpenGL-ES y un usuario busca aplicaciones en un dispositivo que admite la versión 2.0 de OpenGL-ES. <strong>Resultado</strong>: Google Play le mostrará la aplicación al usuario, a menos que se apliquen otros filtros. Si un |
| dispositivo informa que admite la versión <em>X</em> de OpenGL-ES, Google Play asume que |
| también admite las versiones anteriores a <em>X</em>. |
| </p> |
| <p><strong>Ejemplo 3<br /> |
| </strong>Un usuario está buscando aplicaciones en un dispositivo que no |
| contiene información acerca de la versión de OpenGL-ES (por ejemplo, un dispositivo que ejecuta Android 1.5 o anterior). <strong>Resultado</strong>: Google Play asume que el dispositivo |
| solo admite OpenGL-ES 1.0. Google Play le mostrará al usuario únicamente aplicaciones que no especifiquen <code>openGlEsVersion</code> o aplicaciones que no especifiquen una versión de OpenGL-ES posterior a 1.0. </p> |
| <p><strong>Ejemplo 4<br /> |
| </strong>El manifiesto no especifica <code>openGlEsVersion</code>. <strong>Resultado</strong>: Google Play mostrará la aplicación a todos los usuarios, a menos que se apliquen otros filtros. </p> |
| <p>Para obtener información detallada, consulta <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code><uses-feature></code></a>.</p></td> |
| </tr> |
| |
| <tr> |
| <td valign="top" style="white-space:nowrap;"><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code></td> |
| <td valign="top">Bibliotecas de software</td> |
| <td valign="top"><p>Una aplicación puede requerir que el dispositivo |
| tenga bibliotecas compartidas específicas. </p> |
| <p><strong>Ejemplo 1<br /> |
| </strong>Una aplicación exige la biblioteca <code>com.google.android.maps</code>, y un usuario está buscando aplicaciones en un dispositivo que no tiene la biblioteca <code>com.google.android.maps</code>. <strong>Resultado</strong>: Google Play no le mostrará la aplicación al usuario. </p> |
| <p><strong>Ejemplo 2</strong><br /> |
| El manifiesto no incluye un elemento <code><uses-library></code>. <strong>Resultado</strong>: Google Play mostrará la aplicación a todos los usuarios, a menos que se apliquen otros filtros.</p> |
| <p>Para obtener información detallada, consulta <a href="{@docRoot}guide/topics/manifest/uses-library-element.html"><code><uses-library></code></a>.</p></td> |
| </tr> |
| <tr id="uses-permission-filtering"> |
| <td valign="top" style="white-space:nowrap;"><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code></td> |
| <td valign="top"> </td> |
| <td valign="top">De forma estricta, Google Play no filtra en función de los elementos |
| <code><uses-permission></code>. No obstante, sí lee los |
| elementos para determinar si la aplicación tiene requisitos de características de hardware |
| que podrían no haberse declarado correctamente en los elementos <code><uses-feature></code> |
| . Por ejemplo, si una aplicación requiere el permiso <code>CAMERA</code> |
| pero no declara un elemento <code><uses-feature></code> para |
| <code>android.hardware.camera</code>, Google Play considera que la |
| aplicación requiere una cámara y no se le mostrará a los usuarios cuyos dispositivos no |
| tengan cámara.</p> |
| <p>En general, si una aplicación requiere elementos relacionados con hardware, |
| Google Play asume que la aplicación requiere las características de hardware |
| subyacentes, aunque no se correspondan con los enunciados de |
| <code><uses-feature></code>. Luego, Google Play establece el |
| filtrado en función de las funciones denotadas por los enunciados de <code><uses-feature></code> |
| .</p> |
| <p>Para acceder a una lista de los permisos que denotan características de hardware, consulta |
| la documentación para el elemento <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions-features"><code><uses-feature></code></a> |
| .</p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td rowspan="2" valign="top" style="white-space:nowrap;"><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></a></code></td> |
| <td valign="top">Versión mínima del Framework (<code>minSdkVersion</code>)</td> |
| <td valign="top"><p>Una aplicación puede requerir un nivel de API mínimo. </p> |
| <p><strong>Ejemplo 1</strong><br /> |
| El manifiesto incluye <code><uses-sdk |
| android:minSdkVersion="3"></code>, y la aplicación utiliza API que pertenecen al nivel de API 3. Un usuario busca aplicaciones en un dispositivo con nivel de API 2. <strong>Resultado</strong>: Google Play no le mostrará la aplicación al usuario. </p> |
| <p><strong>Ejemplo 2</strong><br /> |
| El manifiesto no incluye <code>minSdkVersion</code>, y la aplicación utiliza API que pertenecen al nivel de API 3. Un usuario busca aplicaciones en un dispositivo con nivel de API 2. <strong>Resultado</strong>: Google Play asume que <code>minSdkVersion</code> es "1" y que la aplicación es compatible con todas las versiones de Android. Google Play le muestra la aplicación al usuario y le permite descargarla. La aplicación colapsa durante la ejecución. </p> |
| <p>Para evitar esta segunda situación, te recomendamos que siempre declares un <code>minSdkVersion</code>. Para obtener información detallada, consulta <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min"><code>android:minSdkVersion</code></a>.</p></td> |
| </tr> |
| <tr> |
| <td valign="top">Versión máxima del Framework (<code>maxSdkVersion</code>)</td> |
| <td valign="top"><p><em>Obsoleto.</em> Android |
| 2.1 y posteriores no comprueban ni aplican el atributo <code>maxSdkVersion</code>, y |
| el SDK no se compilará si se establece <code>maxSdkVersion</code> en el manifiesto de la aplicación. Para los dispositivos |
| ya compilados con <code>maxSdkVersion</code>, Google Play lo respetará y lo utilizará para el |
| filtrado.</p> |
| <p> <em>No</em> se recomienda declarar <code>maxSdkVersion</code>. Para obtener información detallada, consulta <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#max"><code>android:maxSdkVersion</code></a>.</p></td> |
| </tr> |
| </table> |
| |
| |
| |
| <h3 id="advanced-filters">Filtros avanzados del manifiesto</h3> |
| |
| <p>Además de los elementos del manifiesto que se indican en la <a href="#table1">tabla 1</a>, Google Play también puede |
| filtrar aplicaciones en función de los elementos avanzados del manifiesto que se indican en la tabla 2.</p> |
| |
| <p>Estos elementos del manifiesto y el filtrado que desencadenan se utilizan únicamente en casos |
| excepcionales. Se diseñaron para ciertos tipos de juegos de alto rendimiento y aplicaciones similares que |
| requieren controles estrictos de distribución de la aplicación. <strong>La mayoría de las aplicaciones no deberían |
| utilizar estos filtros</strong>.</p> |
| |
| <p id="table2" class="table-caption"><strong>Tabla 2.</strong> Elementos avanzados del manifiesto para |
| filtrado en Google Play.</p> |
| <table> |
| <tr><th>Elemento del manifiesto</th><th>Resumen:</th></tr> |
| <tr> |
| <td><nobr><a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html">{@code |
| <compatible-screens>}</a></nobr></td> |
| <td> |
| <p>Google Play filtra la aplicación si el tamaño de pantalla del dispositivo no coincide con |
| ninguna de las configuraciones de pantalla (declaradas por un elemento {@code <screen>}) en el elemento {@code |
| <compatible-screens>}.</p> |
| <p class="caution"><strong>Advertencia:</strong> Normalmente, <strong>no deberías usar este elemento |
| del manifiesto</strong>. El uso de este elemento puede reducir |
| notablemente la base de usuarios potenciales para tu aplicación, al excluir todas las combinaciones de tamaño de pantalla |
| y densidad que no indicaste. En su lugar, debes usar el elemento del manifiesto <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code |
| <supports-screens>}</a> (descrito anteriormente en la <a href="#table1">tabla |
| 1</a>) para habilitar el modo de compatibilidad de pantalla para las configuraciones de pantalla que no abarcaste |
| con recursos adicionales.</p> |
| </td> |
| </tr> |
| <tr> |
| <td><nobr><a href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html">{@code |
| <supports-gl-texture>}</a></nobr></td> |
| <td> |
| <p>Google Play filtrará la aplicación a menos que uno o más de los formatos de compresión |
| de texturas GL compatibles con la aplicación también sean compatibles con el dispositivo. </p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| |
| <h2 id="other-filters">Otros filtros</h2> |
| |
| <p>Google Play utiliza otras características de la aplicación para determinar si mostrará u ocultará una aplicación a un usuario específico o un dispositivo determinado, tal como se describe en la tabla a continuación. </p> |
| |
| <p id="table3" class="table-caption"><strong>Tabla 3.</strong> Características de la aplicación y la |
| publicación que afectan el filtrado en Google Play.</p> |
| <table> <tr> |
| <th>Nombre del filtro</th> <th>Cómo funciona</th> </tr> |
| |
| <tr> |
| <td valign="top">Estado de la publicación</td> <td valign="top"><p>Únicamente las aplicaciones publicadas aparecerán en las |
| búsquedas y exploraciones en Google Play.</p> <p>Incluso cuando una aplicación no esté publicada |
| , se la podrá instalar si los usuarios pueden visualizarla en el área de Descargas entre las aplicaciones que |
| compraron, instalaron o desinstalaron recientemente.</p> <p>Si se suspende una aplicación, |
| los usuarios no podrán volver a instalarla ni actualizarla, aunque aparezca en sus Descargas.</p> </td></tr> |
| <tr> |
| <td valign="top">Estado |
| pago</td> <td valign="top"><p>No todos los usuarios pueden ver aplicaciones pagas. Para mostrar aplicaciones pagas, un dispositivo |
| debe tener una tarjeta SIM y ejecutar Android 1.1 o posterior, y debe encontrarse en un |
| país (según lo determine el operador SIM) en el que las aplicaciones pagas estén disponibles.</p></td> |
| </tr> <tr> |
| <td valign="top">Perfilamiento de país</td> <td valign="top"> <p>Cuando cargas tu aplicación a |
| Google Play, puedes seleccionar los países en los que quieres distribuir la aplicación; para ello, deberás ingresar |
| en <strong>Fijación de precios y distribución</strong>. Luego, la aplicación |
| estará disponible para los usuarios únicamente de los países que selecciones.</p> |
| </td> </tr> <tr> |
| <td valign="top" style="white-space:nowrap;">Arquitectura de CPU (ABI)</td> |
| <td valign="top"><p>Las aplicaciones que incluyen bibliotecas |
| nativas que apuntan a una arquitectura de CPU específica (por ejemplo: ARM EABI v7 o x86) solo |
| pueden visualizarse en dispositivos que admiten esa arquitectura. Para obtener información detallada acerca del NDK y del uso de |
| bibliotecas nativas, consulta <a href="{@docRoot}tools/sdk/ndk/index.html#overview">¿Qué es el |
| NDK de Android?</a></p> </tr> <tr> |
| <td valign="top">Aplicaciones protegidas contra copia</td> <td valign="top"><p class="caution">Google |
| Play ya no admite la función Protección contra copia en la Consola para desarrolladores, y ya no |
| filtra aplicaciones de acuerdo con esa función. Para proteger tu aplicación, utiliza en su lugar <a href="{@docRoot}google/play/licensing/index.html"> |
| Licencias de aplicaciones</a>. Consulta <a href="{@docRoot}google/play/licensing/overview.html#CopyProtection"> |
| Reemplazo de protección contra copias</a> para obtener más información.</p></td> </tr> </table> |
| |
| <h2 id="MultiApks">Publicación de múltiples APK con diferentes filtros</h2> |
| |
| <p>Algunos filtros específicos de Google Play te permiten publicar múltiples APK para la misma |
| aplicación a fin de proporcionar un APK distinto para diferentes configuraciones de dispositivos. Por ejemplo, si estás |
| creando un videojuego que utiliza recursos gráficos de alta fidelidad, te recomendamos que crees |
| dos APK y que cada uno admita diferentes formatos de compresión de texturas. De este modo, puedes reducir el |
| tamaño del archivo del APK al incluir solo las texturas necesarias para la configuración de cada |
| dispositivo. Según la compatibilidad de cada dispositivo con tus formatos de compresión de texturas, Google |
| Play le proporcionará el APK que hayas declarado como compatible con ese dispositivo.</p> |
| |
| <p>Actualmente, Google Play te permite publicar múltiples APK para la misma aplicación únicamente |
| cuando cada APK proporcione diferentes filtros en función de las siguientes configuraciones:</p> |
| <ul> |
| <li>Formatos de compresión de texturas OpenGL |
| <p>Mediante el uso del elemento <a href="{@docRoot}guide/topics/manifest/supports-gl-texture-element.html">{@code |
| <supports-gl-texture>}</a>.</p> |
| </li> |
| <li>Tamaño de pantalla (y, opcionalmente, densidad de la pantalla) |
| <p>Mediante el uso del elemento <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code |
| <supports-screens>}</a> o <a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html">{@code |
| <compatible-screens>}</a>.</p> |
| </li> |
| <li>Nivel de API |
| <p>Mediante el uso del elemento <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code |
| <uses-sdk>}</a>.</p> |
| </li> |
| <li>Arquitectura de CPU (ABI) |
| <p>Mediante la inclusión de bibliotecas nativas creadas con el <a href="{@docRoot}tools/sdk/ndk/index.html">NDK de |
| Android</a> que apunta a una arquitectura de CPU específica (por ejemplo, ARM EABI v7 o x86).</p> |
| </li> |
| </ul> |
| |
| <p>Todos los demás filtros continúan funcionado de la forma habitual, pero estos cuatro son los únicos filtros que pueden |
| distinguir un APK de otro dentro del mismo directorio de la aplicación en Google Play. Por ejemplo, |
| <em>no puedes</em> publicar múltiples APK para la misma aplicación si los APK solo difieren en función de |
| si el dispositivo tiene cámara.</p> |
| |
| <p class="caution"><strong>Advertencia:</strong> La publicación de múltiples APK para la misma aplicación se |
| considera una función avanzada y <strong>la mayoría de las aplicaciones deben publicar un solo |
| APK que admita una amplia variedad de configuraciones de dispositivos</strong>. La publicación de múltiples APK |
| requiere que sigas reglas específicas dentro de tus filtros y que prestes especial atención a los |
| códigos de versión para cada APK a fin de garantizar las vías de actualización adecuadas para cada configuración.</p> |
| |
| <p>Si necesitas más información acerca de cómo publicar múltiples APK en Google Play, lee <a href="{@docRoot}google/play/publishing/multiple-apks.html">Compatibilidad con múltiples APK</a>.</p> |