Unity для платформы Android решает за разработчика огромное количество проблем. Что впрочем не отменяет умелое использование этого мощного инструментария. Приходите и узнайте секреты и хитрости разработки от участника команды Unity Android.
2. о докладчике
• 10+ лет в игроиндустрии (в том числе в отечественной) в разных
компаниях: Toolsmedia, LG Electronics, Creat Studios, Reaxion и т.д.
• Множество выпущенные проектов на платформах от PC/PS2 до
iOS/Android/Brew/J2ME/Symbian.
• Почти 3 счастливых года в Unity Technologies в качестве QA по
мобильным платформам: Android/Windows Phone 8.
3. общий подход к разработке на android . прототипирование и быстрые итерации
• Build & Run
• Android Tools: adb, monitor, etc [demo]
• Android Remote [demo]
• Custom build pipeline. Unity API: BuildPipeline.BuildPlayer [demo]
• Profiling
• Debugging
• …and more
4. общий подход к разработке на android . зоопарк устройств
Ох уж это разнообразие...
• ARMv7 devices only / with NEON extention only. Почему?
• Form factor: smatrphones/tablets и нечто посередине. Автоматически поддерживаем
все разрешения и еще эмулируем в редакторе. + Unity API: Screen.currentResolution
• GPU Families: PowerVR / nVidia Tegra / Qcomm Adreno / ARM Mali (+ Vivante / VideoCore)
• OpenGL ES 2.0 / 3.0. Оба стандарта поддерживаются.
• Android OS versions: поддержка от Gingerbread (API Level 9) и выше. Только
официальные версии от Google.
• Android (US, EU, etc)/ Android Korean / Android Chinese
5. общий подход к разработке на android . зоопарк устройств
...и немного о сборе статистики: Статистику надо собирать =) А как?
• Разнообразные серисы: Flurry, Google Analytics, App Annie. Плагины на AssetStore
• Редактор Unity. Submit HW statistics. С чего бы это?
• Мы делимся информацией: http://stats.unity3d.com/
• А в будущем будем предоставлять сервис Unity Analytics
• Статистика от Google: https://developer.android.com/about/dashboards/index.html
Есть одно простое правило работы с зоопарком android устройств:
Невозможно прокрыть ВСЕ. Но возможно и нужно выбрать ГЛАВНОЕ.
Проэтому знай и люби свой зоопарк
Так как узнать спецификацию моего устройства?
• $ adb shell cat system/build.prop [demo]
• Unity API: SystemInfo [demo]
• Для проверки и точной иформации: http://pdadb.net
6. общий подход к разработке на android . publishing на google play
Ведущий Android Store Front. Поддерживается Google
Android Developer Program. Developer Console
• Подпись keystore: встроена в редактор unity
• LVL Plugin на AssetStore: Google Play Application License Verification (*made by unity)
• OBB Plugin на AssetStore: Google Play OBB Downloader (*made by unity)
• Множество других плагинов на AssetStore
• Unity Error Reporting service over Android Error Reporting (embedded)
Crashes & ANRs
<log>
java.lang.Error: FATAL EXCEPTION [UnityMain]
Unity version : 4.3.0f1
Device model : ZTE KIS PLUS
Device fingerprint: /(--removed due to privacy concerns--)
Caused by: java.lang.Error: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
Build fingerprint: '/(--removed due to privacy concerns--)'
Revision: '0'
...
</log>
9. unity android и java . плагины и версии unity
Unity 3.5 Android Java Plugins
• Custom Manifest: 3 unity activities
• Manual conflicts resolving. Плагины с ссылками на ресурсы.
• Нет поддержки ALP
Unity 4.3 Android Java Plugins
• Custom manifest: unity native activity only
• Support for old (3.5) Android Plugins custom manifest
• Поддержка ALP. Лучший способ для плагинов со ссылками на ресурсы
Unity 5.0 Android Java Plugins
• Android plugin importer. Только для “простых” jar. Можно поместить где угодно.
• No Support for old (3.5) Android Plugins custom manifest
• Поддержка ALP. См. Выше
Если Вы пишете плагины, то настоятельно рекомендую ипользовать формат ALP
10. bug reporting и сообщество
Unity Bug Reporter / Как сообщать об ошибках
• Auto filled data
• Steps to repro
• Repro project
• Android specific
• Device info
• Logcat
Issue tracker / Голосуй за свой баг репорт!
• http://issuetracker.unity3d.com
Community / Сообщество
• Closed alpha groups. Только по рекомендации
• Beta groups. Можно попроситься
Что дальше?
• http://unity3d.com/community