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

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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]