2014-11-02 6 views
0

В моем приложении для Android (android: minSdkVersion = "13", android: targetSdkVersion = "19") Я создаю несколько apks на основе совместимости размера экрана.тег <поддерживает-экраны> в нескольких сценариях apk в android

В манифесте APK, который поддерживает большие устройства, которые я дал -

<supports-screens android:smallScreens="false" 
        android:normalScreens="false" 
        android:largeScreens="true" 
        android:xlargeScreens="true" 
        android:requiresSmallestWidthDp="600" /> 

Я хочу знать, что тег я должен определить в манифесте APK поддержки малых, нормальные и большие устройств (чья ЮЗ меньше чем 600dp). Я прочитал учебники для разработчиков по Android и упомянул, что вы также должны установить android: largeScreens = "true", android: xlargeScreens = "true" в apk, поддерживая небольшие обычные устройства. Я не получил эту часть.

Также код версии apk, поддерживающий большие и x-большие устройства, будет выше, так что во время загрузки приложения Google будет проверяться, что apk сначала проверяет apk.

Примечание. Минимальная поддерживаемая версия sdk - 3.2.

PS: Разработчик андроида говорит, что это -

Caution: If you use the <supports-screens> element for the reverse scenario (when your application is not compatible with larger screens) and set the larger screen size attributes to "false", then external services such as Google Play do not apply filtering. Your application will still be available to larger screens, but when it runs, it will not resize to fit the screen. Instead, the system will emulate a handset screen size (about 320dp x 480dp; see Screen Compatibility Mode for more information). If you want to prevent your application from being downloaded on larger screens, use <compatible-screens>, as discussed in the previous section about Declaring an App is Only for Handsets. 

, что подразумевается под этим? Предположим, что я даю все поддержки (все размеры), чтобы быть правдой для других apk.Тогда в игру Google будет проверять манифест с более высокой версией, и если он удовлетворяет, то он загрузит эту версию для пользователя, поскольку несколько apks следуют правилам, которые, если более одного apk поддерживает устройство, тогда предпочтение отдается apk с более высокой версией. Я прав или нет в этом отношении?

ответ

0

Поскольку ваш targetSdkVersion больше 11, вам не нужно устанавливать какие-либо атрибуты в true - они по умолчанию. Таким образом, вы должны просто установить все атрибуты на false, за исключением целевого размера экрана, поддерживаемого конкретной сборкой.

Таким образом, ваш largeScreens сборки supports-screens будет выглядеть следующим образом:

<supports-screens android:smallScreens="false" 
        android:normalScreens="false" 
        android:largeScreens="true" 
        android:xlargeScreens="false" /> 

smallScreens сборка будет:

<supports-screens android:smallScreens="true" 
        android:normalScreens="false" 
        android:largeScreens="false" 
        android:xlargeScreens="false" /> 

И так далее. Google Play позволяет загружать несколько APK и автоматически фильтровать их на основе атрибута supports-screen. Подробнее здесь: http://developer.android.com/google/play/filters.html

Однако, вы должны знать, это предупреждение от Google относительно здания нескольких файлов APK для различных экранов:

Примечания: Андроида системы обеспечивает надежную поддержку приложений для поддержки всех конфигурации экрана с один APK. Вы должны избегать , создавая несколько APK для поддержки разных экранов, если не требуется абсолютно , а вместо этого следуйте руководству по поддержке нескольких экранов , чтобы ваше приложение было гибким и может адаптироваться ко всем экранам с одним APK. http://developer.android.com/google/play/publishing/multiple-apks.html

+0

спасибо за answer.But моего вопроса в том, что для второго APK Я хочу устройство с юго-западным> = 600dp, которые я определен в manifest.Do мне нужно определить другие поля также такие, как андроид: largeScreens = «true», потому что разработчик android говорит, что вам нужно определить это, только если вы хотите поддерживать версии для Android менее 3.1 – akg

+0

также как различать устройства только на основе «sw» устройств – akg

 Смежные вопросы

  • Нет связанных вопросов^_^