Вторник, 19 Марта 2024, 06:11

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [354]
Статьи об общих понятиях связанных с созданием игр.
Программирование [82]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [144]
Статьи о программах для создания игр, уроки и описания.
Софт [39]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [16]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [160]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [128]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Что в своих играх используете от стороннего производителя?
Всего ответов: 9571
Главная » Статьи » Софт

Разработка под Android — Часть II: Философия разработки
Разработка под Android

Часть II: Философия разработки

1. Что есть программа?

Начнём с того, чем собственно является программа для ОС Android? Она представляет собой пакет с расширением apk — именно его получает пользователь из Маркета. В этом пакете находится скомпилированный код программы (в формате dex), все её ресурсы и данные о ней.
Каждая программа запускается в своём собственном процессе, что предотвращает полное зависание системы в случае некорректности программы. После завершения работы приложения, ОС "убивает" процесс и освобождает память.

2. Работа программы

На самом деле apk пакет является архивом (запакованным методом zip) — именно в нём хранится уже упомянутый выше байткод dex, выполняемый в виртуальной машине Dalvik.
Программы для Dalvik пишутся на языке Java, но виртуальная машина не использует стандартный байткод, вместо этого в ней используется свой собственный формат байткода. Основное отличие от Java Virtial Machine (помимо своего формата байткода) — это использование регистров процессора вместо стека.
Так как Android является подмножеством Linux, то программы для ОС можно писать на C++ и еще множестве других языков. Но мы будем иметь дело только с Java.
3. Основные понятия

Поднимемся на уровень выше — познакомимся с основными понятиями Android SDK.
  • Activities — визуальный компонент приложения. Оно может содержать несколько Activities, а может не содержать (виджеты, живые обои и пр.) В качестве аналога в Windows можно привести окна, но это будет не совсем так. Activities больше напоминают экраны в визардах (мастерах), например при создании нового документа по шаблону в Word. Разница в том, что Activities не обязаны иметь строгий порядок появления, как экраны визарда, они могут переключаться в зависимости от действий пользователя.
    Замечание: в некоторых письменных источниках понятия переводятся, например Activity переводится как "деятельность", но я буду пользоваться терминами на английском.
  • Intents. Одно из важнейших понятий, наряду с Activity и Service. Intent означает "намерение что-то сделать". Причём интентом будет являться любое действие приложения — от "хочу переключить activity и вызвать абонента по номеру" до "хочу вызвать другое приложение". Система анализирует интент и предпринимает оптимальное действие.
    Intents очень широкая тема, и подробней мы рассмотрим её, когда будем писать свою программу. Пока достаточно знать это.
  • Service. Очень простое понятие, означающее приложение, работающее в фоне. Это может быть, например, музыкальный плеер или клиент синхронизации.
  • Broadcast Reciever. Его задача отслеживать системные сообщения и передавать их дальше в приложение. BR тесно связан с интентами. Логику работы примерно можно представить так: приложению требуется отправить СМС (будем считать, что с благими намерениями ;)). Он отправляет intent, система анализирует его и отправляет СМС-сервису приказ отправить соответствующее сообщение, причем приказ принимается именно через Broadcast Reciever.
  • Content Provider предоставляет определенные данные другим приложениям. Это могут быть записи в базе данных, изображения и.т.д.
  • Layout представляет собой схему расположения View и Widgets (о них ниже) на Activity. Существуют линейная, табличная и прочие разновидности.
  • View можно ассоциировать с методом взаимодействия с пользователем. Другими словами, View — это то, с помощью чего можно управлять приложением. К примеру, touch-жесты тоже являются View.
  • Widgets. Widgets являются графическими элементами интерфейса программы. Если View — это способ взаимодействия, то Widget — это сам элемент управления или вывода информации. Виджетом являются многие знакомые вам элементы управления, как то кнопка, поле ввода, поле вывода, окно сообщения и.т.п.
    Всё то, что мы рассмотрели выше, можно найти в xml файлах Android проекта. Главным из них является AndroidManifest.xml, именно в нём описывается структура приложения и создаются новые Activities, Broadcast Recievers и прочие элементы.
    На сегодня, думаю, мы закончим, а то сложно воспринимать столько материала, да еще и без картинок smile Если что, задавайте вопросы на форуме, говорите, если я что-то забыл. До новых встреч!
  • Категория: Софт | Добавил: Kamskii (20 Августа 2011)
    Просмотров: 11244 | Комментарии: 4 | Рейтинг: 5.0/4 |
    Теги: java, Android, уроки, SDK, программирование, Dalvik, маркет, apk, jvm, туториалы
    Дополнительные опции:
    Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

    Игровые объявления и предложения:
    Если вас заинтересовал материал «Разработка под Android — Часть II: Философия разработки», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

    Всего комментариев: 4
    +0-
    3 Pesets   (27 Августа 2011 02:54) [Материал]
    PesetsЛан, я и так уже много баттхерта развел, скажу вот что - аффтар, прочитай внимательно первую часть, потом прочитай вторую, сравни и сделай выводы. Надеюсь, что третья часть будет больше похожа на первую, чем на эту.

    +0-
    4 Kamskii   (28 Августа 2011 20:15) [Материал]
    KamskiiА поконкретней? Что именно не так?

    +1-
    1 GECK   (22 Августа 2011 12:14) [Материал]
    GECK>Опустимся на уровень выше
    Хорошая фраза smile

    +0-
    2 Kamskii   (22 Августа 2011 20:25) [Материал]
    KamskiiКаламбур, блин biggrin Спасибо, что нашёл ошибку!

    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Поиск по сайту
    10 случ. движков
  • Realm Crafter
  • Dimension3
  • Flowlab
  • Flame
  • Eclipse Wold
  • Mario Worker
  • jPCT
  • Aleph One
  • Xamarin
  • Spartan
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг