Я разрабатываю игры для Android, и потому что очень разный характер Android-устройств (от Samsung Galaxy Y
до Google Nexus 10
) Я решил использовать «несколько APK» -файлов Google Play. Я решил создать 4 разных пакета, каждый с активами, масштабированными до разных размеров.Ориентация на несколько устройств с несколькими APK
Самый маленький из них составляет около 10 мегабайт, а графические активы масштабируются до 240p (чтобы сохранить очень ограниченную память на Galaxy Y), а самая большая - почти 50 мегабайт с активами, масштабированными до ~ 1500p для обеспечения четкой графики для Nexus 10.
Я использую <compatible-screens>
для фильтрации каждой версии на разные устройства. Я использую screenSizes small
, normal
, large
и xlarge
, и screenDensities ldpi
, mdpi
, hdpi
и xhdpi
.
У меня есть каждая комбинация screenSize-screenDensity, упомянутая здесь, в одном из четырех APK. Проблема заключается в том, что Google NEXUS 7
не принадлежит ни к одному из этих! Он использует
<screen android:screenSize="large" android:screenDensity="213" />
Теперь это легко вручную добавить их к одному из четырех APK,, но реальный вопрос ... я должен постоянно обновлять свои APK-в темпе Google решает продолжать добавлять эти, по-видимому, произвольные категории плотности экрана? Или i * Есть ли лучший способ фильтрации APK? *
Документы API API предлагают вместо этого использовать <supports-screens>
, но в нем упоминается, что он действительно не использует его для фильтра.
«В темпе Google решает продолжать добавлять эти, казалось бы, произвольные категории плотности экрана?» - учитывая, что они усредняли менее одного года с начала 2009 года, можно надеяться, что это не слишком быстро для вас. – CommonsWare
Nexus 7 - это 'tvdpi', вы пробовали использовать это в объявлении' '? Я замечаю, что документы не перечисляют его ... но стоит попробовать –
Ну, оказывается, что HTC One, Galaxy S 4 и Experia Z являются xxhdpi, а мои игры недоступны для этих устройств, потому что xxhdpi wasn ' t, упомянутых в документах API Google. : | – Habba