Unity: "Очевидное-невероятное” или хитрости разработки...

11
Очевидное-невероятное или хитрости разработки на Unity Android Руслан Григорьев, Инженер по тестированию ПО, Unity Technologies

description

Unity для платформы Android решает за разработчика огромное количество проблем. Что впрочем не отменяет умелое использование этого мощного инструментария. Приходите и узнайте секреты и хитрости разработки от участника команды Unity Android.

Transcript of Unity: "Очевидное-невероятное” или хитрости разработки...

Page 1: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

Очевидное-невероятное или хитрости разработки на Unity Android

Руслан Григорьев, Инженер по тестированию ПО, Unity Technologies

Page 2: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

о докладчике

• 10+ лет в игроиндустрии (в том числе в отечественной) в разных компаниях: Toolsmedia, LG Electronics, Creat Studios, Reaxion и т.д.

• Множество выпущенные проектов на платформах от PC/PS2 до iOS/Android/Brew/J2ME/Symbian.

• Почти 3 счастливых года в Unity Technologies в качестве QA по мобильным платформам: Android/Windows Phone 8.

Page 3: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

общий подход к разработке на android . прототипирование и быстрые итерации

• Build & Run • Android Tools: adb, monitor, etc [demo] • Android Remote [demo] • Custom build pipeline. Unity API: BuildPipeline.BuildPlayer [demo] • Profiling • Debugging • …and more

Page 4: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

общий подход к разработке на 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

Page 5: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

общий подход к разработке на 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

Page 6: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

общий подход к разработке на 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>

Page 7: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

unity android и java . плагины и даже больше

• AndroidJNIHelper: [demo] • AndroidJavaClass • AndroidJavaObject

• Java Exception propagation to Unity script [demo] • Android Java Plugins (AJP) [demo] • Android Native Plugins (ANP) [demo] • Android Library Projects (ALP) [demo] • Custom Manifest • AndroidProxy: Java interfaces • AndroidJavaRunable(uses AndroidProxy): RunOnUiThread • Export as Android Project. Backward compatibility [demo]

Page 8: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

unity android и java . плагины и даже больше

Page 9: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

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

Page 10: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

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

Page 11: Unity: "Очевидное-невероятное” или хитрости разработки на Unity Android

спасибо за внимание

Вопросы ?

Контакт инфо: [email protected]