Android — БД для android игры


Содержание

Пишем игру для Andro > Этот урок начинает серию статей, посвященных написанию аркадных игр для Android. За основу был взят цикл, который написал и опубликовалв своем блогеTamas Jano. Материал ориентирован, прежде всего, на начинающих программистов, которые хотят попробовать свои силы в создании игр для Android. Я ставлю перед собой цель создать у нас на сайте максимально понятный и доступный учебник для молодой русскоязычной аудитории, поэтому очень надеюсь на вашу критику, вопросы и комментарии. Опубликованный в этом цикле материал будет постоянно перерабатываться с учетом ваших вопросов, пожеланий и замечаний. Надеюсь, что вместе мы сможем успешно осуществить этот небольшой эксперимент.

Идея и архитектура

Прежде чем переходить непосредственно к программированию, давайте определимся с нашими задачами и опишем в общих чертах нашу будущую игру. Идея проста: главный герой борется с ордами роботов, которые хотят его уничтожить. У него есть три жизни и лазерное ружье. Роботы не умеют стрелять. Все что они могут — поймать нашего героя и оторвать ему голову. ну или что-нибудь еще. Управление персонажем осуществляется с помощью двух «сенсорных джойстиков» Вы наверняка встречали их в подобных играх. В левом нижнем углу будет размещен джойстик, отвечающий за перемещение героя. В правом нижнем углу — за оружие.

Смоделируем игровую ситуацию. Наш персонаж находится в центре экрана. Роботы каждую 1/10 секунды приближаются к нему. каждую десятую секунду мы проверяем также не произошло ли касание экрана. Если произошло — двигаем наш персонаж в необходимом направлении или делаем выстрел. если выстрел сделан, каждый тик (1/10 секунды) мы проверяем столкновение пули с врагами. Если пуля попала в робота — то и робот и пуля взрываются, если нет — роботы и пуля перемещаются на новые позиции (робот перемещается на 5 пикселей за тик, а пуля — на 50 пикселей). Мы также проверяем не поймал ли робот нашего героя. Если поймал — игра заканчивается.

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

  1. Модуль управления. Здесь считываются координаты касания экрана.
  2. Игровой движок. Здесь мы должны обновить состояние игровых объектов, то есть вычислить их новые координаты, проверить здоровье, столкновения и тому подобное.
  3. Аудио модуль.
  4. Графический модуль. Здесь на основании текущего состояния формируется и выводится на экран новый кадр.

Давайте более детально рассмотрим наши модули.

Модуль управления

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

Игровой движок

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

Давайте рассмотрим взаимодействие модуля управления и игрового движка. На представленном выше рисунке показан круг-контроллер. Светлое зеленое пятно символизирует область касания. Модуль управления сообщает игровому движку координаты касания (dx и dy — расстояния в пикселях от центра круга). На основании этих координат игровой движок вычисляет направление и скорость движения нашего героя. Например, если dx>0, наш персонаж движется вправо, eсли dy>0 — в верх.

Аудио модуль

Этот модуль управляет проигрывание звука в зависимости от игровой ситуации. Звуки могут генерировать разные игровые объекты, но поскольку число звуковых каналов ограничено (число звуковых каналов соответствует числу звуковых файлов, которые могут быть проиграны одновременно), аудио модуль должен решать какие звуки проигрывать, а какие нет. Например, робот представляет огромную опасность для нашего героя, поэтому мы должны привлечь внимание игрока к его появлению, например включить звук сирены, и конечно, мы просто обязаны озвучивать все выстрелы нашего персонажа.

Графический модуль

Этот модуль отвечает за вывод игровой ситуации на экран телефона. В Android существует несколько способов формирования изображения на экране. Можно рисовать прямо на canvas, полученный от View или использовать отдельный графический буффер и вы, а затем передавать его View, а можно воспользоваться возможностями библиотеки OpenGL. Полезно при разработке игры постоянно измерять FPS — число кадров в секунду, которые выдает ваш графический движок. Величина в 30 FPS означает, что за одну секунду наша программа успевает 30 раз обновить экран. Забегая вперед скажу, что для мобильного устройства 30 FPS более чем достойный показатель.

Создаем проект-заготовку для будущей Andro >Я не буду здесь подробно расписывать процесс установки Android SDK и Eclipse, за рамками повествования я оставлю и элементарные действия по созданию Android проекта. В интернете валяется огромное количество уроков и статей, посвященных этой теме.

Создайте новый проект. В поле Project Name введитеDroidz. В качестве целевой платформы выберите Android 2.2 или выше. В Package Name — «ru.mobilab.gamesample«. Не забудьте поставить галочку около Create Activity. В качестве имени главной activity введитеDroidzActivity.

Откройте файл src/ru.mobilab.gamesample/DroidzActivity.java

Метод onCreate вызывается при создании activity во время запуска приложения. Этот метод можно рассматривать, как точу входа в программу. Класс R.java автоматически генерируется Eclipse и содержит в себе ссылки на ресурсы. Каждый раз, когда вы изменяете ресурсы в Eclipse класс R пересобирается.

Главный игровой цикл

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

Как вы помните, в Android все происходит внутри Activity. Activity создает View — объект, где происходит все самое интересное. Именно через него мы можем получить информацию о касаниях экрана, здесь же можно вывести картинку на экран.

Давайте откроем файл DroidzActivity.java. В конструкторе класса вы увидите строчку

эта строка выбирает текущий объект View для Activity. Давайте создадим новый объект для View. Наиболее простым способом получения View — создать собственный класс на основании SurfaceView. В нашем классе мы реализуем интерфейс SurfaceHolder.Callback, чтобы ускорить доступ к изменениям поверхности, например когда она уничтожается при изменении ориентации устройства.

В приведенном выше листинге показан шаблон класса, которые нам предстоит реализовать. Давайте более внимательно посмотрим на содержание конструктора. Строка

Устанавливает текущий класс (MainGamePanel) как обработчик событий от поверхности.

Эта строка делает наш класс фокусируемым. Это означает, что он может получать фокус, а значит и события.

Давайте создадим поток, внутри которого собственно и будет реализован наш игровой цикл. Разделение игры на несколько параллельно выполняющихся потоков — общепринятая в современном геймдеве практика. Создадим для нашего потока класс MainThread.java

Как видите, этот класс существенно проще предыдущего. Внутри мы переопределили метод run(). Поток выполняется до тех пор, пока выполняется этот метод, поэтому мы организовали внутри него бесконечный цикл. Мы добавили логическую переменную running, которая служит индикатором выхода из цикла. Теперь чтобы завершить поток, нужно просто где-то изменить значение этой переменной на false.

После того, как мы создали класс потока, его нужно запустить. Давайте запускать его при загрузке экрана. Изменим класс MainGamePanel

Мы объявили объект thread

и создали его в конструкторе

в методе surfaceCreated мы установили флаг running в значение true и запустили поток. К этому времени объект thread уже благополучно создан и можем без опасений запускать его.

Метод surfaceDestroyed вызывается перед закрытием поверхности. Здесь недостаточно просто снять флаг running. Мы должны убедиться, что поток действительно закрылся. Мы просто блокируем поток и ждем, пока он не умрет.

Добавляем взаимодействие с экраном

Чтобы показать, как в Android обработать касания, напишем небольшой пример. Будем выходить из программы, когда пользователь коснется нижней части экрана. Если касание произошло где-то выше — будем просто выводить в лог соответствующие координаты. Добавим в класс MainThread следующие строки:

тем самым мы определили переменные gamePanel и surfaceHolder, взяв соответствующие значения из параметров конструктора. Нам нужно запомнить эти значения, чтобы потом иметь возможность блокировать поверхность на время рисования, а это можно сделать только через surfaceHolder.

Измените строку в классе MainGamePanel, добабвив в конструктор вновь объявленные параметры

Мы передаем текущий обработчик и панель в новый конструктор. Это позволит нам иметь к ней доступ из потока. В gamePanel мы создадим метод update и будем переключать его из потока, но пока оставим все как есть.

Логирование

Ниже мы напишем вспомогательный код, осуществляющий логирование — запись специальных отладочных строк с текстом, отражающих состояние нашей программы, в специальный файл, который потом можно просмотреть и попытаться понять, что происходило в программе. добавим константу TAG в класс MainThread. Каждый класс будет у нас иметь собственную константу с именем TAG, которая будет содержать название соответствующего класса. Бы будем использовать Android logging framework, чтобы вести логирование, в рамках этой библиотеки каждый лог должен иметь два параметра. Первый параметр определяет место, откуда записан лог. Именно для этих целей мы и создали константу TAG. Второй параметр — собственно сообщение, которое мы хотим записать в лог. Использование имен классов в качестве первого параметра — довольно распространенная в среде java программистов практика.

Цукерберг рекомендует:  Полупрозрачный фиксированный блок

Чтобы посмотреть записанные в процессе выполнения программы логи нужно выбрать меню
Windows -> Show View -> Other…
а затем в открывшемся диалоге
Android -> LogCat
В открывшемся окне можно не только просматривать логи, но и осуществлять фильтрацию и поиск.

Вернемся к нашему коду. Внесем изменения в MainThread.java

Как видите, мы определили TAG и вызвали внутри метода run команду Log, которая делает соответствующую запись в лог файле. Мы выводим в лог значение переменной tickCount, которая фактически является счетчиком игрового цикла и показывает сколько раз успел выполниться игровой цикл за время работы программы

Перейдем к файлу MainGamePanel.java и найдем метод onTouchEvent, который является обработчиком касаний экрана.

Сначала мы проверяем произошло ли событие касания экрана (MotionEvent.ACTION_DOWN). Если произошло, проверяем координату y и если она находится в нижней части экрана (50 пикселей снизу), мы посылаем потоку команду на завершение (установив переменную running в false), а затем вызываем метод finish() для главной Activity, который закрывает всю нашу программу.

Замечание. Начало системы координат у экрана находится в левом верхнем углу. Ось y направлена вниз, ось x — вправо. Ширину и высоту экрана можно получить с помощью методов getWidth() и getHeight() соответственно.

Изменим DroidzActivity.java, добавив команды записи в лог

Мы добавили строки, переводящие приложение в полноэкранный режим и добавили команды записи в лог в методах onDestroy() и onStop().

Давайте запустим приложение. После запуска Вы должны увидеть черный экран. Пощелкайте несколько раз по верхней части экрана, а затем по нижней. программа закроется. Самое время проверить лог.

Просмотрев лог вы получите четкое представление о порядке запуска методов. Вы также можете увидеть сколько раз за время работы программы успел выполниться игровой цикл. Эта цифра ни о чем не говорит, в следующий раз мы выведем в лог более полезную информацию: FPS и UPS (обновлений в секунду).

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

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

Перевод и адаптация:Александр Ледков
Источник: Andro >

Заметки о разработке игры под Android

Добрый вечер, пикабу. Настало и мое время рассказать про то, как мы делали свою игру.

Из имеющегося в распоряжении — 2 студента-программиста, неслабый энтузиазм и устойчивое желание делать игры. Идея сделать игру назревала давно, и вот настало время попробовать свои силы. В качестве первого проекта было решено попробовать разработать несложную в механике и реализации головоломку, основная цель — научиться работать в Android studio, изучить Java и Google API, а так же попробовать опубликоваться в Google Play. Была придумана концепция игры, в которой имеется игровое поле 6х6 клеток, каждой из которых соответствует цифра [1-9] или знак арифметической операции [+,-,*]. Задача игрока — непрерывно проводя пальцем собрать из клеток арифметическое выражение, по значению совпадающее с «целью», к примеру, собрать комбинацию «3+5*2», когда имеется «цель» — «13». Игровой процесс:

Итак, была установлена студия, настроена система контроля версий через bitbucket и дело закипело. Двигалось не очень торопливо, в основном из-за того, что разработку приходилось совмещать с учебой и написанием дипломной работы. Первый прототип появился примерно через неделю и был вполне играбелен, хоть и обладал значительным количеством просчетов и упущений. А так же довольно убогим интерфейсом. :D

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

В дальнейшем мы основательно поработали над главным меню и цветовой гаммой, в результате получилось что-то такое:

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

На момент, когда еще не было нормального названия игры, она имела рабочее название — Numerical Project. Однако, когда для дальнейшего тестирования подошло время регистрировать аккаунт разработчика в Play, путем мозгового штурма было выбрано название игры — Plus и название компании (да, нашей мегакорпорации из двух человек) — KeyCode, после чего сразу же сделана анимация сплэш-экрана:

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

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

Так как главная цель разработки — обучение, для большего охвата «новоизученного» было решено внедрить в игру Google Games API, а именно — таблицы рекордов, достижения, мультиплеер (ага, таковой теперь имеется!), а как раз для этого и необходима регистрация аккаунта разработчика.

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

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


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

В качетсве оптимизации данных моментов выступило введение определенных правил на генерацию поля (абзац для людей с иммунитетом к скучному тексту):

— вероятность появления конкретного знака зависит от количества таких знаков на поле

— если среднее геометрическое чисел вокруг знака умножения превышает определенное значение — либо менять умножение на сложение/вычитание, либо уменьшать цифры. Используется среднее геометрическое, а не арифметическое, потому что, допустим, при равном среднем арифметическом, 8*2 (среднее геометрическое — 4) является более удобной для использования комбинацией, чем 5*5 (среднее геометрическое — 5).

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

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

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

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

Спасибо за внимание! Будем рады ответить на ваши вопросы. Ссылка на игру в комментариях.

Android — БД для android игры

В этой статье посмотрим как хранить данные в базе данных. Система android предоставляет полную поддержку базы данных SQLite. Создадим простое приложение, в котором можно будет создавать, редактировать и удалять записи. Каждая такая запись содержит дату, текст и иконку.

Для работы с базой нам понадобятся два класса:
SQLiteOpenHelper — класс для создания и обновления базы данных. В приложении необходимо будет создать класс-наследник от SQLiteOpenHelper и описать в нем два метода:
onCreate(SQLiteDatabase db) — Вызывается один раз при создании БД.
onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion) — вызывается когда необходимо обновить БД (в данном случае под обновлением имеется в виду не обновление записей, а обновление структуры базы данных)
Для приложения можно создать несколько БД, все они будут доступны из любого класса программы, но не доступны для других программ.

SQLiteDatabase — класс, который предоставляет методы для добавления, обновления, удаления и выборки данных из БД. Основными методами являются:

long insert(String table, String nullColumnHack, ContentValues values) — добавление строки в таблицу

table — название таблицы

nullColumnHack — SQL не позволяет вставлять полностью пустую строку без названия хотя бы одного столбца. То есть выражение:

INSERT INTO my_table ( my_column ) VALUES ( NULL ) ;

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

values — структура (ассоциативный массив) содержащая данные которые необходимо вставить. Ключом массива является название столбца, а значением — значение столбца.

Возвращает метод id добавленной строки или -1 если произошла ошибка (например, а случае пустого values строка добавлена не будет и метод вернет -1).

int update(String table, ContentValues values, String whereClause, String[] whereArgs) — обновление одной или нескольких строк

table и values — аналогично как и в insert, название таблицы и значения

whereClause и whereArgs — используются для построения выражения WHERE в sql. Причем в строке whereClause пишется само выражение, например «column_one = ? AND column_two Cursor содержит все строки, которые выбираются из БД, а также имеет понятие итератора (указателя), который указывает на одну из строк. То есть в каждый момент времени мы можем прочитать значения только одной строки, затем передвигаем итератор на другую строку и читаем ее значения. Метод int getCount() — возвращает общее количество строк.

Цукерберг рекомендует:  15 правил формирования ссылок для людей с ограниченными возможностями

Также в классе есть методы для передвижения итератора:
boolean moveToFirst()
boolean moveToLast()
boolean moveToNext()
boolean moveToPosition(int position)
boolean moveToPrevious()

Проверки положения итератора:
boolean isAfterLast()
boolean isBeforeFirst()
boolean isFirst()
boolean isLast()
int getPosition()

И методы возвращающее значение столбца в текущей строке
abstract double getDouble(int columnIndex)
abstract float getFloat(int columnIndex)
abstract int getInt(int columnIndex)
abstract long getLong(int columnIndex)
abstract short getShort(int columnIndex)
abstract String getString(int columnIndex)
byte[] getBlob(int columnIndex)

На этом теория заканчивается, теперь попробуем это на практике.

2. В нашем приложении будет 4 класса. Два из них — наследники класса Activity. Первый (у меня он называется SimpleDBActivity) это список записей (см. скришот выше). Второй (AddActivity) — окно для добавления и обновления записи.

В целях экономии места их код и разметку приводить не буду, можно посмотреть в исходниках. Как сделать список можно почитать тут, а про галерею картинок тут.
Третий класс (DBConnector) — класс для работы с БД. В нем будет создаваться база данных, а также будут методы для добавления/обновлени/удаления записей в таблице. Четвертый (MyData) вспомогательный класс описывающий каждую запись списка (и строки в БД). В принципе без него можно обойтись, но с ним код выглядит более понятным и удобочитаемым.

Создание базы данных
3. Начнем как раз с этого четвертого класса. Это просто класс java, который ничего явно не наследует, но реализует интерфейс Serializable, для того чтобы экземпляры класса можно было сериализовать

Класс очень простой и не требует никаких пояснений.

4. Перейдем к DBConnector, он также является просто классом java и ничего не наследует. В каждой нашей записи будет 4 поля: дата, название, иконка, а также уникальный идентификатор. В системе android есть соглашение, что поле с идентификатором должно называться «_id».

В классе мы описываем константы для имени и версии БД, названия таблиц и их столбцов. Создаем класс-наследник от SQLiteOpenHelper. В методе onCreate() класса OpenHelper создаем таблицу MyData. В методе onUograde() удаляем таблицу и создаем ее занова. В реальных приложениях обновления структуры БД должно происходить без потери данных, но нам сейчас это не так важно.

В SQLite нет типа данных «Дата», поэтому дату можно хранить в текстовом виде (например в формате «YYYY-MM-DD HH:MM:SS.SSS») или числовом (unixtime — количество секунд с 01.01.1970). Я буду хранить даты в типе long, это не совсем unixtime, это количество миллисекунд с 01.01.1970, но именно это значение возвращает метод Date.getTime().

В конструкторе класса DBConnector создается экземпляр класса SQLiteDatabase, с помощью которого мы сможем добавлять и удалять записи в БД.

Теперь в основном классе SimpleDBActivity (Activity со списком записей) в методе onCreate() можно создать экземпляр класса DBConnector.

  1. DBConnector mDBConnector = new DBConnector ( this ) ;

Запустим нашу программу, она пока ничего не умеет, но базу данных simple.db с единственной таблицей MyData уже создает.

Просмотр баз данных на устройстве
5. Подключимся к устройству. Для этого используется программа adb входящая в состав android SDK (находится в директории platform-tools/). Подключим устройство к компьютеру (или запустим эмулятор) и посмотрим доступные устройства командой:

Где emulator-5554 — название устройства, а shell — команда, которую необходимо выполнить.

После подключения, можно зайти в базу данных. Делается это командой sqlite3, после которой можно указать название необходимой базы данных. Базы данных приложений хранятся в директориях /data/data/

/databases/. Подключимся к нашей базе данных

Советую набрать «.help» и посмотреть список весьма полезных команд, которые есть в sqlite. Например команда «.tables» выведет список таблиц в базе данных.

Работа с базой данных
6. Для работы с базой данных надо добавить в класс DBConnector методы insert(), update(), delete() и т.д.

В методы insert() и update() мы передаем экземпляр нашего класса MyData. Причем в методе insert() у объекта MyData поле id равно null, так как при добавлении sqlite сама сгенерирует его значение.

Класс для работы с БД готов, теперь можно его использовать. В классе SimpleDBActivity в методе onCreate() напишем:

А сам адаптер списка выглядит как-то так:

Мы передаем в адаптер массив объектов MyData и затем выводим их. Более подробно про адапетеры списков читать тут.

В статье разобраны основные методы по работе с БД, более подробное их использование можно посмотреть в исходниках.

Базы данных Mob > Подробности Категория: Программы | Скачано раз: 2172

Приложение для создания многоцелевых реляционных баз данных для Windows 10 и Android
Базы данных MobiDB позволяет создавать сложные реляционные базы данных с множеством таблиц и связей между ними, настраивать внешний вид форм для ввода информации и таблиц, экспортировать записи в CSV и PDF и распечатывать их, а также синхронизировать данные между разными устройствами и платформами и предоставлять доступ к базам данных для совместной работы.

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

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

Импорт, экспорт и печать
У пользователей есть возможность заполнять таблицы, импортируя данные из CSV файлов. Введенные данные можно экспортировать в CSV для последующей работы (при этом картинки сохранятся в отдельный каталог, и на них указаны ссылки). Экспорт в PDF очень удобен для официальных документов таких, как счета для клиентов, когда файл можно тут же отправить заказчику для проведения оплаты. Записи также можно распечатать на любом подключенном принтере.

Синхронизация и совместная работа
Приложение может работать на Android и Windows 10, при этом доступна синхронизация и одинаковый набор возможностей под одним пользовательским аккаунтом. Можно спроектировать базу данных на настольном компьютере и потом добавлять или редактировать записи на планшете или даже телефоне. Также существует возможность совместной работы над базами данных, нужно просто поделиться ссылкой на базу в одном из поддерживаемых облачных хранилищ: OneDrive или Dropbox.

Скачать игры для Андроид бесплатно

Привет! Гость или уже пользователь нашего сайта, в данном разделе ты сможешь бесплатно скачать новые игры для Андроид. Данный раздел сайта ежедневно наполняется новыми играми, у нас работают самые лучшие журналисты, которые добавляют игру в день её выхода. Чтобы удостовериться в информации посмотрите на статистику раздела уже более 5 тысяч лучших игр опубликовано у нас!

Чем мы лучше остальных спросите вы? А мы ответим! У нас в разделе игр вы сможете скачать игры без регистраций и СМС, вам не придется платить за скачивания или покупать игру как в «маркетах». Весь контент на сайте проверен, на самых популярных телефонах, таких как Sony, Lg, Samsung, Htc, а также проверен на вирусы, вы можете без опасения скачивать игры на Андроид телефон прямо с сайта или же на PC, чтобы перенести потом на Android устройства.

Только тут можно скачать игры на андроид в APK формате бесплатно, в два клика!

Игры на Android (для Андроид)

Немного об современных играх на Андроид 1.6, 2.1, 2.2, 2.3, 4.1, 4.2: с приходом операционной системы Android уже прошло ни мало времени, вспомним первые телефоны, и те игры, которые там были, разработчики только начинали делать игры и были они, мягко говоря, не очень. Сейчас же игры для Андроид ни чем не отличаются от PC игр, они имеют 3D графику, высокое разрешение HD. Чтобы удостовериться зайдите в раздел аркады там самые красочные игры от первого лица или в «квесты», где игры не чем не отличаются от популярных онлайн игр.

К чему все это? Да к тому, что в игры хоть и не желательно играть, убивая свободное время, но всё-таки можно отвлечься от повседневной жизни, дел которые уже в горле сидят и во время езды, например на учебу. Надеемся, что наш сайт будет вам полезен, и вы сможете найти ту заветную игру, которую так давно искали!

Лучшие порты легендарных игр с ПК на Андроид (ТОП-15)

Мобильная игровая индустрия начала свое более стремительное развитие с того момента, когда появился первый официальный порт известной игры с ПК на смартфоны и планшеты под управлением Android и iOS. Благо, железо, оптимизация и колоссальный труд разработчиков позволили достичь в этом небывалых высот.

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

И вот наши бессмертные хиты:


Порт Half-Life 2 на Андроид

Грандиозные приключения Гордона Фримена в борьбе с инопланетными захватчиками в лице «Альянса», которым на Землея управляет в своей Цитадели Сити 17 некий Уоллес Брин – главный злодей и враг гордона. Игра требует подключения геймпада, но её сюжет и графика были сохранены на 100%.

Порт GTA 3 на Андроид

Grand Theft Auto III игра умудрилась совершить 2 переворота в игровой индустрии: внедрение трехмерной графики в играх с открытым городом и абсолютное портирование на мобильные платформы трудом компании Rockstar Games. В успех проекта верили единицы, но в честь 10-летнего юбилея в 2011 году.

Порт Carmageddon на Андроид

Скандальные гонки на выживание и первенство любой ценой – это Кармагеддон! Одна из самых эксцентричных, жестоких, необычных и чертовски затягивающих игр с особой физикой и моделью поведения различного транспорта. В погоне можно давить людей и рогатый скот, уничтожать машины противника и даже полицию.

Порт Doom 3 на Андроид

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

Порт Syberia на Андроид

Незабываемые приключения от французского автора Бенуа Сокаля оценили пользователи ПК в 2002 году. Это история начинающего юриста Кейт Уолкер, которой поручили отправиться в старинный магазин игрушек о подписать договор продажи в пользу семье Форальберг. Игра выполнена в жанре point-and-click квестов, обладает особой атмосферой угнетенности и всегда радует неожиданными поворотами в сюжете.

Порт Diablo на Андроид

Детище компании Blizzard, Диабло вышло на ПК в 1996 году и соединяло сразу несколько жанровых направлений. Все события происходят в большом подземелье Тристам, в котором игроку нужно истреблять нечисть из Ада всеми с помощью мечей, топоров, магии и различных комбинаций.

Цукерберг рекомендует:  Web разработка и it - Помощь с Динамической таблицей JAVASCRIPT

Порт Tomb Raider на Андроид

Опасные приключения неповторимой Лары Крофт – расхитительницы гробниц начались в далеком 1996 году. Эта культовая игра переносит нас в джунгли, восточные храмы и подземелья. Где хранятся редкие и очень дорогие артефакты. Но чтобы завладеть ими, нужно пройти немало смертельных ловушек, решить головоломки и не умереть от руки злого бандита.

Порт Quake на Андроид

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

Порт Counter Strike 1.6 для Android

Лучший онлайн-шутер всех поколений. Это бессмертный шедевр от Valve, который по популярности и долголетию не сумел превзойти ни один другой проект. Особая физика стрельбы, динамика, международные чемпионаты, легендарные карты и комбинации клавиш на клавиатуре для покупки снаряжения – теперь Контр-Страйк 1.6 на Андроид доступен всем пользователям смартфонов и планшетов.

Порт Max Payne на Андроид

Макс Пейн – полицейский, работающий под прикрытием. Однажды его подставили на убийстве криминального авторитета, в результате чего охоту на героя начали полицейские и бандиты. Легендарный шутер от 3 лица был представлен компанией Remedy в 2001 году. Именно в этой игре впервые была задействована система Bullet Time – замедленное время.

Порт Star Wars: Knights of the Old Republic на Андроид

Это самая первая RPG во вселенной Звёздных Войн, выпущена компанией Lucas Arts в 2003 году. Разделение на классы, драматический сюжет, много героев, известные локации, легендарные джедаи со световыми мечами и продвинутая система прокачки – все это теперь на вашем устройстве.

Порт Baldur’s Gate на Андроид

Прямо сейчас вы находитесь у истоков становления компании BioWare – одной из самых лучших в создании ролевых игр на ПК. Их детище Врата Балдура появилось в 1998 году на ПК тесно связано с сюжетом книги «Аватары» и передает весь дух классической RPG в стиле Diablo.

Порт Heroes of Might & Magic 3 на Андроид

Герои 3 – это невероятная пошаговая RPG-стратегия с 2D графикой и скриптовой анимацией, вышедшая на ПК в 1999 году. Именно эта часть большой серии окончательно завоевала сердца игроков невероятно атмосферой, удивительной музыкой, режимом строительства города и пошаговыми сражениями героев на своих лошадях.

Порт Alien Shooter на Андроид

Детище российской компании Sigma Team появилось на ПК в 2003 году и предложило иной формат шутеров. С видом сверху вы управляете бесстрашным бойцом, который врывается в секретную исследовательскую лабораторию исправлять ошибки ученых, породивших тысячи злющих тварей разных видов и размеров.

Порт Петьки и Василия Ивановича на Андроид

Еще одно достижение российских разработчиков – Петька получило всемирное признание на момент выхода в 1998 году. Мобильная версия хита была несколько изменена и доработана, но все же сохранила первобытную атмосферу и дух классических point-n-click квестов.

Как создать БД в Andro > Задать вопрос

Как создать БД, именно для Android Studio и какую выбрать? Также, после создания БД, планирую создать много активити с упражнениями, программами тренировок и процессом выполнения программы тренировок, расписанную на несколько дней, все данные хочу брать из бд. Как это все реализовать?

1 ответ 1

Для Android базой данных «по умолчанию» является БД SQLite, для работы с которой есть все необходимые классы, интерфейсы и инструменты прямо в API Android. Для начала работы нужно только создать базу.

Вы можете создать БД на компьютере, организовав ее структуру и заполнив необходимыми данными, затем подключить уже готовую БД в ваш проект и работать с ней через классы, которые Android предоставляет для работы с БД: SQLiteOpenHeleper , SQLiteDatabase , Cursor и тд. — открывать\закрывать подключение, добавлять, изменять, удалять данные в ней и делать запросы.

Так же вы можете создать всю структуру БД и наполнить ее данными прямо в коде своего проекта:

  1. В методе onCreate() класса SQLiteOpenHelper создать структуру.
  2. Методом insert() класса QLiteDatabase заполнить ее данными.
  3. Затем работать с полученной в итоге базой данных (этот пункт справедлив и для первого варианта с копированием готовой базы)

Первый вариант значительно проще на этапе подготовки, второй не намного компактнее в плане размера итогового APK.

Однако разнообразие БД не ограничено одной SQLite и через внешние библиотеки можно подключить множество других баз данных. Хотелось бы выделить no-sql ORM Realm, но существует и множество других как ORM, так и SQL-баз, которые можно подключить в свой проект. Выбор может быть очень трудным, особенно при недостатке знаний по этой теме

Скачать лучшие игры на андроид

Ищите игры для андроид? Тогда вы зашли по адресу! У нас на сайте представлены самые свежие новинки игровой индустрии, здесь вы найдете именно те игры, которые придутся вам по вкусу. На нашем ресурсе собраны только наиболее популярные игры, проверенные тысячами геймеров из разных уголков земного шара. Стратегии, экшэн, головоломки, симуляторы – все эти и многие другие жанры находятся именно здесь.

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

Разработчики игр заботятся о том, чтобы наиболее успешная платформа Android пополнялась все более интересными и захватывающими приложениями. Такой огромный ассортимент иногда вызывает растерянность, но мы поможем вам выбрать именно то, что нужно. На нашем сайте посетители имеют возможность получить игры на андроид 4.1, 4.2, 4.4, 5, 6, 7 бесплатно. Окунитесь в мир виртуальной реальности, почувствуйте себя фэнтезийным персонажем, участником великой битвы, известным гонщиком или примерьте на себя другие роли – разнообразие возможностей захватывает дух. Найдите свою игру на нашем сайте!

Лучшие Игры для Andro >

  • Все об игре
  • Смотреть цены от 82р.
  • Отзывы игроков
  • Системные требования
  • Достижения и трофеи
  • Форум
  • Скриншоты
  • Арт
  • Файлы
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены
  • Отзывы игроков
  • Системные требования
  • Форум
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены от 43р.
  • Отзывы игроков
  • Гайды и советы
  • Системные требования
  • Форум
  • Скриншоты
  • Скриншоты Hearthstone: One Night in Karazhan
  • Скриншоты Hearthstone: Whispers of the Old Gods
  • Арт
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены
  • Отзывы игроков
  • Системные требования
  • Достижения и трофеи
  • Форум
  • Скриншоты
  • Арт
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Играть бесплатно
  • Смотреть цены
  • Отзывы игроков
  • Гайды и советы
  • Системные требования
  • Форум
  • Скриншоты
  • Арт
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены
  • Отзывы игроков
  • Форум
  • Даты выхода
  • Скриншоты
  • Арт
  • Новости
  • Похожие игры
  • Статьи
  • Все об игре
  • Смотреть цены
  • Отзывы игроков
  • Гайды и советы
  • Системные требования
  • Форум
  • Скриншоты
  • Чит-коды и секреты
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены от 75р.
  • Отзывы игроков
  • Системные требования
  • Достижения и трофеи
  • Форум
  • Скриншоты
  • Файлы
  • Чит-коды и секреты
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены от 565р.
  • Отзывы игроков
  • Гайды и советы
  • Системные требования
  • Достижения и трофеи
  • Форум
  • Скриншоты
  • Арт
  • Девушки Injustice 2
  • Файлы
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены
  • Отзывы игроков
  • Гайды и советы
  • Системные требования
  • Форум
  • Скриншоты
  • Арт
  • Файлы
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены от 72р.
  • Отзывы игроков
  • Системные требования
  • Достижения и трофеи
  • Форум
  • Скриншоты
  • Файлы
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены
  • Отзывы игроков
  • Гайды и советы
  • Дополнения
  • Форум
  • Даты выхода
  • Скриншоты
  • Арт
  • Новости
  • Похожие игры
  • Статьи
  • Все об игре
  • Смотреть цены
  • Отзывы игроков
  • Системные требования
  • Форум
  • Скриншоты
  • Арт
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены
  • Отзывы игроков
  • Системные требования
  • Форум
  • Скриншоты
  • Арт
  • Файлы
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены
  • Отзывы игроков
  • Системные требования
  • Форум
  • Скриншоты
  • Похожие игры
  • Даты выхода
  • Все об игре
  • Смотреть цены
  • Отзывы игроков
  • Системные требования
  • Достижения и трофеи
  • Форум
  • Скриншоты
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи
  • Все об игре
  • Смотреть цены от 249р.
  • Отзывы игроков
  • Системные требования
  • Достижения и трофеи
  • Форум
  • Скриншоты
  • Файлы
  • Новости
  • Похожие игры
  • Даты выхода
  • Статьи

Операционная система компании Google с открытым исходным кодом, основанная на ядре Linux и собственной реализации Java. По данным на 4 квартал 2012 года под управлением Android работает около 70,1% проданных смартфонов. Открытый исходный код позволяет энтузиастам создавать собственные прошивки для Android, с новыми настройками, опциями, функциями. Игры для Android в огромном количестве можно найти на официальном сервисе Google Play Market. Рейтинг игр для Android наглядно демонстрирует превосходство данной игровой платформы над конкурентами. Скачать хиты для Android можно в том же Google Play. Кодовое имя каждой версии Android представляет собой название какого-либо десерта. Android 4.0 Ice Cream Sandwich получила золото за лучшую платформу на 2012 User Experience Awards.

Скачать игры для Андроид бесплатно

Привет! Гость или уже пользователь нашего сайта, в данном разделе ты сможешь бесплатно скачать новые игры для Андроид. Данный раздел сайта ежедневно наполняется новыми играми, у нас работают самые лучшие журналисты, которые добавляют игру в день её выхода. Чтобы удостовериться в информации посмотрите на статистику раздела уже более 5 тысяч лучших игр опубликовано у нас!

Чем мы лучше остальных спросите вы? А мы ответим! У нас в разделе игр вы сможете скачать игры без регистраций и СМС, вам не придется платить за скачивания или покупать игру как в «маркетах». Весь контент на сайте проверен, на самых популярных телефонах, таких как Sony, Lg, Samsung, Htc, а также проверен на вирусы, вы можете без опасения скачивать игры на Андроид телефон прямо с сайта или же на PC, чтобы перенести потом на Android устройства.

Только тут можно скачать игры на андроид в APK формате бесплатно, в два клика!

Игры на Android (для Андроид)

Немного об современных играх на Андроид 1.6, 2.1, 2.2, 2.3, 4.1, 4.2: с приходом операционной системы Android уже прошло ни мало времени, вспомним первые телефоны, и те игры, которые там были, разработчики только начинали делать игры и были они, мягко говоря, не очень. Сейчас же игры для Андроид ни чем не отличаются от PC игр, они имеют 3D графику, высокое разрешение HD. Чтобы удостовериться зайдите в раздел аркады там самые красочные игры от первого лица или в «квесты», где игры не чем не отличаются от популярных онлайн игр.

К чему все это? Да к тому, что в игры хоть и не желательно играть, убивая свободное время, но всё-таки можно отвлечься от повседневной жизни, дел которые уже в горле сидят и во время езды, например на учебу. Надеемся, что наш сайт будет вам полезен, и вы сможете найти ту заветную игру, которую так давно искали!

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих