КОРИСНІ ПОРАДИ ПРИ РОЗРОБЦІ ІГОР ДЛЯ ОС ANDROID

&nbsp

Android (або, скоріше, Dalvik) іноді має деякі дивні показники продуктивності Я дам вам деякі корисні і важливі підказки, яким варто слідувати, щоб зробити ваші ігри зручними

Збирач сміття – ваш найлютіший ворог Коли він отримує процесорний час для виконання своєї брудної роботи, всі інші процеси зупиняються на 600 мілісекунд Протягом цієї половини секунди наша гра не буде оновлюватися і промальовуватися Користувачам це не сподобається Уникайте створення обєктів всюди, де це можливо (особливо у внутрішніх циклах)

Обєкти можуть створюватися у не самих очевидних місцях, а цього вам хотілося б уникнути Не користуйтесь ітераторами – вони створюють нові обєкти Чи не застосовуйте класи зі стандартних колекцій Set або Map – Вони створюють нові обєкти при кожній вставці Замість цього задіюйте клас SparseArray, пропонований Android API Використовуйте StringBuffer замість склеювання рядків оператором + (ця дія кожен раз неявно створює обєкт StringBuffer) І заради всього святого – Не застосовуйте обгортки над примітивними обєктами Про Виклики методів мають більш високу асоційовану вартість у Dalvik, ніж в інших віртуальних машинах По можливості використовуйте статичні методи – їх продуктивність вище Статичні методи часто вважаються злом (як і статичні змінні), оскільки сприяють поганому дизайну коду Тому намагайтеся забезпечити чітку і ясну картину вашого коду Крім того, слід відмовитися від використання властивостей з геттеров і сетерами – прямий доступ до полів в три рази швидше, ніж використання викликів методу без JIT, і в сім разів швидше – чим разом з JIT Проте перед тим, як прибирати властивості, ще раз подумайте про дизайн коду

Операції з плаваючою точкою на старих пристроях і версіях Dalvik без JIT (тобто всюди, де стоїть Android раніше версії 22) виконуються програмно Розробники старої школи при цих словах відразу повертаються до математики з фіксованою точкою Не спокушайтеся – цілочисельні операції ділення теж не надто швидкі Однак у більшості випадків ви спокійно зможете оперувати даними типу float, а нові пристрої підтримують модулі плаваючою точки (FPU), що прискорюють роботу

Намагайтеся зберігати часто використовувані значення в локальних змінних усередині методу Доступ до локальних змінних здійснюється набагато швидше, ніж доступ до членів класу або застосування властивостей

Звичайно, існує ще багато підводних каменів, з якими потрібно бути обережними Далі в е я буду давати і інші невеликі підказки по продуктивності Якщо ви будете дотримуватися цих рекомендацій, у вас все буде добре Тільки не дайте перемогти збирачеві сміття

Джерело: Mario Zechner / Маріо Цехнер, «Програмування ігор під Android», пров Єгор Сидорович, Євген зазноби, Видавництво «Пітер»

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*