Разработка игрового мобильного приложения на Android

Структура Android-приложений. Особенности игрового движка. Алгоритмизация и программирование. Список игровых состояний. Настройка, отладка и тестирование программы. Разработка руководства пользователя. Тестирование инсталляции и отображения элементов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 19.01.2017
Размер файла 4,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

local grid_x, grid_y = self:screenToGrid(x, y)

return self.gemsGrid[grid_x][grid_y]

end

Кроме всего, что мы перечислили, именно сетка отвечает за игровые бонусы. Особый её метод grid:useBonus(bonus_num), где bonus_num - номер активированного в игре бонуса (1 из 6 видов). Помогает легко найти все игровые объекты в ряду, столбце, или вообще перебрать всю сетку полностью на игровые объекты, чтобы определить -- какие из них требуется уничтожить.

Основной метод сетки -- grid:regenerate()

Он позволяет генерировать новую случайную сетку игровых объектов с любыми типами (цветами), игровых объектов. При этом в самом конце сетка проверяется заранее на любые готовые совпадения игровых элементов и перестраивает её так, чтобы их не осталось (иначе часть задачи игрока была бы выполнена сразу после запуска игры).

-- Создаём новую сетку элементов

function grid:regenerate()

local gem_index = 1

-- Делаем сетку и заполняем случайными элементами

for x = 1, self.width do

for y = 1, self.height do

-- Пустые элементы удаляем

if (self.gemsGrid[x][y] == nil) then

self.gemsGrid[x][y] = self.matchedGems[gem_index]

self.matchedGems[gem_index] = nil

gem_index = gem_index + 1

end

-- Перезагружаем координаты сетки

self.gemsGrid[x][y]:setType(math.random(self.maxGemTypes))

self.gemsGrid[x][y].sprite.x = (x - 1) * gem.gemActualWidth + self.offsetX

self.gemsGrid[x][y].sprite.y = (y - 1) * gem.gemActualHeight + self.offsetY

self.gemsGrid[x][y].sprite.alpha = 1

end

end

-- Удаляем все 3+ сгенерированные совпадения

self:fix()

end

Однако, для игры недостаточно создать просто такую структуру. Она должна быть обязательно подкреплена игровой логикой, которая по нашим правилам должна пересчитывать все +3 совпадения в игровой сетки. Есть специальный метод grid:checkMatches() он перебирает всю сетку на совпадения три и больше в ряд/столбец различных игровых элементов и заносит их в особую группу для дальнейшего удаления. Затем по логике игры уже добавляются новые на место удалённых элементов и игра продолжается.

function grid:checkMatches()

local match = false

-- Очищаем лист наших элементов для удаления

for i in pairs(self.matchedGems) do

matchedGems[i] = nil

end

-- Проверяем столбцы матча

for x = 1, self.width do

local count = 0

local focus

local ox, oy

for y = 1, self.height do

local gem = self.gemsGrid[x][y]

local current = gem.type

if (count == 0) then

focus = current

count = 1

ox = x

oy = y

elseif (current == focus) then

count = count + 1

end

if (current ~= focus or y == self.height) then

-- Удаляем совпадения в колонках

if (count >= 3) then

match = true

for i = 1, count do

-- Добавляем элементы в удалялку

self:addGemToMatches(self.gemsGrid[ox][oy])

oy = oy + 1

end

end

focus = current

ox = x

oy = y

count = 1

end

end

end

-- Проверяем строки на 3 и более

for y = 1, self.height do

local count = 0

local focus

local ox, oy

for x = 1, self.width do

local gem = self.gemsGrid[x][y]

local current = gem.type

if (count == 0) then

focus = current

count = 1

ox = x

oy = y

elseif (current == focus) then

count = count + 1

end

if (current ~= focus or x == self.width) then

-- Заносим в удалялку элементы

if (count >= 3) then

match = true

for i = 1, count do

self:addGemToMatches(self.gemsGrid[ox][oy])

ox = ox + 1

end

end

focus = current

ox = x

oy = y

count = 1

end

end

end

-- Удаляем элементы

if (#self.matchedGems > 0) then

audio:playSound("audio/gem_destroyed.raw")

end

for i,g in ipairs(self.matchedGems) do

--Вызываем метод их взрыва

g:explode()

end

return match

end

После того, как в сетке были описаны все необходимые в процессе игры методы и мелочи, оставалось только добавить дополнительный класс селектора, который помогал бы в управлении игрой пользователю. Подробно рассматривать данный класс не стоит. Так, как в его функции входит простая «отметка» того элемента на игровой сетки, на который нажал игрок. После этого, уже относительно этой метки можно обменивать выбранный элемент с любыми, что находятся выше-ниже, или левее-правее, но не более, чем на 1 клетку от него.

Если благодаря перестановки элементов будет найдено 3+ совпадение, то игра позволит окончательно сдвинуть эти элементы местами и поменять их. Если же такого не будет, то игра просто проиграет красивую анимацию и вернёт всё на свои места.

3.3 Список игровых состояний

Специально для удобного управления игрой были добавлены игровые состояния -- переменные, которые определяют, какие действия пользователя сейчас возможны, а какие нет. Стоит рассмотреть их подробнее.

-- Список игровых состояний

gameStates = {

paused = 0,

waitingFirstGem = 1,

waitingSecondGem = 2,

thinking = 3,

gemsFalling = 4,

roundOver = 5,

}

Paused - пауза. Игра приостановлена. Нельзя выбирать какие-либо элементы. Управления игрока самим процессом игры полностью отключено. Можно только нажать на кнопку выхода, которая появляется в верхней части экрана.

WaitingFirstGem - игра ждёт, пока мы выберем один из игровых элементов на экране нажатием.

WaitingSecondGem - мы уже выбрали первый элемент для перестановки и игра ждёт второй, после нажатия на который будет произведён обмен и возможно, игра перейдёт в следующие состояния.

Tninking - игра анализирует результаты наших действий, удаляет блоки и добавляет в игровую сетку новые. Управление у игрока полностью отключено в этот момент и он не может ничего сделать, кроме поставить паузу.

GamsFalling - стадия, когда игра добавляет в игровую сетку новые элементы, так-же не позволяя игроку вмешиваться. В конце этой стадии вновь происходит обдумывание получившихся результатов и игра может перейти снова в стадию thinking. Так будет до тех пор, пока сетка полностью не будет очищена от всех три в ряд совпадений.

RoundOver - последняя стадия, которая заканчивает игру. Забирает управление, отключает возможность паузы. Проигрывает красивый эффект и закрывает уровень.

Благодаря добавлению в файл game.lua специальных вставок с проверкой состояний игры, удалось достичь высокого её качества, запрета определённых игровых действий в нужные моменты и придать чёткости игровым правилам.

3.4 Разработка интерфейса

В целом, интерфейс всех игровых сцен аналогичен. К определённым спрайтам привязываются определённые проверки на их нажатие. Любой эвент выглядит и описывается так, как показано ниже и представляет из себя функцию. Например, вот полное описание эвента на выход из игры в главном меню.

При создании сцены изначально мы добавляем эвент на «прикосновение» к элементу (кнопке выхода), после нажатия на которую запускается функция exitButtonTouched

- Привязываем эвент к нашей кнопке выхода из игры

exitButton:addEventListener("touch", exitButtonTouched)

- Функция выхода из игры и остановки движка

function exitGame(event)

system:quit()

end

-- Эвент нажата кнопка выхода

function exitButtonTouched(event)

if(event.phase=="ended") then

tween:to(exitText, { alpha=0.2, time=0.5 } )

tween:to(exitText, { alpha=0.2, delay=0.25, time=0.75, easing=ease.expIn} )

- Играем анимацию, после которой запускаем функцию exitGame

tween:to(exitButton, { alpha=0.2, delay=0.25, time=1.25, easing=ease.expIn, onComplete=exitGame } )

end

end

Компонент движка tween позволяем нам создавать разные анимации с игровыми объектами, как уже рассказывалось ранее. Благодаря ему без добавления специальных эффектов можно изменять за время прозрачность, перемещать объект в любые координаты экрана плавно с течением времени, растягивать по любым осям и много чего ещё.

В целом, весь пользовательский интерфейс построен на эвентах, привязанных к определённым объектам на экране. Давайте рассмотрим все игровые сцены, как они выглядят и что на них изображено.

Первая сцена -- главное меню.

Рисунок 3.5 -- Главное меню игры

В главном меню с точки зрения интерфейса пользователя будут только 2 элемента. В конечной версии приложения галочка и крест снизу будут убраны потому, что отвечают за читы для быстрого открытия всех уровней приложения. И удобной демонстрации всех возможностей игры без траты времени на прохождение. Остальные же кнопки играть и выход будут оставлены в игре. Первая из них переводит игрока на экран выбора уровней, а вторая закрывает игру.

Вторая сцена -- экран выбора уровней.

Рисунок 3.6 -- Экран выбора уровней

На экране выбора уровней есть много активных элементов, которые построены по аналогиями с кнопками из главного меню. Имеется 6 миров-категорий, в каждой из которых содержится по 5 уровней. Если уровни открыты, то сверху будет зелёный цвет. Если уровень недоступен, то будет подсвечен красным. При нажатии на любой из этих уровней запускается игра с теми параметрами, которые соответствуют этому уровню. При завершении любого уровня, открывается следующий для прохождения. В каждом из миров меняются цвета игровых элементов и задачи становятся сложнее, но и монет, которые может найти игрок становится больше.

Третья сцена в игре игровая.

Рисунок 3.7 -- Экран игровой сцены

Интерфейс игровой части строился по аналогии с теми приложениями, которые мы уже рассматривали в самом начале. Все игровые события так-же сделаны аналогично. Нажатием на монетку можно поставить паузу и вызвать кнопку выхода из игры. Все игровые элементы реагируют на нажатия. Необходимо достигнуть нужное для завершения уровня количество очков. Задний фон для красоты постоянно меняет цвет. Также за монетки можно использовать бонусы, которые находятся в верхней части экрана. Активируются они по нажатию. В самом верху будет появится шкала прогресса, которая поможет понять, насколько вы близки к завершению уровня. Также каждые 10 сек. Игра выбирает случайный тип игрового объекта, за уничтожение таких блоков вы получаете двойные очки и быстрее достигаете игровую цель.

4. Настройка, отладка и тестирование

4.1 Тестирование сохранения данных

Отладка большинства компонентов и функций игрового приложения проходила сразу в процессе их разработки.

В первую очередь была необходимость проверить работу базы данных, которая связана с проектом и в которой хранятся игровые данные. На том этапе создания, игры как таковой у меня ещё не было. Была сделана тестовая версия приложения, в котором можно было изменить количество монет и вывести на экран. Результаты сохранения данных оказались очень положительными. На телефоне, и на компьютеры данные создавались корректно. Новая база данных создавалась при самом первом запуске игры. Если хранилище gameDB.bin у игрока отсутствовало -- создаётся новая база, в которой автоматически добавляются нужные таблицы и данные в них, которые соответствуют началу игры.

В начале игры у игрока нет никаких монет на бонусы и все уровни, кроме первого, являются закрытыми и поиграть в них невозможно. Сделав специальные команды на обновления данных в хранилище и проверки доступности любых уровней, тщательно протестировав полученные результаты. Мы убедились в том, что база данных полностью соответствует нашим требованиям. Игровые данные сохраняются и могут по мере необходимости вновь загружаться для использования. После перезагрузки, перезапуска приложения, ничего не меняется и всё, чего добился игрок остаётся.

Все функции по работе с базой данных и игровыми сохранениями находятся в файле database.lua.

4.2 Модульное тестирование

Так, как моя игра включает в себя огромное количество различных файлов, тестировать пришлось множество модулей и классов, которые являлись важными составляющими игры.

В первую очередь тестирование проводилось в двух самых важных классах игры -- классе gem (игрового объекта) и классе grid (игровая сетка). В этих классах было множество различных методов от создания отдельных элементов на экране, до создания целых сеток размером с половину экрана, которая заполняется случайными игровыми объектами. При разработке данных классов было потрачено больше всего сил и времени, поэтому на окончательном этапе тестирования ошибок в них не обнаружилось. Все классы работают корректно, все методы класса вызываются правильно. Данные были точны. Все три в ряд совпадения, найденные в игровой сетке учитывались.

Когда основные два класса были просмотрены, было проведено тестирование вспомогательных классов selector (выбиратель игровых элементов) и класса explosion (взрыватель). Так, как эти классы гораздо меньше тех, что мы рассмотрели ранее. Их тестирование прошло быстро. Ошибок не обнаружилось. Селектор правильно запоминал выбранные элементы в процессе игры и в игровой логике всегда точно определялось, в какие стороны игрок может переставить текущий элемент.

В конце модульного тестирования мы убедились, что классы, описанные в файлах gem.lua, grid.lua, selector.lua, explosion.lua работоспособны.

4.3 Функциональное тестирование

На дальнейшем этапе тестирования необходимо было проверять множество отдельных компонентов на всех трёх игровых сценах. Прежде всего это включало в себя проверку работоспособности кнопок, которые управляют приложением.

Таблица 2 -- Функциональное тестирование

Функция

Результат

Меню: кнопка играть

Приложение переносит нас на экран выбора уровней.

Меню: кнопка выход

После нажатия данной кнопки игра заканчивает свою работу.

Экран выбора уровней: выбор мира

Выбор игрового мира, в котором находятся 5 уровней происходит корректно. Выше появляются именно те уровни, что находятся здесь.

Экран выбора уровней: кнопка назад

Возвращает нас в главное меню, где есть кнопка играть и выход.

Экран выбора уровней: выбор уровня для игры

Выбор уровня происходит корректно. Игровые цели подбираются безошибочно, цвета в игре так-же соответствуют своим «мирам».

Игровой экран: пауза

При установке паузы игра замирает. Можно покинуть уровень, или отключить её повторным нажатием.

Игровой экран: выход

Переносит нас на экран выбора уровней, где мы можем выбрать другой или выйти.

Игра: перестановка элементов

Кнопка возврата в меню выполняет свою функцию

Игра: падение новых элементов

Кнопка перехода на игровую сцену выполняет свою функцию

Игра: использование бонуса

Объекты генерируются на протяжении всего сеанса игры на рабочей области

Игра: завершение уровня

Появляется красочное изображение и салют, которые говорят о завершении.

Все виды тестирования показали, что игра работает корректно. В игровых мелочах не было замечено неправильной их работы. Все анимации в игре плавные, облака плывут корректно. Очков начисляется именно столько, сколько своими действиями заработал игрок. Тестирование показало, что приложение не вылетает и не сбоит.

4.4 Тестирование инсталляции и отображения элементов

Собранное в Marmalade SDK приложение корректно установилось и отображалось на нескольких телефонах. Было произведено тестирование как на моём личном телефоне (Philips W6610), так и на телефонах моих друзей. Результаты тестов показали, что правильные формулы расчёта расположения игровых элементов работают замечательно на всех экранах. «Замороженная» портретная ориентация так-же не слетает, когда мы наклоняем свой планшет или смартфон. Результаты, полученные на компьютере в специальном «симуляторе» также подтвердили, что информация является достоверной. Даже установление очень маленьких или высоких разрешений планшета показало то, что графика гибко «подстраивается» под размер нужного экрана и при этом элементы интерфейса не налезают друг на друга.

Рисунок 4.1 -- Главное меню игры в разрешении 320 на 480

5. Разработка руководства пользователя

5.1 Общее описание

Программа представляет из себя казуальное игровое приложение на платформу Android версии 3 и выше.

Программа предназначена исключительно для развлечения и интересного провождения небольшого количества свободного времени. Основная аудитория программы - люди, которым нравятся простые и не сложные игры, которые максимально легко освоить.

Игра не планирует отнимать у вас огромное количество времени, и полное прохождение всех её уровней займёт от 2х до 6-ти часов реального времени (максимум). Рекомендуется проходить данную игру не сразу целиком, а играя в неё периодически.

5.2 Описание игровых сцен

Интерфейсы каждой игровой сцены игры максимально просты для освоения и не нагружены лишней информацией и различными элементами.

В главном меню находится кнопка играть и кнопка выхода. На экране выбора уровней есть кнопка вернутся назад и есть возможность выбрать любые уровни для прохождения (если они у вас открыты). В дальнейшем, при выборе уровня вы попадаете в игру. Становятся активны бонусы в верхней части экрана, если вам хватает монеток для их активации. Все элементы на экране можно сдвигать. Пауза устанавливается нажатие на монетку в верхней части экрана, там же можно вернутся назад на экран выбора уровней. При его завершении вам откроется следующий (на 1 выше), если он ещё не открыт.

5.3 Описание игровых правил

Игровые правила. Можно сдвигать любой выбранный элемент в 4 стороны только в тех местах, где они не находятся на краю экрана. В остальных случаях часть вариантов будет закрыта. Двигать элементы по диагонали запрещено. Бонусы можно использовать только тогда, когда игра ждёт вашего хода. Нельзя будет вмешаться в игру, если она сейчас просчитывает результаты ваших действий и заполняет пустые клетки игровой сетки. Только тогда, когда совпадений не останется, игра вернёт вам управление и возможность использовать бонусы. Пауза приостанавливает любую реакцию игры и очищает специальные эффекты. Иногда после вашего хода дополнительно разрушается случайный элемент на игровом экране. Каждые 10 секунд игра сама будет выбирать особый элемент, за уничтожение которых вы получите дополнительные очки, что позволит вам быстрее завершить уровни. Цель любого уровня -- набрать определённое число очков. После выполнения игровой цели вы увидите небольшой салют и вас вернёт после него к экрану выбора уровней, где уже открылся следующий. Статус открытости уровней сохраняется сразу, как и количество монет. Игра запоминает все ваши игровые достижения сразу, как вы их получили, а не только тогда, когда вы захотите её выключить.

5.4 Пояснения по техническим вопросам

Звук приложения можно регулировать аппаратными клавишами громкости на вашем смартфоне.

Приложение можно в любой момент выключить через саму операционную систему. Иногда это даже проще, чем выходить в главное меню игры.

Для установки игра требует примерно 20 мегабайт на внутренней памяти телефона. В дальнейшем, игру можно будет перенести на sd карту для небольшой экономии места.

В игре нет никаких покупок за реальные деньги. Единственное, что при запуске приложения будет показываться небольшая реклама (из-за использования бесплатной версии движка, нельзя её вырезать). К моей реклама эта отношения не имеет.

ЗАКЛЮЧЕНИЕ

В процессе работы над ВКР был проведен подробный анализ аналогичных приложений, уже существующих на рынке. Были выделены основные их черты и особенности, часть которых в дальнейшем использовались и были добавлены в мой проект. Для создания игры был выбрал игровой движок, на котором реализована вся игровая механика, все её компоненты и игровые классы. Графическая составляющая приложения была создана с нуля при помощи средства Photoshop CS6. К игре была подключена небольшая база данных, сделанная на SQLlite. В ней сохраняются достижения игрока. После окончания разработки было проведено тестирование игрового приложения, по результатам которого не было обнаружено никаких ошибок. В дальнейшем, мой игровой проект может быть опубликован, чтобы помочь людям в разработке аналогичных приложений для смартфонов.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Marmalade Quick[Электронный ресурс]: Marmalade Documentation/ Marmalade Quick - Режим доступа: http://docs.madewithmarmalade.com/display/MD/Marmalade+Quick

2. Marmalade [Электронный ресурс]: Википедия/ Marmalade SDK - Режим доступа: https://ru.wikipedia.org/wiki/Marmalade_SDK

3. SQLite 3 [Электронный ресурс]: LuaSQLite/ SQLite 3 - Режим доступа: http://luasqlite.luaforge.net/lsqlite3.html

4. Lua [Электронный ресурс]: Википедия/ Lua - Режим доступа: https://ru.wikipedia.org/wiki/Lua

5. Справочное руководство по языку Lua [Электронный ресурс]: Lua/ Справочное руководство по Lua 5.1 - Режим доступа: http://www.lua.ru/doc/

6. Unity [Электронный ресурс]: Википедия/ Unity (игровой движок) - Режим доступа: https://ru.wikipedia.org/wiki/Unity

ПРИЛОЖЕНИЕ 1

(функции игровой сцены)

-- Создаём новый игровой раунд

function initRound()

-- Запускаем все игровые таймеры

gameScene:resumeTimers()

gameScene:resumeTweens()

-- Закрываем все таймеры игровой сцены

for i,v in ipairs(gameScene.timers) do

v:cancel()

gameScene.timers[i] = nil

end

-- Закрываем все анимации игровой сцены

for i,v in ipairs(gameScene.tweens) do

v:cancel()

gameScene.tweens[i] = nil

end

-- Восстанавливаем целую сетку

gemsGrid:regenerate()

-- Создаём игровую цель-гем, который меняется каждые 15 секунд

gameScene:addTimer(chooseTargetGem, 15, 0, 0)

-- Вспомогательные таймеры на удаление спрайтов и обновление монет

gameScene:addTimer(deleteHideSprites, 5, 0, 0)

gameScene:addTimer(moneyChanges, 0.5, 0, 0)

-- Запускем игру, устанавливая ожидание 1 хода

changeGameState(gameStates.waitingFirstGem)

end

-- Функция на проверку касания к игровым элементам

local touch = function(event)

if (director:getCurrentScene() == gameScene and event.phase == "ended") then

if (gameState == gameStates.roundOver) then

elseif (event.y < gridActualHeight) then

-- Получаем координаты

local grid_x, grid_y = gemsGrid:screenToGrid(event.x, event.y)

if (gameState == gameStates.waitingFirstGem) then

-- При ожидании 1 элемента, записываем 1

gridTouchesX[1] = grid_x

gridTouchesY[1] = grid_y

changeGameState(gameStates.waitingSecondGem)

elseif (gameState == gameStates.waitingSecondGem) then

- При ожидании 2 элемента, записываем 2

gridTouchesX[2] = grid_x

gridTouchesY[2] = grid_y

local dx = gridTouchesX[2] - gridTouchesX[1]

local dy = gridTouchesY[2] -- gridTouchesY[1]

- Начинаем перестановку

if ((dx == 0 and (dy == -1 or dy == 1)) or (dy == 0 and (dx == -1 or dx == 1))) then

-- Когда перестановка элементов возможна, переводим игру в режим, где высчитываются ходы

changeGameState(gameStates.thinking)

audio:playSound("audio/gem_swap.raw")

else

-- Переводим игру в режим ожидания 1 хода, если перестановка 3+ в ряд не получилась у игрока

changeGameState(gameStates.waitingFirstGem)

--audio:playSound("audio/gem_wrong.raw")

end

end

end

end

end

- Функция на использование бонуса

function TouchBonus_2(event)

if (event.phase=="ended") then

if (gameState == gameStates.waitingFirstGem or gameState == gameStates.waitingSecondGem) then

selector:hide()

-- Получаем количество монет наших

monets_player=check_player_money(1)

- Если монет хватает, активируем бонус и обновим число монет

if (monets_player>=cost[2]) then

add_player_money(1,-cost[2])

update_money_text()

gemsGrid:useBonus(3)

ChangeBonusState()

--Запускаем таймер, пока сетка обновляет удалённые элементы

gameScene:addTimer(startGemsFalling, 0.1, 1, 0)

end

end

end

end

-- Инициализируем игровой экран

function init()

-- Создаём основную сцену игры

gameScene = director:createScene()

--Создаём UI

createUI()

--Устанавливаем игровые цели

SetStartGameTargets(play_level)

--Перезагружаем цветовые спрайты в зависимости от уровня

gem.reload_colours(play_coub)

-- Убираем предыдущую сетку элементов

gemsGrid = nil

gemsGrid = grid.new(gemCountX, gemCountY, gridOffsetX, gridOffsetY, maxGemTypes)

-- Создаём селектор, выбирающий элементы

selector = nil

selector = selector.new()

-- Запускаем новую игровую сессию

newGame()

--Добавляем элементы на обновление (прикосновения к экрану)

system:addEventListener("touch", touch)

system:addEventListener("update", update)

end

ПРИЛОЖЕНИЕ 2

(блок-схема алгоритма)

Размещено на Allbest.ru


Подобные документы

  • Преимущества операционной системы Android. Проектирование интерфейса приложений. Визуальные редакторы и средства кроссплатформенной разработки. Оптимизация игрового процесса, выбор фреймворка и библиотек. Классификация и характеристика игр по жанрам.

    дипломная работа [2,6 M], добавлен 10.07.2017

  • Архитектура операционной системы Android. Инструменты Android-разработчика. Установка Java Development Kit, Eclipse IDE, Android SDK. Настройка Android Development Tools. Разработка программы для работы с документами и для осуществления оперативной связи.

    курсовая работа [2,0 M], добавлен 19.10.2014

  • Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.

    курсовая работа [1,6 M], добавлен 19.04.2017

  • Общая характеристика системы Android, обзор его аналогов. Необходимые компоненты для начала работы в Android. Настройка конфигураций Ubuntu. Написание script-ов, упрощающих генерацию Linux. Отладка и тестирование программы на плате i.MX53 фирмы freescale.

    курсовая работа [1,1 M], добавлен 12.10.2012

  • Анализ целевой аудитории. Функциональные характеристики пользовательского приложения. Разработка алгоритмов и интерфейса программного продукта, функций рабочей области. Написание скриптов на языке C#. Тестирование программы методом чёрного ящика.

    дипломная работа [1,5 M], добавлен 09.11.2016

  • Изучение существующих подходов к использованию компьютерных игр в образовательном процессе. Разработка и реализация проекта игрового обучающего приложения на мобильной платформе. Выбор платформы и средств реализации игрового обучающего приложения.

    дипломная работа [3,4 M], добавлен 12.08.2017

  • Современное состояние рынка мобильных приложений. Основные подходы к разработке мобильных приложений. Обоснование выбора целевой группы потребителей приложения. Этапы проектирования и разработки мобильного приложения для операционной системы Android.

    курсовая работа [987,1 K], добавлен 27.06.2019

  • Первое устройство, работающее под управлением Android. Приложения под операционную систему Android. Формат установочных пакетов. Разработка приложений на языке Java. Шаблоны основных пакетов и компонентов Android. Сборка приложений, основанная на Gradle.

    курсовая работа [492,0 K], добавлен 08.02.2016

  • Разработка клиент-серверного игрового приложения на примере игры в шашки для мобильных устройств на базе операционной системы Android. Обзор мобильных платформ. Экраны приложения и их взаимодействие. Графический интерфейс, руководство пользователя.

    курсовая работа [2,6 M], добавлен 15.06.2013

  • Общий обзор проблемы безопасности ОС Android. Развитие индустрии по борьбе с вредоносным и мошенническим ПО. Разработка Системы ранжирования уровней опасности Android приложений. Выбор производителя и типа СУБД. Тестирование программного обеспечения.

    дипломная работа [2,7 M], добавлен 13.02.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.