Android — Hello World Example — Tutorialspoint

Let us start actual programming with Android Framework. Before you start writing your first example using Android SDK, you have to make sure that you have set-up your Android development environment properly as explained in Android — Environment Set-up tutorial. I also assume that you have a little bit working knowledge with Android studio.

So let us proceed to write a simple Android Application which will print «Hello World!».

Create Android Application

The first step is to create a simple Android Application using Android studio. When you click on Android studio icon, it will show screen as shown below

You can start your application development by calling start a new android studio project. in a new installation frame should ask Application name, package information and location of the project.−

After entered application name, it going to be called select the form factors your application runs on, here need to specify Minimum SDK, in our tutorial, I have declared as API23: Android 6.0(Mashmallow) −

The next level of installation should contain selecting the activity to mobile, it specifies the default layout for Applications.

At the final stage it going to be open development tool to write the application code.

Anatomy of Android Application

Before you run your app, you should be aware of a few directories and files in the Android project −

This contains the .java source files for your project. By default, it includes an MainActivity.java source file having an activity class that runs when your app is launched using the app icon.

res/drawable-hdpi

This is a directory for drawable objects that are designed for high-density screens.

This is a directory for files that define your app’s user interface.

This is a directory for other various XML files that contain a collection of resources, such as strings and colours definitions.

AndroidManifest.xml

This is the manifest file which describes the fundamental characteristics of the app and defines each of its components.

Build.gradle

This is an auto generated file which contains compileSdkVersion, buildToolsVersion, applicationId, minSdkVersion, targetSdkVersion, versionCode and versionName

Following section will give a brief overview of the important application files.

The Main Activity File

The main activity code is a Java file MainActivity.java. This is the actual application file which ultimately gets converted to a Dalvik executable and runs your application. Following is the default code generated by the application wizard for Hello World! application −

Here, R.layout.activity_main refers to the activity_main.xml file located in the res/layout folder. The onCreate() method is one of many methods that are figured when an activity is loaded.

The Manifest File

Whatever component you develop as a part of your application, you must declare all its components in a manifest.xml which resides at the root of the application project directory. This file works as an interface between Android OS and your application, so if you do not declare your component in this file, then it will not be considered by the OS. For example, a default manifest file will look like as following file −

The action for the intent filter is named android.intent.action.MAIN to indicate that this activity serves as the entry point for the application. The category for the intent-filter is named android.intent.category.LAUNCHER to indicate that the application can be launched from the device’s launcher icon.

The @string refers to the strings.xml file explained below. Hence, @string/app_name refers to the app_name string defined in the strings.xml file, which is «HelloWorld». Similar way, other strings get populated in the application.

Following is the list of tags which you will use in your manifest file to specify different Android application components −

elements for services

elements for broadcast receivers

elements for content providers

The Strings File

The strings.xml file is located in the res/values folder and it contains all the text that your application uses. For example, the names of buttons, labels, default text, and similar types of strings go into this file. This file is responsible for their textual content. For example, a default strings file will look like as following file −

The Layout File

The activity_main.xml is a layout file available in res/layout directory, that is referenced by your application when building its interface. You will modify this file very frequently to change the layout of your application. For your «Hello World!» application, this file will have following content related to default layout −

This is an example of simple RelativeLayout which we will study in a separate chapter. The TextView is an Android control used to build the GUI and it have various attributes like android:layout_width, android:layout_height etc which are being used to set its width and height etc.. The @string refers to the strings.xml file located in the res/values folder. Hence, @string/hello_world refers to the hello string defined in the strings.xml file, which is «Hello World!».

Running the Application

Let’s try to run our Hello World! application we just created. I assume you had created your AVD while doing environment set-up. To run the app from Android studio, open one of your project’s activity files and click Run icon from the tool bar. Android studio installs the app on your AVD and starts it and if everything is fine with your set-up and application, it will display following Emulator window −

Congratulations. you have developed your first Android Application and now just keep following rest of the tutorial step by step to become a great Android Developer. All the very best.

Android Studio Hello World Tutorial

  • Questions: Ask
  • Latest
  • Tutorials:Latest
  • Topics

This tutorial explains you the steps for creating Android Studio Hello World program. You will learn how to learn create and execute the Android Hello World example.

This tutorial explains you the steps for creating Android Studio Hello World program. You will learn how to learn create and execute the Android Hello World example.

Android Studio Hello World Tutorial — Learn application development using Android Studio IDE

Video tutorial on developing Hello World Example using Android Studio Development IDE.

In this video tutorial we are going to explain you the steps you should follow to quickly develop and test the Hello World example program in Android Studio IDE. The Android Studio is latest development tool from Google for the development of Mobile application using Android SKD.

Steps to develop the Hello World application in Android Studio

Step 1: JDK 7 is stalled and configured on your computer

Step 2: Android Studio is installed

Step 3: Start the Android Studio and then click on the New project window and follow the installer to create the project.

Step 4: Run the project and create the emulator.

Step 5: Select the emulator and test the project.

Following video explains the complete process:

How to create Hello World Project using Android Studio

In this Android Video tutorial we explain how to create ‘hello world‘ project using android studio. This hello world android project is very useful for the developers who are beginners for Android apps development. To create your first Hello World project in Android studio just follow the steps below:

In the first step of the Android studio application project of how to create Hello World project, go to the start button and click in the Android Studio. Now select new project.

It will open a new window that will show you a form to fillup. Give you project application name as hello world. Now, write the package name as here it is written ‘ net.roseindia.helloworld’ (You can change the package name as per your choice). In the field of minimum required SDK, choose the version of Android you are using as here Android 4.2 ( jelly bean) has been used. Now, in the field of Target SDK: choose the Android 4.2 (Jelly bean). Then choose the Next Button to move the next level of the project.

In this window you will see the android icons as well as other options that will allow you to change the pattern of image like small and big. Moreover, you can change the foreground scaling as well as the background colors through this. After make changes as per your requirement, choose the next button.

Now, in the opened window you can find lists of options to create a new blank activity or new action bar or navigation element. Choose your appropriate section and click on the next button.

Here, you will create the new activity class. Once you select your activity class, you need to click on the finish button.

Now, the android studio will configure the the project that would allow you create «helloworldproject».

Now, your Helloworldproject is ready and you can see the hello world tree structure.

Now, click on the Source file by clicking on the source section of the project. Here, you will see the source code of the application with different values. Click on the Source Value section to find the source code. In the next step, select the string.xml file and Change as per your project name and save the source code.

To run the helloworld project you need to run the project. To do so, click on the run button icon and choose your running device. By default it will selected the lunch emulator. Here we will show you how to create device in your android studio. Click on the the android virtual device sections( File browse selection button). If any device elumator is found, delete it. If you do not find any device elumator then click on the new button.

Now, you will see the window that is to be filled with data details. In this AVD section, you need to give your virtual device name. Select your device as here it is selected as Nexus 7 (7.27″ 800 x 1280 tvd). Now select the Target as Android 4.2.2 API level 17. Modify you memory option as 512 (otherwise your program will crass because it not support more then 512 memory). Choose your SD card Size as 1024 and click on Ok Button. Now your Android virtual device is ready. So, close the window. Now, select your running android virtual device name. Then Click on the Ok button.

In the next step, your virtual elumator will start and you can see the window to start the application.

Now your Hello World Application is created in the Android Studio.

So, this is how you can create your own hello world program in Android studio by following simple and easy steps as shown in this android video tutorial on helloworldproject.

Back to the Android Video tutorials home page.

Пишем Hello World на Android. Работаем в Android Studio

В этой статье мы напишем первое свое приложение на Android. Писать классический Hello world или правильнее будет написать Hello Android мы будем в современной среде разработки Android Studio.

Первые шаги: установка и настройка

Для начала нам нужно установить Android Studio и настроить среду разработки. Обратите внимание, у вас на компьютере должна уже быть предустановлена JDK 6 или поздняя версия (как скачать и установить JDK). Приступайте к установке Android только после того, как вы пройдете все шаги установки JDK, описанные по ссылке.

Если у вас стоит Windows , то для установки требует всего-лишь запустить скачанный файл .exe файл и следовать простым инструкциям мастера установки. Если вы работаете на компьютере с Mac OS X , то вам нужно смонтировать образ диска. Для этого сделайте двойной щелчок и перетащите Android Studio в папку Applications.

Запуск Android Studio и создание проекта

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

На экране приветствия видны варианты импорта проекта из системы контроля версий, Eclipse ADT, проекта Gradle или из готовых примеров кода, которые предоставляются вместе с Android. В случае выбора любого из вариантов импорта, Android Studio сама добавит необходимые файлы и настроит конфигурацию проекта для вас. Из этого списка выберите пункт Start a new Android Studio project.

Далее нас просят ввести Название приложения (Application name) и Домен (Company Domain), который потом будет реверсирован в имя пакета. Вводим названия и нажимаем кнопку Next.

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

Из всех доступных вариантов я бы предпочел пока выбирать Android 4.0 (API 15) :

Жмем Next и попадаем на следующий экран, где нам будет представлен список возможных вариантов Hello world проектов с некоторыми уже настроенными компонентами. Нам нужен пункт Empty Activity:

Нажимаем Next и в следующем экране Finish ничего при этом не меняя.

После нажатия на кнопку Finish, у вас должно появиться маленькое окно с информацией о ходе генерации проекта:

Это может занять довольно много времени, но не больше 1-2 минуты. После этого появится готовый проект Hello world, который можно запускать:

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

Нам нужно создать эмулятор какого-то устройства, чтобы протестировать только что сгенерированный проект. Для этого идем в AVD Manager и создаем новый девайс:

Как только новый эмулятор будет создан, нажимайте треугольник Run в столбце Actions:

После запуска эмулятора, в Android Studio нужно нажать на кнопку Run:

и выбрать з выпадающего списка только что запущенный эмулятор:

И смотрим в Android эмулятор:

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

Пишем, собираем и запускаем HelloWorld для Android в блокноте

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

По-сути эта статья является переводом и переработкой статьи Building Android programs on the command line под современные на данный момент JDK (7) и Android SDK (API level 19). Кроме того, я многое упростил и добавил кое-что от себя.

Используя только блокнот, мы напишем совсем маленькое учебное Android-приложение. А затем скомпилируем его, соберём и запустим на устройстве — и всё через командную строку. Заинтересовало? Тогда прошу.

Вступление

Я был поражён, насколько сложным и запутанным является шаблонное приложение в android studio. Оно просто нагромождено ресурсами. И в меньшей степени — кодом и скриптами. Хотя всё что оно должно делать — это выводить на экран HelloWorld! Кроме того, в книгах и руководствах, которые я просмотрел, объясняется, как с помощью диалоговых окон создать IDEA-шный или эклипсовый HelloWorld — и от него уже идёт дальнейшее повествование. А что происходит «под капотом» — остаётся только гадать.

Долгие поиски были почти безрезультатны — на русском языке статей по данной теме я не нашёл, а на английском — была устаревшая информация и кое-что пришлось дорабатывать напильником, гуляя по stackowerflow и документации. Когда я разобрался, то решил восполнить пробел — вдруг кому-то пригодится? Собственно, так и появилась эта статья.

Мы создадим свой шаблонный проект, который идеально использовать для обучения. Там не будет ничего лишнего, только всё самое необходимое. А потом детально разберём, как его собрать и запустить на вашем Android-устройстве. В конце статьи будет ссылка на скачивание архива с итоговым проектом — если возникнут какие-то вопросы — можете свериться с ним.

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

Подготовка

Для начала у вас должен быть установлен JDK 7 и android SDK. Последний кстати нужно чуточку настроить после установки.

Главное требование перед прочтением этой статьи — кроме установленного софта вы должны уже уметь запускать на вашем девайсе тот Helloworld, который поставляется вместе с Eclipse или Android Studio. Т.е. у вас должен быть настроен драйвер usb, включена отладка по usb на вашем девайсе и т.д… Или же создан и настроен эмулятор. Это совсем элементарные вещи, и их рассмотрение выходит за рамки данной статьи — в сети достаточно информации. Кстати прочитать пару глав из книг тоже будет не лишним — хотя бы понимать, как устроен манифест, ресурсы, да и вообще основы языка Java. А в этой статье я опишу то, о чём книги молчат.

Написание проекта

Для начала, создайте некоторую папку, где будет ваш проект. Назовём её mytestapp. В ней создайте ещё 4 папки — bin,obj,res и src.

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

Добавьте в него следующее:

Тут всё просто. Мы намерены сделать приложение с именем TestApp, которое при старте запускает класс MainActivity. Осталось только написать этот небольшой класс — и приложение готово. Если нужно — отредактируйте в теге uses-sdk свойство android:targetSdkVersion — поставьте ту версию, которая у вас.

Далее — создадим простейший ресурс — строку Hello test app. Вообще-то мы могли обойтись и без ресурса, вставив эту строку прямо в Java код. Но некоторые шаги сборки работают с ресурсами, и чтобы увидеть интересные моменты — мы всё-таки поработаем с ними.

Давайте создадим в папке res папку values. Все ресурсы следует разбивать по папкам. Далее — в ней создадим пустой файл strings.xml. а в нём напишем

Вот и все ресурсы, нам необходимые. Просто, не так ли? Далее создадим внутри src папку com, в ней папку example, потом ещё ниже по иерархии папку testapp — а там уже наш класс MainActivity.java. Добавим туда код

Структура каталогов должна получится такая

И это собственно всё, что нам было нужно для простейшего проекта. Для сравнения —

Сборка

Теперь же подходим к самому важному и сложному этапу. Мы будем много работать с командной строкой, поэтому рекомендую вам все команды, данные здесь, записывать в один файл и назвать его comp.bat. В конце файла после команд можете добавить pause, чтобы был виден результат и ошибки — если таковые возникнут.

Подготовка путей

Первое, что мы сделаем для удобства и краткости — создадим специальные переменные, в которых будем хранить пути. Для начала — определим наши основные директории. Вам нужно заменить пути к JDK и Android SDK на те, которые у вас.

Далее — пути непосредственно к программам. Я рекомендую вам просмотреть каталоги ваших SDK и убедится в том, что всё на месте. Также подкорректировать версии, которые присутствуют в путях.

Между прочим, в более старых версиях утилита aapt находилась в platform-tools — и я не исключаю что она иили другие могут слинять куда-нибудь ещё. Так что будьте внимательны. Если вы всё правильно сверите сейчас — то остальная часть статьи должна пройти гладко.

И ещё — в пару переменных забьём наши пакеты и классы. Если заходите их сменить — вам не придётся бегать по коду — все настройки вначале.

Подготовка к компиляции

А теперь самое интересное. Помните, как классические Java-программы компилируются и запускаются в 2 строчки? Здесь мы используем тот же самый javac, однако кроме него нам предстоит использовать ещё много утилит.

Для начала спрошу — а вы никогда не задумывались, как работает загадочный класс R? Собственно меня он сперва смутил из-за его сверхъестественных возможностей. Как на этапе компиляции можно через поля класса обращаться к XML-файлам в других каталогах? Я предположил, что тут орудует прекомпилятор — так оно и оказалось.

Собственно, есть специальная утилита AAPT — она проходится по каталогам ваших ресурсов и создаёт тот самый R.java. Оказывается, всё очень даже просто — это просто класс, в составе которого другие статические вложенные классы с целочисленными константами. И всё! Он выглядит примерно так

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

Давайте разберёмся, что к чему. AAPT — Android Asset Packaging Tool — буквально «упаковщик андроид-имущества». Его опции:

  • package — говорит, что нам нужно именно упаковать ресурсы (а не добавить или удалить)
  • -f — перезапись существующего R.java, если таковой имеется
  • -m — разместить R.java в надлежащих пакетах, а не в корне указанного в -J пути
  • -S — после этой опции мы указываем каталог с ресурсами
  • -J — после этой опции мы указываем куда сохранить получившийся R.java
  • -I — после этой опции мы указываем путь к подключаемой библиотеке — включаем android.jar

После его выполнения в каталоге src должен появится тот самый файл R.java. Проверьте.

Теперь в нашем проекте нет никакой магии и он полностью синтаксически корректен для обычного Java-компилятора. Давайте скомпилируем его.

Если вы ранее работали с java, то понять эту строчку для вас не составит труда. Однако я всё-таки объясню, что к чему:

  • -d — куда поместить итоговые пакеты и *.class-файлы
  • -cp — classpatch — укажем путь к библиотеке android.jar
  • -sourcepath — пути, где находятся (или могут находится) наши *.java файлы

После выполнения в папке obj должны находится пакеты с нашими классами в виде байт-кода (*.class). Но вот ведь незадача — виртуальная машина андроида с ним не совместима! Но так было задумано и на это есть причины. А мы используем конвертер, который делает из class-файлов dex-файл, понятный для нашего зелёного R2D2.

Опция —dex указывает на то, что нам нужно преобразовать из *.class в *.dex. Затем после опции —output мы задаём путь к итоговому файлу classes.dex. И последний аргумент в этой команде — путь непосредственно к пакетам, содержащим *.class файлы

Убедитесь в том, что в папке bin находится наш classes.dex. Теперь осталось только упаковать его вместе с ресурсами в APK-файл. Сделаем это:

Здесь опции аналогичны тем, которые мы использовали при создании R.java:

  • package — говорит, что нам нужно именно упаковать ресурсы (а не добавить или удалить)
  • -f — перезапись существующего AndroidTest.unsigned.apk, если таковой имеется
  • -M — после этой опции мы указываем путь к файлу манифеста
  • -S — после этой опции мы указываем каталог с ресурсами
  • -I — после этой опции мы указываем путь к подключаемой библиотеке — включаем android.jar
  • -F — после этой опции мы указываем куда сохранить получившийся AndroidTest.unsigned.apk
  • последний аргумент — путь к папке с dex — файлами

В папке bin теперь должен появится AndroidTest.unsigned.apk. И мы назвали его не просто так! У него нет цифровой подписи. Андроид запрещает устанавливать и запускать приложения без подписи. Но создать её не так-то трудно, как может показаться на первый взгляд

Собственно, эти строчки запускают 2 Java-утилиты, которые не имеют никакого отношения к Android SDK — но они необходимы. Первая создаёт файл AndroidTest.keystore (проверьте его наличие), а вторая — этот файл соединяет с AndroidTest.unsigned.apk. Получается файл AndroidTest.signed.apk. Вот такой дикий крафт файлов. Но однажды создав bat-скрипт запускайте его — и он будет делать всё это в автоматическом режиме.

Я думаю, не стоит тратить время на детальный разбор опций этих утилит в пределах данной статьи. Просто нужно уловить суть — они берут AndroidTest.unsigned.apk, подписывают его файлом AndroidTest.keystore и сохраняют в AndroidTest.signed.apk. Если есть желание, можете почитать в документации.

У вас, скорее всего, будет предупреждение «Warning: No -tsa or -tsacert is provided and this jar. «, но не обращайте внимание.

Запуск

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

Собственно, первая строчка удаляет программку, если она уже там есть. Для повторных запусков пригодится. Вторая — устанавливает APK на ваш девайс или эмулятор. Третья же — запускает. Давайте более подробно разберём её аргументы:

  • shell — мы хотим выполнить некоторые команды на нашем девайсе
  • am — используем для выполнения команд activity manager
  • start — мы хотим запустить некоторое Activity
  • имя пакета и полное имя класса (включая пакет), которые мы стартуем

Если всё прошло удачно, вы увидите что-то вроде этого:

Заключение

После сборки всех файлов дерево каталогов должно быть примерно таким.

Теперь вы можете наглядно увидеть и понять, как происходит сборка андроид-приложения на более низком уровне. Когда будете использовать IDE — если сборка вдруг пойдёт не так (а такое часто бывает) — сможете вырулить ситуацию как надо. Также обратите внимание на то, что итоговый apk-файл занимает всего около 4 килобайт.

Выкладываю архив проекта (Нажимайте Файл-Скачать). Обратите внимание, что я добавил туда ещё один маленький скрипт — clear.bat. Он удаляет все созданные при сборке файлы. И поставил его запуск на начало comp.bat. Также добавил комментарии после Rem — по шагам.

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

Android studio hello world

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

Шаг 1. Новый проект.

Запустить Android Studio и выбрать «New Project»(рис. 2.1).

В новом окне отобразится форма настройки нашего проекта(рис. 2.2). Здесь мы можем указать имя приложения, домен компании, имя пакета и путь до проекта.

Обычно компании используют свои зарегистрированные доменные имена в качестве основания для имен пакетов — например, com.example.myapplication для пакета myapplication, созданный программистом из studyj.example.com.

Нажимаем «Next».

Теперь нам требуется выбрать форм-факторы устройств, на которых будет работать наше приложение. В качестве минимума SDK рекомендуется выбрать API 10, Android 2.3.3 (Gingerbread), как показано на рис. 2.3. Это обусловлено тем, что приложение будет поддерживаться большинством существующих Android устройств(хоть и в ущерб некоторой функциональности).

После того как мы нажмем «Next», нам предложат выбрать activity(активность) нашего проекта из предложенных вариантов (рис.2.4). Выбираем «Blank Activity» и снова жмем «Next».

Настройки активности (рис. 2.5) оставляем по-умолчанию.

Нажимаем кнопку «Finish», чтобы закончить создание проекта.

Примечание: Если у вас возникает ошибка SDK, проверьте build.gradle в папке вашего приложения. Убедитесь, что compileSdkVersion, minSdkVersion, и targetSdkVersion совпадают со значениями 19, 10, 19 соответственно.

Шаг 2. Android Virtual Device (AVD).

Запустите Android Studio и нажмите на иконку AVD Manager в панели инструментов (рис. 2.6). Вы можете открыть его точно также перейдя во вкладку Tools->Android->AVD Manager.

После запуска AVD Manager создайте новый AVD и перенесите в него настройки, указанные на рис. 2.7

В результате будет создан виртуальное устройство, характеристики которого отобразятся в новом окне (рис. 2.8). Нажимаем кнопку «Ок», наш AVD создан и теперь отображается в панели AVD Manager.

Шаг 3. Запуск приложения.

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

Выберите «NexusS» в списке запускаемых эмуляторов, когда вас об этом попросят (рис. 2.9). Наберитесь терпения, первый запуск эмулятора может занять до 20 минут. Именно из-за этого в прошлом уроке мы установили Genymotion.

Для того, чтобы воспользоваться эмулятором Genymotion нам необходимо нажать на иконку «Genymotion Device Manager» на панели инструментов (рис. 2.10).

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

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

Мы сделали это! Теперь мы готовы к тому, чтобы приступить к разработке наших первых приложений. Дальше нас ждет самое интересное.

Adblock
detector
Sr.No. Folder, File & Description
1