Android — под андроид


Содержание

Android — под андроид

Итак, вы решили стать разработчиком мобильных приложений для операционной системы Android. Это отличное решение, но без определенных знаний работать не получится. Как минимум вам нужно обучиться программированию. Есть несколько языков программирования, и вам нужно будет выбрать, с какого вы начнете. Разница между ними есть, и разобраться может быть не слишком просто.

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

  • Java – это официальный язык разработки для Android, и он поддерживается средой разработки Android Studio от Google. Выучить его может быть не так просто.
  • Kotlin – этот язык был представлен недавно в качестве второго официально поддерживаемого языка. Во многом он похож на Java, но начать работу с ним проще.
  • C/C++ – Android Studio поддерживает C++. Этот язык еще сложнее, но он активно применяется при разработке игр.
  • C# – этот язык может понравиться начинающим. Он поддерживается средами разработки Unity и Xamarin. Они дают преимущества при разработке игр и продуктов для разных платформ.
  • BASIC – этот язык поддерживает среда разработки B4A IDE, которая является простым, но мощным инструментом.
  • Corona/LUA – среда LUA хороша для разработки кросс-платформенных продуктов. Она значительно упрощает создание приложений и предоставляет доступ к нативным библиотекам.
  • PhoneGap (HTML, CSS, JavaScript) – этот вариант подходит для тех, кто умеет создавать интерактивные веб-страницы. С PhoneGap вы сможете похожим образом создавать кросс-платформенные приложения.

Теперь разберем эти варианты подробнее.

Язык программирования Java первым приходит в голову, когда речь заходит о разработке под Android. Java был выпущен компанией Sun Microsystems в 1995 году. Он используется для разного типа приложений. Если говорить об Android-приложениях, Java – это лучший выбор для тех, кто хочет уйти в разработку для Android с головой. Однако это не самый лучший язык для новичка. Вы непременно столкнетесь с трудностями. Если вы начинающий, хотите создать игру или хотите начать обучение, но еще не определились, какого именно результата вы хотите достичь, возможно, следует начать с чего-то более простого.

Kotlin

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

Не самый лучший выбор для создания простых приложений. Вы можете работать с языком в Android Studio с помощью Android NDK, но в отличие от Java и Kotlin он не выполняется на Java Virtual Machine. Однако он работает нативно на устройстве, что может дать вам больше возможностей в работе с памятью. Вы можете добиться с его помощью лучшей производительности в случае с 3D-играми. Если это ваш выбор, готовьтесь к трудностям. Возможно, вам лучше использовать готовый игровой движок для создания игр.

C# – это более простая версия C и C++, разработанная компания Microsoft. С этим языком вам не нужно заботиться о работе с памятью, как и в случае с Java. Однако C# более современный и чистый, в сравнении с Java. C# и Unity окажутся очень полезными и простыми в разработке игр. Для разработки приложений среда Unity не так хороша. C# – отличный выбор, но он ограничит ваши возможности в случае, если вы желаете стать профессиональным Android-разработчиком.

BASIC

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

Corona

Corona в связке с LUA позволит разрабатывать не только для Android, и это значительно проще, чем начинать учить Java. Вам понравится, и результат порадует, но для того, чтобы развивать свои навыки, придется учить что-нибудь еще. Как и в случае с BASIC, профессионалом не стать.

PhoneGap

Последний вариант годится для тех, кто хорош в веб-разработке и может создать интерактивный сайт, используя HTML, CSS и JavaScript. PhoneGap позволит этими же инструментами создать приложение. Этот вариант имеет очень мало общего с разработкой для Android, но подойдет, если вы преследуете конкретные цели и не планируете разрабатывать для Android в будущем.

Вариантов много. Уверены, вы сможете сделать правильный выбор.

По материалам Android Authority

14 комментариев Оставить свой

> Kotlin – этот язык был представлен недавно в качестве второго официально поддерживаемого языка

вообще то в качестве first class programming language for Android

> Вариантов много. Уверены, вы сможете сделать правильный выбор.

Выбор даже проще, хотите быстрые, оптимизированные и с малым весом приложения — выбор за Android SDK и Java/Kotlin.
Если качество приложения не важно — то все остальное.

Corona/LUA и PhoneGap это вообще дно по производительности. Лучше бы упомянули ReactNative или Flutter в качестве меньшего из зол.

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

Перед изучением котлина, если это ваш первый язык програмирования, обязательно изучите Java Core и принципы ООП. Это основа основ. Без этого будет каша в голове, а в коде непонятное месиво. ��

Можете задавать вопросы, постараюсь ответить ��
Кратко о себе, я разрабатываю андроид приложения уже 4 года. Material design евангелист, обожаю когда приложение работает не только быстро, без ошибок, но и красиво.

Разработка нативными инструментами(Android SDK, Java/Kotlin) всегда будет на уровень выше по качеству приложения, его поддержке и отладке чем разные кроссплатформенные фреймворки типа ReactNative, PhoneGap и тд.

Так какой же язык лучше для новичка, что бы потом хорошо зарабатывать?

Не нужно сразу думать о заработке, нужно думать о том, как выжать максимальную пользу с обучения. Например, неплохо зарабатывают веб-разработчики (я понимаю что мы говорим не о вебе, но это для примера), но ты же не выучишь сразу фреймворк django для питона (он сложный, а для человека, который ни разу не связывался с программированием, вообще непосильный. Я бы посоветовал для начала выучить Pascal: у него вроде и синтаксис не слишком сложный и достаточно прост в обучении. Да, функционал ОЧЕНЬ ограничен, да и не нужен сейчас Pascal никому, но ты научишься многим основам которые очень облегчат дальнейшее обучение.
Это лично мои советы и ты можешь к ним не прислушиваться, но по моему обучаться именно так- самый простой способ

А на сколько важна матиматика, к примеру я в ней не очень, смогу ли я без нее освоить программирование?

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

Английский я знаю, математику не очень, но хочу изучать java , пока пытаюсь по видео урокам, за какой периуд можно в среднем освоить язык?

в среднем 2-3 месяца чтобы уверенно чувствовать себя в Java Core.

Общие сведения о платформе Andro devsite-toc-embedded >

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

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

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

Если создание программ для Android является для вас новым делом, вам важно усвоить следующие основные концепции, касающиеся платформы приложений Android:

Приложения имеют несколько точек входа

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

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

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

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

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

Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates.

Start Andro >Присоединяйтесь к нам в Telegram чатах по различным тематикам

Уроки по Andro > Если Вы новичок, то начните обучение с уроков. Они помогут Вам изучить Android с нуля до среднего уровня.

В блоге собраны материалы о различных SDK, API, библиотеках, паттернах и просто интересных кейсах.

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

Architecture Components

Набор механизмов от Google для построения архитектуры приложения.

Тестирование

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

Dagger 2

Отличный помощник в реализации паттерна Dependency Injection. Поможет сделать ваш код чистым и снизить зависимости между объектами.

RxJava


Мощный и гибкий инструмент для удобной реализации повседневных задач

Как сделать приложение для Andro >

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

Язык программирования для мобильной разработки на Android очень простой — это Java. Сейчас Google активно продвигает Kotlin как язык, который сможет заменить Java. Приложения пишут и на C++.

Создание простейшего приложения состоит из нескольких этапов:

    проект в Andro >А пока мы описываем азы, студенты курса «Профессия Мобильный разработчик» уже получают деньги за свои приложения.

Пишет про разработку в Skillbox. Работал главным редактором сайта «Хабрахабр», ведет корпоративные блоги.

Необходимые инструменты

Первым делом установите программу Android Studio. Это официальная среда разработки (IDE) для Android, она работает на Windows, macOS и Linux. Хотя при разработке программ для Android можно использовать и другие среды, кроме Android Studio.

Цукерберг рекомендует:  Функциональная галерея на PHP и jQuery

Если на компьютере не установлены Andro > Android Studio автоматически скачает их. Android SDK — это среда программирования, в которую входят библиотеки, исполняемые файлы, скрипты, документация и т.д.

Andro > .apk. Он содержит всё необходимое для установки приложения на Android-устройство.

Полезно установить и эмулятор Andro >Android Studio.

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

Из чего состоит приложение
на Andro >Android-приложение состоит из четырёх компонентов. Каждый компонент — это точка входа, через которую система или пользователь может получить доступ.

  1. Активность (activity) — элементы интерактивного пользовательского интерфейса.
    Одна активность задействует другую и передаёт информацию о том, что намерен делать пользователь, через класс Intent (намерения). Активности подобны веб-страницам, а намерения — ссылкам между ними. Запуск приложения — это активность Main.
  2. Сервис (service) — универсальная точка входа для поддержания работы приложения в фоновом режиме.
    Этот компонент выполняет длительные операции или работу для удалённых процессов без визуального интерфейса.
  3. Широковещательный приемник (broadcast receiver) транслирует нескольким участникам намерения из приложения.

Поставщик содержимого(content prov >Теперь попробуем сделать своё приложение для Android.

Создаём Android-приложение
в Andro >Шаг 1

Выбираем название приложения, домен компании, путь к проекту и название пакета. Указываем, включить ли поддержку опциональных языков программирования C++ и Kotlin.

Шаг 2

Задаём одну или несколько целевых платформ для сборки. Для этого используется SDK и AVD, менеджер виртуальных устройств Android. Инструмент позволяет устанавливать в SDK пакеты, которые поддерживают несколько версий ОС Android и несколько уровней API (интерфейсов программирования приложений).

Чем ниже версия Android, тем больше устройств, на которых приложение запустится. Чем выше версия, тем богаче функциональность API.

Шаг 3

Выбираем основную активность, которая будет запускаться при нажатии на иконку приложения, и даём ей имя.

Шаг 4

После нескольких минут сборки Android Studio открывает интерфейс IDE. Здесь три основных момента.

Если выбрать в выпадающем меню вид Andro >app > java > ru.skillbox.skillboxapp > FullscreenActivity. При создании проекта мы указали вместо активности Main полноэкранную активность.

Далее можно посмотреть файл app > res > layout > activity_fullscreen.xml. Это XML-файл с макетом для UI нашей основной активности.

Наконец, третий важный файл app > manifests > AndroidManifest.xml описывает фундаментальные характеристики приложения и определяет все его компоненты.

Содержимое манифеста

Запускаем на реальном устройстве

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

Запускаем на Android-устройстве или в эмуляторе.

Смартфон или планшет для этого подключаем в режиме USB-отладки, которая активируется в Настройках разработчика в меню Настройки.

Для запуска в эмуляторе нажимаем в Andro >Run в меню Run (Shift+F10). Выбираем подходящее устройство и версию ОС, портретную или ландшафтную (альбомную) ориентацию.

Создаём простой пользовательский интерфейс

Пользовательский интерфейс Andro >макетов (layouts, объекты ViewGroup) и виджетов (объекты View). Макеты управляют расположением дочерних виджетов на экране. Сами виджеты — это непосредственно компоненты UI: кнопки, текстовые поля на экране и т.п.

Интерфейс активностей создаётся в Android Studio в редакторе макетов (Layout Editor) и хранится по большей части в XML-файлах.

  1. Открываем файл app > res > layout > activity_fullscreen.xml.
  2. Добавляем на экран из палитры (Palette) виджеты перетаскиванием мышью.
  3. Например, берём текстовое поле (PlainText). Это виджет EditText, куда пользователь может вводить текст.
  4. Добавляем кнопки и другие нужные элементы.

Добавляем действия, активности и навигацию

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

  1. Заходим в код app > java > FullscreenActivity.
  2. Добавляем метод SendMessage() в класс FullscreenActivity, чтобы при нажатии на кнопку вызывался этот метод.
  3. Создаём намерения (класс Intent) для перехода от одной активности к другой, новые активности, навигацию и всё остальное, что необходимо для приложения.

И, конечно, начинаем мечтать, как монетизировать приложение.

Общие правила
для Andro >Android-приложение живёт в собственной «песочнице», которая подчиняется правилам безопасности Linux:

  1. Каждое приложение — это отдельный пользователь в многопользовательской системе Linux.
  2. По умолчанию система назначает каждому приложению уникальный user >Из правил есть исключения:
  1. Возможно организовать для двух приложений общий user ID, так что они могут делиться файлами друг с другом.
  2. Приложение может запрашивать разрешение на доступ к контактам пользователя, SMS, содержимому накопителя, информации с камеры и другим данным.

Заключение

Детально все этапы разработки приложения объясняются на курсе «Профессия Мобильный разработчик». Участники 12-месячной программы учатся создавать приложения под Android и iOS. Кроме того, они получают полноценное портфолио разработчика и могут устроиться на работу в качестве junior-программиста.

Лучшие инструменты для разработки приложений под Android

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

Andro >Ни один топ “Лучших инструментов для разработки приложений под Android” не обходится без Android Studio. Это официальная IDE (интегрированная среда разработки) для Android, созданная компанией Google. Именно поэтому Android Studio является номером один для разработчиков, которые хотят создавать приложения, в соответствии с Material дизайном Google и доступом к расширенным функциям платформы.

IDE — это место, в котором разработчик проводит большую часть своего времени: Android Studio выступает в качестве редактора для выбранного вами языка программирования (он поддерживает Java, C++, а также Kotlin, который с недавних пор тоже стал официальным языком Android), компилятора, который может создавать APK файлы и файловой системы для организации вашего проекта. Кроме этого он включает в себя редактор XML и расширенный редактор макетов. Android Studio предлагает целый набор дополнительных инструментов, некоторые из которых мы рассмотрим в данной статье. К счастью, большинство из них теперь можно скачать единым пакетом. По сути, этот пакет идет в комплекте с Android SDK, но вам все равно придется отдельно загрузить и установить Java JDK. И было бы неплохо, если бы вы прочли инструкцию для новичков по использованию Android Studio.

Разработка при помощи Java и Android SDK имеет несколько крутую кривую обучаемости, но с точки зрения интеграции, поддержки и возможностей — Android Studio нет равных.

AVD Manager


Инструмент AVD Manager идет в комплекте с Andro >fast virt, который запускает на вашем компьютере версию Andro >instruction.

Andro >Еще один встроенный инструмент — Android Device Monitor, который позволяет проводить мониторинг вашего физического или виртуального устройства во время его работы, и, взамен, получать информацию о том, сколько процессов выполняется по потоку, сетевую статистику, LogCat и т.д. Данный инструмент отлично подходит для тестирования производительности ваших приложений.

Andro >ADB — это инструмент командной строки, с помощью которого можно копировать файлы на устройство и обратно, устанавливать и удалять приложения, выполнять резервное копирование и восстановление на всех устройствах на базе Andro >adb.exe и откройте командную строку (Shift + RMB>Открыть окно команд).

Unity 3D

Unity 3D — первый инструмент в нашем списке, который не предустановлен в Android Studio. Unity 3D представляет из себя игровой движок и IDE для кроссплатформенной разработки игр. Он очень прост в изучении и обладает большим набором функций для разработки игр. С помощью Android Studio можно создать игру, но в Unity то же самое можно сделать гораздо легче, без уймы потерянного времени и головной боли. Кстати говоря, в Unity есть возможность создавать приложения с дополненной реальностью для Daydream, Cardboard или Gear VR!

Unreal Engine

Unreal Engine — это игровой движок и альтернативный вариант для тех, кто интересуется кроссплатформенной и полнофункциональной разработкой игр. Unreal, также как и Unity, поддерживает разработку под Android, но, в плане графики, игры на Unreal сильно превосходят игры на Unity. Тем не менее Unity имеет лучшую встроенную поддержку мобильных и 2D-творений, поэтому является предпочтительным вариантом для большинства мобильных разработчиков игр. Не имеет значения, какой в итоге вы выберете движок, так как нет причин, по которым вы не можете дать им обоим шанс.

GameMaker: Studio

GameMaker: Studio — еще один инструмент для разработки игр, на этот раз для 2D-игр. Он гораздо проще в использовании, чем Unity или Unreal, и позволяет создавать игры, практически без написания кода. Однако, если хотите добавить немного больше настроек в свою игру, вы можете воспользоваться встроенным языком программирования для начинающих — GML или «GameMaker Language».

Однако из-за простоты использования вы, в какой-то степени, теряете мощность и функциональность. Также стоит отметить, что GameMaker: Studio не является бесплатным ПО, но есть бесплатная пробная версия.

B4A (или Basic for Andro >. Для тех, кто не знаком с BASIC — это процедурный язык программирования, который читается практически как обычный английский язык. Несмотря на то, что B4A — это проект, разработанный всего одним человеком, ему удалось соединить в себе множество полезных расширенных функций, таких как: беспроводная отладка через Bluetooth, визуальный редактор для добавления и упорядочивания представлений и т.п. Данное ПО не бесплатно.

С помощью B4A вы можете делать практически все то же самое, что вы делаете при помощи Java, но гораздо быстрее и с меньшим количеством шаблонов. Любое понижение производительности, по сравнению с другими IDE, минимально. Тем не менее, вам все еще стоит изучить официальный метод создания приложений, особенно если вы хотите использовать конкретные библиотеки (но стоит упомянуть, что библиотеки Java могут быть обернуты для Basic4Android).

A >Наверное вы уже успели заметить, что инструменты для разработки приложений под Android любят аббревиатуры. AIDE расшифровывается как “Android IDE” и он уникален тем, что работает на самом Android. Это означает, что вы можете создавать приложения, используя свой телефон или планшет, а затем тестировать их на этом же устройстве.

Скорее всего вы уже поняли, что данному IDE не хватает некоторых функций из Android Studio (окей, очень многих функций) и у него нет никакого реального преимущества перед более функциональными IDE для разработки под Android. Он пригоден только для изучения Java и Android SDK, так как предоставляет возможность читать учебник по программированию и, в тот же самый момент, проверять оттуда код в режиме реального времени. Это настоящая находка для тех, кто только-только начал разрабатывать собственные мобильные проекты. AIDE не бесплатен и, независимо от того, хорошее о нем общественное мнение или нет — его стоит купить и попробовать самостоятельно.

Xamarin в Visual Studio

Visual Studio — это IDE от Microsoft, поддерживающий ряд языков, включая C#, VB.net, JavaScript и многое другое. С помощью фреймворка Xamarin, который входит в Visual Studio, можно создавать кроссплатформенные приложения с помощью C#, а затем тестировать их на нескольких устройствах, подключенных к облаку. Это хороший и бесплатный выбор, если вы планируете выпустить приложение и для Android, и для IOS, но не горите желанием писать свой код дважды. Также он является отличным выбором для тех, кто уже знаком с C# и/или Visual Studio. Минусом является то, что Xamarin неудобен в использовании Java библиотек и, как и с любой другой альтернативой Android Studio, вы теряете поддержку Google и расширенные встроенные функции.

Eclipse

До появления Android Studio, в качестве основного инструмента для разработки Android-приложений, разработчики использовали Eclipse. Этот IDE поддерживает несколько различных языков программирования, в том числе и Java с Android SDK. В отличие от Android Studio, Eclipse не предлагает встроенную поддержку и требует более тщательной настройки. На данный момент Google отключила официальную поддержку, поэтому, на самом деле, нет никаких оснований использовать Eclipse, вместо Android Studio. Я включил его в этот список, так как он может быть полезен тем, кто интересуется историей IDE и учится создавать приложения для Android. Так сказать для того, чтобы расширить кругозор.

GitHub

GitHub — это онлайн-сервис для хостинга и совместной разработки IT-проектов. Также он включает в себя систему контроля версий. Это очень удобно, если вам нужно сделать резервную копия вашего проекта или вы ищите людей для совместной разработки, или образец хорошего кода, который смогли бы использовать в качестве примера для разработки собственного проекта. Если вы новичок, то скорее всего будете загружать на свой компьютер код различных проектов, а потом переписывать его по своему желанию. Если вы когда-нибудь работали в команде над разработкой большого приложения, но никогда не использовали GitHub — самое время это исправить!

Другие инструменты для разработки приложений под Andro >Помимо перечисленных выше инструментов, существует еще много вариантов, например, PhoneGap, Cordova или IntelliJ IDEA для создания простых приложений, или Andyroid и Blustacks, если вам нужна эмуляция Android без установки Android Studio и AVD Manager. Также разработчикам будет полезно освоить целый ряд других программ, помимо программ программирования. Например, вы можете использовать Photoshop или GiMP для редактирования изображений, а Illustrator для создания качественных векторных изображений. Может быть вам понравится идея создать макет дизайна приложения, сделав его интерактивным при помощи InVision, ну или можно по-старинке нарисовать его вручную. Возможно вы будете использовать Blender для создания 3D-моделей для ваших игр на Android или, возможно, вы будете использовать FL Studio 12 для написания музыки. Но мой вам совет — не делайте все в одиночку, а используйте сервисы для совместной работы с фрилансерами.

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

Программирование для Andro >

Добрый день. Заинтересовался подобной темой. До этого программировал исключительно для Windows на С/С++ + DirectX для разработки простых 3D игр. Опыт разработки есть, мат. часть тоже. Но хотелось бы найти себя в чем-то новом, например, в разработке под Android. Сам Android мне близок, ибо девайс под этой ОС, но не писал под него ничего подобного. Java мне чужд, не перевариваю его (джависты, не надо сразу кидаться помидорами). Так вот, главный вопрос, который мне интересен: можно ли писать под Android не прибегая к коду Java (тот же Android NDK)? Если да, то какую посоветуете литературу (английский / русский)? И что я получу от использования исключительно С/С++, кроме сложностей реализации? Для меня важно, в целом, это скорость работы приложения и минимизация использования системных ресурсов.

Разрабатывать планирую приложения с большим вычислительным функционалом: научные приложения, сложные 3D игры с огромным кол-вом математических и физических вычислений.

Пишем игру «Жизнь» под Android используя C++ и Qt за час.

Всем привет! Недавно видел на пабликах типа ТП посты мол «делаем игру жизнь на java за час», «делаем игру жизнь на python за час», вот решил сделать пост, делаем игру жизнь под андроид используя C++ и библиотеки Qt за час.

Важно отметить что игра занимает

100 строчек кода(исключая h файлы, символы переноса и т.п.), а также то, что созданная игра будет работать и под винду, и под андроид, и под линукс, и под ios и под mac os x.

И так начнем. Правила игры жизнь я думаю вы знаете. Есть поле с клетками. Клетка может быть живая или мертвая. По прошествии хода, если вокруг мертвой клетки есть 3 живых, она становится живой. Если вокруг живой клетки будет 1 или 0 живых, то она становится мертвой, также она становится мертвой если вокруг нее более 3 живых клеток. Впринципе все, подробнее вы можете прочесть на википедии.

И так что у нас должно быть:

Поле с N*M клеток, кнопка «Новая игра», кнопка «Начать эволюцию». Поле забито прямогуольниками, изначально все пустые. При нажатии на клетку она окрашивается в черный или белый цвет, в зависимости от того какой цвет был там раньше.

2. Логика. Мы должны иметь двумерный массив(используем QT’шный вектор), в котором 0 отмечена мертвая клетка а единицей живая клетка. У меня была цель создать игру примерно за час, и поэтому этот 0 и 1 соответствуют черному и белому цветам многоугольников. Соответственно у нас есть массив с указателями на наши прямоугольники. Это не хорошо, ибо логика должна быть отделена от GUI, но для уменьшения размера кода — решил сделать так.

Должны быть реализованы функции подсчета соседей для каждой из клеток, зная положение клетки по X и Y. После каждого хода, мы рассчитываем количество соседей для каждой из клеток, и в зависимости от состояния клетки и количества её соседей добавляем клетку в массив(вектор), для изменения её состояния. Если за 1 ход не было добавлено ни 1 клетки, то игра заканчивается, выводим пользователю количество ходов

Если вы не знакомы с наследованием и библиотекой STD в C++, то вы являетесь новичком в C++ и возможно код покажется вам запутанным. К сожалению не хотелось бы писать про все это в этом посте, ибо для новичков информации в интернете — тонны, а переписывать еще раз это — просто не зачем. Если вы с этим знакомы, но незнакомы с сигнально-слотовой системой Qt тоже порекомендую прочитать over9000 материалов по этой теме. Если потребуются пояснения я отвечу в комментах.

И так, как выглядит GUI:

Скачиваем Qt Creator с официального сайта Qt(qt.io), выбираем бесплатный вариант для GPL приложений. Запускаемся, создаем новый проект, используя QWidget, с графической формой

Переходим к созданию. Переходим в режим дизайн и добавляем на форму «Graphics View» и 2 Push Button. Примерно вот так как на следующей картинке, и кликая правой кнопкой мыши по форме выбираем (Скомпоновать по сетке)

GUI готово! Теперь нам нужно перейти к непосредственно программированию.

QGraphicsView — это виджет, который может отображать графические элементы. QGraphicsView отображает элементы, который расположены на QScene. На QScene мы размешаем элементы в декартовой системе координат, а с помощью QGrahicsView мы её отображаем(можно поворачивать, увеличивать масштаб и т.п.).

Элементы бывают разных типов. Есть простые — QGraphicsRectItem — это многоугольник, который к слову нам и понадобиться. Есть QGraphicsPixMapItem который отобразит нам изображение. Есть QGraphicsLineItem — это линия. И другие.

И так, первая задача. Разместить на сцене N*M QGraphicsRectItem’ов — наших клеток. Мертвой клеткой будет считаться клетка, с Kletka->brush().color() == Qt::white живой Kletka-> brush().color() == Qt::black. И запихнуть все указатели на QGraphicsRectItem в отдельный двумерный вектор, чтобы мы могли с ними работать.

Однако, для этой задачи нам не подойдет «чистый» QGraphicsRectItem. Нужно будет создать класс наследник, и в нем реализовать свою обработку нажатия на клетку. Ведь в самом начале игры нам нужно будет выставить первичные мертвые и живые клетки на поле.

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

Создадим класс LifeRect основанный на QGraphicsRectItrem., и переопределим в нем mousePressEvent

Теперь займемся реализацией. Конструктор будет использовать конструктор с такими же параметрами как у QGraphicsRectItem(позиция по x, позиция по y, широта, высота, родитель). В событии mousePressEvent будет вызываться функция changeColor.

И так, переходим дальше. Работаем с нашим виджетом(формой) — widget.c. В этом классе реализуется логика игры.

Что нам необходимо?

1. Таймер. Каждые 0.1 секунды будет происходить 1 ход.

2. Слоты нажатия на кнопку «Старт» и «Новая игра» соответственно.

3. Размеры поля — X и Y клеток. Принимаются через конструктор.

4. Переменная для хранения количества итераций(для вывода при завершении игры)

5. Двумерный вектор(используется QVector, а не std::vector) который хранит указатели на созданные нами LifeRect’ы. К его элементам мы будем обращаться, и будем представлять живое и мертвое состояние по его цвету, как я уже и писал ранее. Если среди читателей будут новички C++ в комментах могу помочь. Просто представляйте что это массив.

6. Функция для новой игры(обнуление поля, обнуления количества итераций).

7. Функция подсчета живых соседей рядом.

И так, начнем. Собственно вот заголовочный файл:

В конструкторе присвоим начальные данные(x,y из входных, 0 итераций, укажем то что сцена пока-что пустая, родительский элемент отсутствует. Проинициализируем таймер, но запускать его не будем

Создать слот on_pushButton нужно нажав правой кнопкой по кнопке на форме, выбрать перейти к слоту, и выбрать сигнал clicked()


Дальше — интереснее. И так, по нажатию на кнопку новая игра, мы должны нарисовать графическую сцену, с X*Y мертвыми многоугольниками, и наполнить двумерный вектор указателей на многоугольники ими же. Чтобы потом,когда игрок заполнит поле и нажмет на кнопку «СТАРТ» запускается таймер, по каждому тику таймера обходить этот вектор, вычислить количество живых соседей каждой клетки, и перерисовать требуемые.

Постарался максимально прокомментировать код.

К слову говоря, позиции осей X и Y в графической сцене таковы:

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

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

Все готово! Запускаем и играем на Linux, Windows или вашем Mac.

Что потребуется(если вкратце) для запуска на Android?

1. Пакеты Android SDK и Android NDK(для C++).

2. Устройство андроид или AVD.

Вы должны сконфигурировать ваш Qt Creator, в таком виде(ваши пути), и добавить в проектах сборку Android. Потребуется скачать в AVD драйвера USB, и API требуемых версий Android. Затем уже попробовать установить приложение на телефон/эмулятор. Я могу помочь, или привести ссылки где это подробно разбирается в комментах

Пробуем на стареньком LG Optimus One с Andro >

ПРОграммирование под Android

Страницы

21 февраля 2014 г.

Архитектура операционной системы Андроид

Классический рисунок представляющий архитектуру ОС Android:

Если кому-то сложно с английским, то на всякий случай то же самое по на русском:

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

Если представить компонентную модель Android в виде некоторой иерархии, то в самом низу, как самая фундаментальная и базовая составляющая, будет располагаться ядро операционной системы (Linux Kernel).
Часто компонентную модель ещё называют программным стеком. Действительно, это определение тут уместно, потому что речь идет о наборе программных продуктов, которые работают вместе для получения итогового результата. Действия в этой модели выполняются последовательно, и уровни иерархии также последовательно взаимодействуют между собой.

LINUX KERNEL (ЯДРО ЛИНУКС)
Как известно, Андроид основан на несколько урезанном ядре ОС Linux и поэтому на этом уровне мы можем видеть именно его (версии 2.6.x). Оно обеспечивает функционирование системы и отвечает за безопасность, управление памятью, энергосистемой и процессами, а также предоставляет сетевой стек и модель драйверов. Ядро также действует как уровень абстракции между аппаратным обеспечением и программным стеком.

LIBRARIES (БИБЛИОТЕКИ)
«Выше» ядра, как программное обеспечение промежуточного слоя, лежит набор библиотек (Libraries), предназначенный для обеспечения важнейшего базового функционала для приложений. То есть именно этот уровень отвечает за предоставление реализованных алгоритмов для вышележащих уровней, поддержку файловых форматов, осуществление кодирования и декодирования информации (в пример можно привести мультимедийные кодеки), отрисовку графики и многое другое. Библиотеки реализованы на C/C++ и скомпилированы под конкретное аппаратное обеспечение устройства, вместе с которым они и поставляются производителем в предустановленном виде.
Краткое описание некоторых из них:

    Surface Manager – в ОС Andro > 3D библиотеки — используются для высокооптимизированной отрисовки 3D-графики, при возможности используют аппаратное ускорение. Их реализации строятся на основе API OpenGL ES 1.0.

На этом же уровне располагается Android Runtime – среда выполнения. Ключевыми её составляющими являются набор библиотек ядра и виртуальная машина Dalvik. Библиотеки обеспечивают большую часть низкоуровневой функциональности, доступной библиотекам ядра языка Java.

ANDROID RUNTIME (СРЕДА ВЫПОЛНЕНИЯ АНДРОИД)
На этом же уровне располагается Android Runtime – среда выполнения. Ключевыми её составляющими являются набор библиотек ядра (Core Libraries) и виртуальная машина Dalvik. Библиотеки обеспечивают большую часть низкоуровневой функциональности, доступной библиотекам ядра языка Java.
Каждое приложение в ОС Android запускается в собственном экземпляре виртуальной машины Dalvik. Таким образом, все работающие процессы изолированы от операционной системы и друг от друга. И вообще, архитектура Android Runtime такова, что работа программ осуществляется строго в рамках окружения виртуальной машины. Благодаря этому осуществляется защита ядра операционной системы от возможного вреда со стороны других её составляющих. Поэтому код с ошибками или вредоносное ПО не смогут испортить Android и устройство на его базе, когда сработают. Такая защитная функция, наряду с выполнением программного кода, является одной из ключевых для надстройки Android Runtime.
Dalvik полагается на ядро Linux для выполнения основных системных низкоуровневых функций, таких как, безопасность, потоки, управление процессами и памятью. Вы можете также писать приложения на C/C++, которые будут работать непосредственно на базовом уровне ОС Linux. Хотя такая возможность и существует, необходимости в этом нет никакой.
Если для приложения важны присущие C/C++ скорость и эффективность работы, Android предоставляет доступ к нативной среде разработки (NDK – Native Development Kit). Она позволяет разрабатывать приложения на C/C++ с использованием библиотек libc и libm, а также обеспечивает нативный доступ к OpenGL.
Доступ к устройствам и системным службам Android осуществляется через виртуальную машину Dalvik, которая считается промежуточным слоем. Благодаря использованию Dalvik для выполнения кода программы разработчики получают в свое распоряжение уровень абстракции, который позволяет им не беспокоиться об особенностях конструкции того или иного устройства.
Виртуальная машина Dalvik может выполнять программы в исполняемом формате DEX (Dalvik Executable). Данный формат оптимизирован для использования минимального объема памяти. Исполняемый файл с расширением .dex создается путем компиляции классов Java с помощью инструмента dx, входящего в состав Android SDK. При использовании IDE Eclipse и плагина ADT (Android Development Tools) компиляция классов Java в формат .dex происходит автоматически.
Как было сказано выше, инструмент dx из Android SDK компилирует приложения, написанные на Java, в исполняемый формат (dex) виртуальной машины Dalvik. Помимо непосредственно исполняемых файлов, в состав приложения Android входят прочие вспомогательные компоненты (такие, например, как файлы с данными и файлы ресурсов). SDK упаковывает все необходимое для установки приложения в файл с расширением .apk (Android package). Весь код в одном файле .apk считается одним приложением и этот файлиспользуется для установки данного приложения на устройствах с ОС Android.

APPLICATION FRAMEWORK (КАРКАС ПРИЛОЖЕНИЙ)
Уровнем выше располагается Application Framework, иногда называемый уровнем каркаса приложений. Именно через каркасы приложений разработчики получают доступ к API, предоставляемым компонентами системы, лежащими ниже уровнем. Кроме того, благодаря архитектуре фреймворка, любому приложению предоставляются уже реализованные возможности других приложений, к которым разрешено получать доступ.
В базовый набор сервисов и систем, лежащих в основе каждого приложения и являющихся частями фреймворка, входят:

  • Activity Manager – менеджер Активностей, который управляет жизненными циклами приложений, сохраняет данные об истории работы с Активностями, а также предоставляет систему навигации по ним.
  • Package Manager – менеджер пакетов, управляет установленными пакетами на вашем устройстве, отвечает за установку новых и удаление существующих.
  • Window Manager – менеджер окон, управляет окнами, и предоставляет для приложений более высокий уровень абстракции библиотеки Surface Manager.
  • Telephony Manager – менеджер телефонии, содержит API для взаимодействия с возможностями телефонии (звонки, смс и т.п.)
  • Content Providers – контент-провайдеры, управляют данными, которые одни приложения открывают для других, чтобы те могли их использовать для своей работы.
  • Resource Manager – менеджер ресурсов, обеспечивает доступ к ресурсам без функциональности (не несущими кода), например, к строковым данным, графике, файлам и другим.
  • View System – богатый и расширяемый набор представлений (Views), который может быть использован для создания визуальных компонентов приложений, например, списков, текстовых полей, таблиц, кнопок или даже встроенного web-браузера.
  • Location Manager – менеджер местоположения, позволяет приложениям периодически получать обновленные данные о текущем географическом положении устройства.
  • Notification Manager – менеджер оповещений, благодаря которому все приложения могут отображать собственные уведомления для пользователя в строке состояния.

Таким образом, благодаря Application Framework, приложения в ОС Android могут получать в своё распоряжение вспомогательный функционал, благодаря чему реализуется принцип многократного использования компонентов приложений и операционной системы. Естественно, в рамках политики безопасности.
Стоит отметить, просто на понятийном уровне, что фреймворк лишь выполняет код, написанный для него, в отличие от библиотек, которые исполняются сами. Ещё одно отличие заключается в том, что фреймворк содержит в себе большое количество библиотек с разной функциональностью и назначением, в то время как библиотеки объединяют в себе наборы функций, близких по логике.

APPLICATIONS (ПРИЛОЖЕНИЯ)
На вершине программного стека Android лежит уровень приложений (Applications). Сюда относится набор базовых приложений, который предустановлен на ОС Android. Например, в него входят браузер, почтовый клиент, программа для отправки SMS, карты, календарь, менеджер контактов и многие другие. Список интегрированных приложений может меняться в зависимости от модели устройства и версии Android. И помимо этого базового набора к уровню приложений относятся в принципе все приложения под платформу Android, в том числе и установленные пользователем.
Считается, что приложения под Android пишутся на языке Java, но нужно отметить, что существует возможность разрабатывать программы и на C/C++ (с помощью Native Development Kit), и на Basic (с помощью Simple) и с использованием других языков. Также можно создавать собственные программы с помощью конструкторов приложений, таких как App Inventor. Словом, возможностей тут много.

Урок 1. Установка Android Studio, создание эмулятора, Hello World

Какую IDE выбрать для Android?

Некоторое время назад официальной IDE для Android был Eclipse (как стандарт де-факто для Java) с плагином ADT. Некоторое время спустя среди Java-программистов начала набирать популярность IDE от JetBrains, потом для нее появился плагин для разработки под Android, и народ начал потихоньку переходить на нее с Eclipse.

Еще чуть позже Google объявляет о том, что будет делать Android Studio на базе IDEA. И вот на подходе уже вторая версия Android Studio, и Eclipse вспоминается разве что как страшный сон :)

Android Studio — официальная среда разработки под Android. По сути, Android Studio — это известная Java IDE IntelliJ IDEA с плагинами.

На данный момент существуют следующие опции при выборе IDE для Android:

  1. Eclipse. Самая популярная какое-то время назад IDE для Java, сейчас использовать ее для разработки под Android крайне не рекомендуется.
  2. IntelliJ IDEA. Отличная IDE, хорошо подходит для Android.
  3. Android Studio. Лучшая IDE для Android. От IDEA отличается мелочами, но эти мелочи очень-очень приятны и сильно облегчают наш труд :) Именно на ней мы и остановимся.

Установка Android Studio

В первую очередь, нужно убедиться, что у вас установлен JDK (Java Development Kit). Это обязательный компонент для разработки на Java, а поскольку разработка под Android ведется на Java — то и для разработки под Android тоже.

Скачать JDK можно по этой ссылке (официальный сайт, само собой, JDK бесплатен :)) Выбирайте самый новый JDK, и именно JDK , а не JRE!

Теперь перейдем к установке Android Studio.

Для начала, Android Studio необходимо скачать. В одном установщике будет все необходимое — сама IDE, Android Emulator, Android SDK. То, чего нет в комплекте, инсталлятор докачает самостоятельно.

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

Здесь, как следует из скриншота, установщик спрашивает, куда ставить студию, и куда ставить SDK. Если с самой студией все понятно, то SDK нужно быть внимательным. Как опять же следует из скриншота, для установки SDK нужно минимум 3.2 GB места на диске. Это минимум, на самом деле, места нужно больше, поскольку через какое-то время вам нужно будет докачивать обновленный SDK. так что, если вы не уверены, что места в будущем хватит — лучше измените местоположение на более вместительный диск.

После этого понадобится стандартно несколько раз нажать на кнопочку «далее», и на этом установка Android Studio завершена.

Настройка Android Studio

При первом запуске Android Studio задаст вам стандартный вопрос об импорте конфигурации:

По умолчанию будет выбран тот же чекбокс, просто нажмите на кнопку «ОК».

После этого Android Studio начнет качать Android SDK. Это может занять некоторое время. Если загрузка завершится неудачей, IDE предложит попробовать еще раз — обязательно нажмите «Retry».

После окончания загрузки нажмите «Finish».

В принципе, на этом установка закончена, но я бы порекомендовал произвести еще некоторые настройки.

Во-первых, я советую сменить тему на темную («Darcula»).

По началу раз светлый текст на темном фоне может показаться вам непривычным, но поверьте — для глаз так намного легче. Разве что в темное время суток при Alt-Tab’е на «светлый» браузер смена фона будет резать глаза, но для того, чтобы этого не было, я рекомендую поставить замечательную программку f.lux.

Во-вторых, поставьте галочки «show line numbers» и «show method separators»:

Первая будет отображать номера строк слева от текста, вторая — будет рисовать разделители между методами в коде.

Эти две опции невероятно важны, а особенно для новичков, и я не понимаю, почему они выключены по-умолчанию.

В-третьих, настройте автодополнение. Для этого в «Case sensitive completion» выберите «None»:

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

Стандартное значение этой опции, как и прошлых двух, вызывает у меня недоумение.

Создание первого проекта

Что ж, с настройкой и установкой Android Studio мы разобрались, пришло время создать наш первый проект.


В главном окне Android Studio нажмите на «Start a new Android Studio project«:

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

В первом нужно задать имя приложения, домен компании (из этих двух параметров будет создано имя пакета), и расположение проекта на диске:

В Android, как и в Java, основным идентификатором приложения является имя пакета. Если вы ранее работали с Java, вы знаете, что это такое. Тем же, кто не знает, рекомендую гугл, или, например, вот эту статью.

Далее Android Studio спросит нас, какие и каких версий SDK мы хотим использовать. Пока что нам хватит «Phone and Tablet» SDK, версию API поставьте 16 вместо рекомендуемой 15-й, поскольку API 15 уже неактуально и совсем не распространено:

На следующем экране нас спросят, какие компоненты приложения мы хотим создать. Выберите «Empty Activity»:

На следующем шаге просто нажмите «Finish», ничего не меняя.

Далее, нам придется подождать некоторое время (от минуты до пяти минут, в зависимости от мощности вашего компьютера), пока Android Studio создает проект.

По завершению этого процесса вы увидите, наконец-то, свой первый проект:

Он уже вполне работоспособен, но чтобы его запустить, нам понадобится эмулятор Android.

Создание эмулятора Android

Для создания эмулятора Andro >

Потом на эту кнопочку:

А потом просто несколько раз кликните «Next» и, наконец, «Finish»

Запуск Hello World

Пришло время запустить наш первый проект, созданный в Android Studio!

Нажмите на вот эту кнопку (или Shift-F10):

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

Поставьте выделенную стрелкой галочку и нажмите «ОК». Начнется сборка проекта, запуск эмулятора, установка приложения на эмулятор, и запуск приложения.

На это уйдет некоторое время (чем мощнее ваш компьютер — тем меньше времени понадобится), поскольку эмулятор — вещь достаточно медлительная, несмотря на колоссальные улучшения в последние пару лет.

И вот, по прошествии 1-10 минут (после запуска эмулятора проекты, конечно же, будут собираться и запускаться быстрее), вы, наконец, увидите свой Hello World на экране эмулятора!

На этом все, а в следующем уроке мы рассмотрим структуру Android-проекта и систему сборки Gradle.

Новые уроки добавляются каждый день! Чтобы ничего не пропустить, подпишитесь на нашу группу ВКонтакте, или на рассылку по e-mail (обещаем, спама не будет. честно.)

Android — под андроид

Итак, вы решили стать разработчиком мобильных приложений для операционной системы Android. Это отличное решение, но без определенных знаний работать не получится. Как минимум вам нужно обучиться программированию. Есть несколько языков программирования, и вам нужно будет выбрать, с какого вы начнете. Разница между ними есть, и разобраться может быть не слишком просто.

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

  • Java – это официальный язык разработки для Android, и он поддерживается средой разработки Android Studio от Google. Выучить его может быть не так просто.
  • Kotlin – этот язык был представлен недавно в качестве второго официально поддерживаемого языка. Во многом он похож на Java, но начать работу с ним проще.
  • C/C++ – Android Studio поддерживает C++. Этот язык еще сложнее, но он активно применяется при разработке игр.
  • C# – этот язык может понравиться начинающим. Он поддерживается средами разработки Unity и Xamarin. Они дают преимущества при разработке игр и продуктов для разных платформ.
  • BASIC – этот язык поддерживает среда разработки B4A IDE, которая является простым, но мощным инструментом.
  • Corona/LUA – среда LUA хороша для разработки кросс-платформенных продуктов. Она значительно упрощает создание приложений и предоставляет доступ к нативным библиотекам.
  • PhoneGap (HTML, CSS, JavaScript) – этот вариант подходит для тех, кто умеет создавать интерактивные веб-страницы. С PhoneGap вы сможете похожим образом создавать кросс-платформенные приложения.

Теперь разберем эти варианты подробнее.

Язык программирования Java первым приходит в голову, когда речь заходит о разработке под Android. Java был выпущен компанией Sun Microsystems в 1995 году. Он используется для разного типа приложений. Если говорить об Android-приложениях, Java – это лучший выбор для тех, кто хочет уйти в разработку для Android с головой. Однако это не самый лучший язык для новичка. Вы непременно столкнетесь с трудностями. Если вы начинающий, хотите создать игру или хотите начать обучение, но еще не определились, какого именно результата вы хотите достичь, возможно, следует начать с чего-то более простого.

Kotlin

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

Не самый лучший выбор для создания простых приложений. Вы можете работать с языком в Android Studio с помощью Android NDK, но в отличие от Java и Kotlin он не выполняется на Java Virtual Machine. Однако он работает нативно на устройстве, что может дать вам больше возможностей в работе с памятью. Вы можете добиться с его помощью лучшей производительности в случае с 3D-играми. Если это ваш выбор, готовьтесь к трудностям. Возможно, вам лучше использовать готовый игровой движок для создания игр.

C# – это более простая версия C и C++, разработанная компания Microsoft. С этим языком вам не нужно заботиться о работе с памятью, как и в случае с Java. Однако C# более современный и чистый, в сравнении с Java. C# и Unity окажутся очень полезными и простыми в разработке игр. Для разработки приложений среда Unity не так хороша. C# – отличный выбор, но он ограничит ваши возможности в случае, если вы желаете стать профессиональным Android-разработчиком.

BASIC

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

Corona

Corona в связке с LUA позволит разрабатывать не только для Android, и это значительно проще, чем начинать учить Java. Вам понравится, и результат порадует, но для того, чтобы развивать свои навыки, придется учить что-нибудь еще. Как и в случае с BASIC, профессионалом не стать.

PhoneGap

Последний вариант годится для тех, кто хорош в веб-разработке и может создать интерактивный сайт, используя HTML, CSS и JavaScript. PhoneGap позволит этими же инструментами создать приложение. Этот вариант имеет очень мало общего с разработкой для Android, но подойдет, если вы преследуете конкретные цели и не планируете разрабатывать для Android в будущем.

Вариантов много. Уверены, вы сможете сделать правильный выбор.

По материалам Android Authority

14 комментариев Оставить свой

> Kotlin – этот язык был представлен недавно в качестве второго официально поддерживаемого языка

вообще то в качестве first class programming language for Android

> Вариантов много. Уверены, вы сможете сделать правильный выбор.

Выбор даже проще, хотите быстрые, оптимизированные и с малым весом приложения — выбор за Android SDK и Java/Kotlin.
Если качество приложения не важно — то все остальное.

Corona/LUA и PhoneGap это вообще дно по производительности. Лучше бы упомянули ReactNative или Flutter в качестве меньшего из зол.

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

Перед изучением котлина, если это ваш первый язык програмирования, обязательно изучите Java Core и принципы ООП. Это основа основ. Без этого будет каша в голове, а в коде непонятное месиво. ��

Можете задавать вопросы, постараюсь ответить ��
Кратко о себе, я разрабатываю андроид приложения уже 4 года. Material design евангелист, обожаю когда приложение работает не только быстро, без ошибок, но и красиво.

Разработка нативными инструментами(Android SDK, Java/Kotlin) всегда будет на уровень выше по качеству приложения, его поддержке и отладке чем разные кроссплатформенные фреймворки типа ReactNative, PhoneGap и тд.

Так какой же язык лучше для новичка, что бы потом хорошо зарабатывать?

Не нужно сразу думать о заработке, нужно думать о том, как выжать максимальную пользу с обучения. Например, неплохо зарабатывают веб-разработчики (я понимаю что мы говорим не о вебе, но это для примера), но ты же не выучишь сразу фреймворк django для питона (он сложный, а для человека, который ни разу не связывался с программированием, вообще непосильный. Я бы посоветовал для начала выучить Pascal: у него вроде и синтаксис не слишком сложный и достаточно прост в обучении. Да, функционал ОЧЕНЬ ограничен, да и не нужен сейчас Pascal никому, но ты научишься многим основам которые очень облегчат дальнейшее обучение.
Это лично мои советы и ты можешь к ним не прислушиваться, но по моему обучаться именно так- самый простой способ

А на сколько важна матиматика, к примеру я в ней не очень, смогу ли я без нее освоить программирование?

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

Английский я знаю, математику не очень, но хочу изучать java , пока пытаюсь по видео урокам, за какой периуд можно в среднем освоить язык?

в среднем 2-3 месяца чтобы уверенно чувствовать себя в Java Core.

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