Реализация трехмерной модели для мобильной платформы Android

Автор работы: Пользователь скрыл имя, 24 Мая 2013 в 19:54, курсовая работа

Описание работы

Результатом этой курсовой работы является демонстрационная программа «Трехмерная модель куба для мобильной платформы Android».
В первой главе курсовой работы были изучены основные средства, используемые для разработки мобильных приложений, в частности, язык программирования Java, среда разработки Eclipse, а также наибольшее внимание уделено библиотеке OpenGL ES для программирования под Android.
Во второй части рассмотрена структура проекта. для наиболее целостного преставление о программирования для данной мобильной платформы.
Третья глава посвящена пошаговому описанию реализации модели куба.
В данной курсовой работе рассмотрена модель куба. В дальнейшем пользуясь полученными знаниями возможно построение других трехмерных моделей.

Содержание работы

Введение………………………………………………………………………………………3
Постановка задачи……………………………………………………………………………4
I. Описание технических средств реализации приложения под мобильную платформу Android.
1.1 Разработка под Android………………………………………………………………..5
1.2 Среда разработки Eclipse………………………………………………………………5
1.3 Android SDK и JDK…………………………………………………………………….7
1.4 Особенности графики .OpenGL ES……………………………………………………7
II. Структура проекта…………………………………………………………………………9
III. Реализация трехмерной модели куба.
3.1 Построение трехмерной модели куба………………………………………………...11
3.2 Движение 3D объектов………………………………………………………………...12
3.3 Управление моделью…………………………………………………………...14
Заключение……………………………………………………………………………………15
Список литературы…………………………………………………………………………...16

Файлы: 1 файл

Динамический куб для андроид.docx

— 200.13 Кб (Скачать файл)

МИНОБРНАУКИ РОССИИ

 

Федеральное государственное  бюджетное образовательное

учреждение высшего профессионального  образования

“Ярославский государственный  университет им. П.Г. Демидова”

 

 

Кафедра «Математического анализа»

 

Курсовая работа

«Реализация трехмерной модели для мобильной платформы Android»

 

 

 

Научный руководитель

к.ф.-м. н.

__________Ухалов А. Ю.

«    »_____________2012г.

 

 

 

Студентка группы М-41СО

_________Максимова Е.Г.

«   »______________2012г.

 

 

Ярославль 2012г.

Оглавление.

Введение………………………………………………………………………………………3

Постановка задачи……………………………………………………………………………4

  1. Описание технических средств реализации приложения под мобильную платформу Android.
    1. Разработка под Android………………………………………………………………..5
    2. Среда разработки Eclipse………………………………………………………………5
    3. Android SDK и JDK…………………………………………………………………….7
    4. Особенности графики .OpenGL ES……………………………………………………7
  2. Структура проекта…………………………………………………………………………9
  3. Реализация трехмерной модели куба.
    1. Построение трехмерной модели куба………………………………………………...11
    2. Движение 3D объектов………………………………………………………………...12
    3. Управление моделью…………………………………………………………...14

Заключение……………………………………………………………………………………15

Список литературы…………………………………………………………………………...16

 

 

 

Введение.

Android — операционная система для мобильных телефонов, основанная на ядре Linux.

Это система довольна, молода, первое устройство (HTC T-Mobile G1) с Android была презентовано в сентебре 2008 года. Для сравнения первое устройство с WinMobile – апрель 2000, Symbian Ltd была основана в 1998, а первые смартфоны с этой системой на борту появились также 2000 году. Вернемся к Android, изначально эта система разрабатывалась компанией Android Inc., которую затем купила Google. Впоследствии, Google инициировала создание Open Handset Alliance (OHA), которая сейчас и занимается поддержкой и дальнейшим развитием платформы. На данный момент в OHA входит 65 компаний, включающих в себя производителей мобильных телефонов, разработчиков программного обеспечения, некоторых мобильных поставщиков и изготовителей чипов, среди них: Google, HTC, Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile, Nvidia.

Платформа Android уже очень популярна на рынке мобильных устройств Соединенных

Штатов, так согласно данным исследовательской конторы NPD Group в первом квартале

2010 года Android OS обошла iPhone OS по популярности. По данным NPD, на сегодняшний день у Google 28% рынка, что ставит их на второе место после Research in Motion (36%), iPhone OS находится на третьем месте с 21%[1].

Android используется не только, как мобильная операционная система . Например,

шведская компания People of Lava анонсировала телевизор на платформе Android, также на Mobile World Congress 2010 было анонсировано несколько планшетов и нетбуков с Android в качестве операционной системы, созданы роботы, управляющим устройством которых являются смартфоны с Android OS. Так же на Google IO 2010, было анонсировано Google TV, основанное тоже на Android OS

 

Постановка задачи.

 Была поставлена задача, разработать программу, позволяющую выводить трехмерные модели на платформе Android.

Для выполнения поставленной задачи, следует выполнить следующие:

    • Определить и изучить технические средства, применяемые для разработки приложений под мобильную платформу Android.
    • Изучить графическую библиотеку OpenGL ES.
    • Изучить язык программирования Java.

 

  1. Описание технических средств реализации приложения под мобильную платформу Android.

1.1 Разработка под Андроид.

Приложения для  Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik . Dalvik Virtual Machine — основанная на регистрах виртуальная машина, она оптимизирована для низкого потребления памяти. Программы для Dalvik пишутся на языке Java. Несмотря на это, стандартный байт-код Java не используется, вместо него Dalvik VM исполняет байткод собственного формата. После компиляции исходных текстов программы на Java (при помощи javac) утилита dx из «Android SDK» преобразует  .class файлы в формат .dex (Подробное описание dex формата http://www.dalvikvm.com/ ), пригодный для интерпретации в Dalvik.

В версии Android 1.5 разработчики добавили Native Development Kit который позволяет писать собственные низкоуровневые модули для системы на языке C/С++, опираясь на стандартные linux-библиотеки.

1.2 Среда разработки Eclipse.

Eclipse (от англ. затмение) — свободный фреймворк для разработки модульных кроссплатформенных приложений. Разрабатывается и поддерживается Eclipse Foundation.

Наиболее известные приложения на основе Eclipse Platform — различные «Eclipse IDE» для разработки ПО на множестве языков (например, наиболее популярный «Java IDE», поддерживавшийся изначально, не полагается на какие-либо закрытые расширения, использует стандартный открытый API для доступа к Eclipse Platform).

Первоначально Eclipse разрабатывалась фирмой IBM как преемник среды разработки IBM VisualAge. По сведениям IBM, проектирование и разработка стоили 40 миллионов долларов. Исходный код был полностью открыт и сделан доступным после того, как Eclipse был передан независимому от IBM сообществу.

В Eclipse 3.0 (2003 год) были выбраны спецификации сервисной платформы OSGi как архитектура времени выполнения.

Последняя стабильная версия программы — 3.5 (Galileo). Она, как и предшествующая ей версия 3.4 (Ganymede), поддерживает новые возможности, появившиеся в Java 6.0, содержит обновления ключевой OSGi-модели компонентов Equinox.

Изначально проект разрабатывался в IBM как корпоративный стандарт IDE для разработки на разных языках под платформы IBM. Потом проект был  переименован в Eclipse и предоставлен для дальнейшего развития сообществу.

Eclipse — в первую очередь полноценная Java IDE, нацеленная на групповую разработку, снабжённая средствами для работы с системами контроля версий (поддержка CVS входит в поставку Eclipse, активно развиваются несколько вариантов SVN модулей, существует поддержка VSS и других). В силу бесплатности и высокого качества во многих организациях Eclipse — корпоративный стандарт для разработки приложений.

Второе назначение Eclipse — служить платформой для разработки новых расширений (чем и завоевал популярность — любой разработчик может расширить Eclipse своими модулями). Таковыми стали C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, COBOL, FORTRAN, PHP средства от различных разработчиков. Множество расширений дополняет Eclipse менеджерами для работы с базами данных, серверами приложений и др.

С версии 3.0 Eclipse стал не монолитной поддерживающей расширения IDE, а набором расширений. В основе лежат фреймворк OSGi и SWT/JFace, на основе которых разработан следующий слой — платформа для разработки полноценных клиентских приложений RCP (Rich Client Platform). Платформа RCP служит основой для RCP-приложений, таких как Azureus и File Arranger. Следующий слой — платформа Eclipse, представляющая собой набор расширений RCP — редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT).

Eclipse написана на Java, потому является платформо-независимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ (см. ниже). Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью зависит от нижележащей платформы (операционной системы), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает проблемы совместимости и устойчивости приложений на разных платформах.

1.3. Android SDK и JDK.

Android SDK (Software Development Kit) представляет из себя эмулятор операционной системы Android, которую вы можете поставить на ваш обычный ПК, независимо от того, какая операционная на нем стоит (программа практически кроссплатформенная)

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

Android JDK (Java Development Kit) – это в свою очередь целый набор инструментов, комплект разработчика приложений на языке Java. На самом деле, JRE также входит в состав JDK, равно как и различные стандартные библиотеки классов Java, компилятор javac, документация, примеры кода и разнообразные служебные утилиты. Весь этот набор распространяется свободно и имеет версии для различных ОС,  поэтому любой может его скачать и использовать. В JDK не входит интегрированная среда разработки, предполагается, что её разработчик будет устанавливать отдельно. Существуют многочисленные IDE для Java-разработки, например, NetBeans, IntelliJ IDEA, Borland JBuilder и другие. Но мы оговорили ранее, что для разработки приложений под Android мы выберем Eclipse IDE.

1.4. Особенности  графики. OpenGL ES.

Android поддерживает высокую производительность 2D-и 3D-графики с открытыми Graphics Library (OpenGL), в частности, OpenGL ES API. OpenGL представляет собой кросс-платформенное графики API, который определяет стандартный интерфейс программного обеспечения для 3D аппаратной обработки графики. OpenGL ES представляет собой аромат спецификации OpenGL предназначен для встраиваемых устройств.OpenGL ES 1.0 и 1.1 спецификациям API были поддержаны с Android 1.0. Начиная с Android 2.2 (API Уровень 8), в рамках поддерживает OpenGL ES 2.0 API спецификации. Android поддерживает OpenGL и через API базы и родной комплект развития (НДК). В этом разделе рассматриваются интерфейс Android рамки. Для получения дополнительной информации о NDK см. Android NDK.

Есть два основополагающих класса в рамках Android, которые позволяют создавать и управлять графикой с OpenGL ES API: GLSurfaceView и GLSurfaceView.Renderer. Если целью является использование OpenGL в приложениях для Android, понимая, как реализовать эти классы в деятельность должна быть ваша первая цель.

GLSurfaceView - класс, в котором можно рисовать и манипулировать объектами с использованием OpenGL API-вызовов и аналогичные по функциям SurfaceView. Можно использовать этот класс, создав экземпляр GLSurfaceView и добавив к нему Renderer.Чтобы захватить события с сенсорным экраном, вы должны расширить класс GLSurfaceView для реализации сенсорного слушателей. GLSurfaceView.Renderer определяет методы, необходимые для составления графика в OpenGL GLSurfaceView. Нужно обеспечить реализацию этого интерфейса как отдельный класс и прикрепить его к GLSurfaceView например, с использованием

Интерфейс GLSurfaceView.Renderer требует реализации следующих способов:

onSurfaceCreated (): система вызывает этот метод один раз, при создании GLSurfaceView. Используйте этот метод для выполнения действий, которые должны произойти только один раз, такие как установка параметров окружающей среды OpenGL или OpenGL инициализация графических объектов.

onDrawFrame (): система вызывает этот метод на каждой перерисовки GLSurfaceView. Используйте этот метод в качестве основной точки выполнения для рисования (и повторно рисунок) графических объектов.

onSurfaceChanged (): система вызывает этот метод, когда геометрия GLSurfaceView изменений, включая изменения в размер GLSurfaceView или ориентации экрана устройства. Например, система вызывает этот метод, когда устройство изменения с книжной на альбомную ориентацию. Используйте этот метод, чтобы реагировать на изменения в контейнере GLSurfaceView.

 

 

 

 

 

  1. Структура проекта.

Папка src содержит исходный код приложения. Сom.blogspot.startgoogleandroid - это package, наименование которого, указывается при создании проекта.

Main.java - файл исходного кода, в нем описан класс главной Activity. Package Explorer отображает структуру проекта, которая создается в рабочем каталоге Eclipse:

Так, например, если перейти  в рабочий каталог и раскрыть папку src. В ней будет папка com, которая содержит вложенную папку blogspot, которая в свою очередь содержит вложенную папку startgoogleandroid и в которой находится файл Main.java.

Папка gen, содержит java файлы, создаваемые автоматически Android Development Tolls (ADT)  в процессе разработки приложения. Файлы, находящиеся в папке gen не должны изменяться в ручную:

BuildConfig.java - содержит константу DEBUG, значение константы устанавливается автоматически в зависимости от того, является ли версия текущей сборки приложения, конечной или промежуточной.  Константа позволяет запускать код только в режиме отладки. Файл BuildConfig.java был добавлен после выхода ADT revision 17:

 

/** Automatically generated file. DO NOT MODIFY */

package com.blogspot.startgoogleandroid;

public final class BuildConfig {

public final static boolean DEBUG = true;

}

 

R.java - хранит уникальные идентификаторы для всех ресурсов приложения (ID). Имена этих ID - констант совпадают с именами файлов ресурсов. В папке ресурсов приложения есть еще один интересный файл: main.xml. Файл main.xml описывает компоновку элементов экрана.

Android 2.2 - содержит подключенные библиотеки.

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

Информация о работе Реализация трехмерной модели для мобильной платформы Android