Как скомпилировать приложение для андроид inteliga ide
Перейти к содержимому

Как скомпилировать приложение для андроид inteliga ide

  • автор:

 

В чем писать код начинающему Android-разработчику: выбираем IDE

Редакция блога Нетологии рассказала, что такое IDE, какие преимущества у IntelliJ IDEA и Android Studio и как установить программы.

Обучение в онлайн-университете: курс «Android-разработчик с нуля»

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

Что такое IDE

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

Как IDE помогает писать код

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

  • Подсказывает возможные ошибки, например, если вы забыли закрыть скобку. Программа сразу напомнит об этом и не придется тратить время на запуск, проверку сообщений об ошибках и правку. Это можно сравнить с подчеркиванием ошибок в Word.
  • Когда вы используете какую-либо функцию, показывает документацию для нее. Это работает, как справка в Excel, когда вы применяете какую-либо функцию.
  • Помогает быстро переименовать переменную. Если переменная использована в нескольких местах, все можно править в один клик.
  • По мере написания кода ищет в нем ошибки и указывает на них.

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

Как IDE запускает приложение

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

Какие IDE используют Java-разработчики

IntelliJ IDEA. Одна из популярных сред разработки. Доступна в двух версиях — бесплатной Community edition для самостоятельных разработчиков и платной Ultimate edition для компаний. Подходит для мобильной разработки под Android и десктопной Java для запуска на компьютере.

Android Studio. Основана на IntelliJ IDEA, предлагает все нужные функции и заточена под проекты на Android. IDE рекомендует Google, ее используют начинающие разработчики и опытные Android-девелоперы как Джейк Уортон.

IDE Eclipse не стоит использовать. Среда разработки устарела, и в 2016 году в Google отказались от поддержки ее плагинов для Android-разработки.

Преимущества IntelliJ IDEA

Мультиязычная. Поддерживает разные языки программирования. Вы сможете писать код на Java, дальше освоить Kotlin и использовать его.

Интегрирована с Git и Github. Позволяет использовать систему контроля версий Git и отправлять проекты на Github в один клик.

Позволяет настроить нужное окружение. Чтобы запускать тесты в IDE, достаточно докачать Java Devkit.

Как установить и настроить IntelliJ IDEA

Предварительно скачайте Java Development Kit по ссылке. Выберите версию для любой операционной системы. Рекомендуем установить JDK 8 если вы будете писать в Android Studio Android-приложения. Остальные могут использовать версию JDK 11.

В чем писать код начинающему Android-разработчику: выбираем IDE

В чем писать код начинающему Android-разработчику: выбираем IDE

Следуйте подсказкам установщика.

В чем писать код начинающему Android-разработчику: выбираем IDE

Скачайте Community Edition-версию программы по ссылке. Можно выбрать версию для любой операционной системы — Windows, MacOS или Linux.

В чем писать код начинающему Android-разработчику: выбираем IDE

Установите, следуйте подсказкам инсталлятора. При первом запуске программа предложит импортировать настройки. Так как установленных ранее версий не было, выберите Don’t import settings.

В чем писать код начинающему Android-разработчику: выбираем IDE

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

В чем писать код начинающему Android-разработчику: выбираем IDE

Запустите программу. Когда откроется окно проекта, выберите Create New Project.

В чем писать код начинающему Android-разработчику: выбираем IDE

В верхнем левом углу выберите Java, нажмите Next.

В чем писать код начинающему Android-разработчику: выбираем IDE

В качестве шаблона выберите Java Hello World.

В чем писать код начинающему Android-разработчику: выбираем IDE

Выберите папку, в которую нужно сохранить проект.

В чем писать код начинающему Android-разработчику: выбираем IDE

В правом верхнем углу найдите зеленую кнопку Play и нажмите ее — вы запустили первую скомпилированную программу.

В чем писать код начинающему Android-разработчику: выбираем IDE

Преимущества Android Studio

Рекомендована Google. IDE поддерживают и развивают в корпорации, среда разработки оптимальна для создания приложений для Android.

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

Как установить Android Studio

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

Скачайте Android Studio, откройте exe-файл и запустите его. Кликните Download, чтобы операционная система вашего ПК определилась автоматически, или выберите нужную вручную в Download Options. Нажимайте Next, пока установщик не спросит путь. Первый укажите для Android Studio, второй — для Android SDK. Желательно ставить на диск D, так как программа занимает от 2 Гб.

В чем писать код начинающему Android-разработчику: выбираем IDE

Нажимайте Next, пока не завершится установка. Откройте установленную Android Studio. Откажитесь от импорта настроек предыдущей версии — старых настроек у вас нет.

В чем писать код начинающему Android-разработчику: выбираем IDE

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

В чем писать код начинающему Android-разработчику: выбираем IDE

Выберите Standart в следующем окне.

В чем писать код начинающему Android-разработчику: выбираем IDE

Установщик сообщит, что нужно докачать несколько компонентов — нажмите Next и дождитесь окончания загрузки распаковки.

В чем писать код начинающему Android-разработчику: выбираем IDE

Нажмите Finish — откроется Welcome экран. Нажмите Start a new Android Studio project.

В чем писать код начинающему Android-разработчику: выбираем IDE

Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.

Tutorial: Create your first Android application

In this tutorial, we will create a simple yet fully-functional Android application that counts how many times you tap a droid image. After that, we will run it on an Android virtual device.

This tutorial covers a simple scenario to help you get started with Android development in IntelliJ IDEA. For comprehensive how-to guides and reference documentation, visit the Android Studio user guide.

Create a new Android project

Create a project

Launch IntelliJ IDEA. On the Welcome screen, click New Project . If you already have a project open, from the main menu select File | New | Project .

In the New Project wizard, select Android on the left.

If you don’t have the Android SDK configured, IntelliJ IDEA will detect this and prompt you to download it:

Select the components you want to install. If you haven’t installed the Android SDK tools before, all the required components will be preselected.

Optionally, modify the location for the Android SDK, and click Next :

Review the installation settings and click Finish to start the download:

When all components have been downloaded and installed, click Finish :

Select Empty Activity as the project template:

On the last step, type HelloDroid as the project name and select Java as the language:

Configure project JDK

Now that we have created our first project, let’s make sure it uses the correct JDK.

From the main menu, choose File | Project Structure and go to Platform Settings | SDKs . Select the Android SDK and make sure that the correct Java version is selected in the Java SDK field.

Project Structure dialog

We recommend that you use Java SE 11 or Java SE 8 for Android development in IntelliJ IDEA. If you don’t have the correct JDK installed, in the Project Structure dialog, click the Add New SDK button on the toolbar and select Download JDK :

In the Settings dialog ( Ctrl+Alt+S ), go to Build, Execution, Deployment | Build Tools | Gradle and select the correct Java version (8.x or 11.x).

Explore the project structure

For Android projects, there’s a dedicated view in the IntelliJ IDEA Project tool window: click Project in the top-left corner and select Android .

the Android project view

This view doesn’t reflect the actual hierarchy of files on your disk — it is organized by modules and file types to ease navigation between source files of your project. Note that it hides project files and directories that you don’t commonly use (to see them, choose the Project view):

the Android project view

The app folder consists of the following subfolders:

manifests : contains the AndroidManifest.xml file, which holds general information about the application processed by the Android operating system. Among other things, it declares the package name that serves as a unique identifier for your application and the minimum version of the Android SDK required for the device where the application will run. It also declares the entry points of the application, along with permissions the application requires. For details, see App Manifest Overview.

java : contains the Java source code files grouped by packages, including JUnit tests.

res : contains all non-code resources, such as XML layout files, UI strings, images, and so on.

The Gradle Scripts folder contains all the project’s build-related configuration files.

Edit the UI layout

At this stage, the user interface of our sample HelloDroid application is based on a very simple layout defined in the activity_main.xml file located in the res/layout folder.

Let us modify the auto-generated user interface and see how the application layout is rendered without running it on any physical or virtual device.

Open the UI designer

In the Android project view, go to the app/res/layout and double-click the activity_main.xml file to open it. Note that since IntelliJ IDEA downloads the components required to render layout files, opening it may take a few seconds.

If the UI designer fails to open, and you get the Design editor is unavailable until after a successful project sync error, press Ctrl+Shift+A , search for the Sync Project with Gradle Files action, and wait for the sync to finish.

By default, IntelliJ IDEA provides a graphical view of the layout file, but you can also switch to the source code view, or view the text and the graphical representation side by side — use the icons in the top-right corner of the UI Designer pane:

Android UI designer

This pane shows a rectangular canvas that is synchronized with the layout definition and with the Component Tree , so any changes to the canvas are reflected there accordingly.

Normally, layout files have a layout manager as their root element (for example, LinearLayout , FrameLayout , ConstraintLayout , and so on). In our example, the root element in activity_main.xml is ConstraintLayout that is responsible for positioning the elements of the application interface. For the purpose of this tutorial, we are not going to modify it, but you can learn more about designing interfaces from Build a Responsive UI with ConstraintLayout.

To eliminate distraction and only see how your layout is represented, click the Select Design Surface icon in the top-left corner and choose Design :

Now let’s delete the existing text element. To do this, right-click the text label and choose Delete from the context menu.

Now the UI layout looks like the following, and we are ready to start designing the layout of our application:

Android UI designer pane

Add image to the UI layout

Now let’s add a droid image to our layout.

In the Android project view, expand the app/res folder and drag the image you want to use into the drawable folder. For this tutorial, we’ve downloaded a Hello Droid image from the Internet and saved it with the dimensions 50×50 px.

Return to the activity_main.xml file opened in the Designer pane, from the Palette choose the ImageView element, and drag it to the canvas to the position where you want the image to appear.

In the Pick a Resource dialog that opens, choose the resource file you’ve added and click OK :

 

Next, we need to modify the default id of the imageView element to be able to reference it later.

Select it in the Component Tree and in the Attributes pane on the right, enter the new identifier in the id field: droidImage . Press Enter ; in the dialog that opens, confirm that you want to update all references to the image element id:

Add text to the UI layout

Now let’s add some text to our layout.

In the Palette pane, pick the TextView element and drag it to the canvas below the image.

The widget displays some default text: TextView . To change it and link it to a string, we need to create a new text resource.

Select the textView element in the Component Tree on the left. In the Attributes pane on the right, click the Pick a Resource icon next to the text attribute:

In the dialog that opens, click the Add resource to the module icon in the top left corner and choose String Value .

In the New String Value dialog, enter the resource name ( welcome_text ) and the resource value ( Hello! I’m a droid. ):

Click OK to save the value and then click OK in the Pick a Resource dialog.

Now let’s modify the textView element id the same way we did with imageView .

Select textView in the Component Tree on the left, and in the Attributes pane set the id to a new value: clickCounter .

Add style to text

Now let’s add some style to the text to make it look more appealing.

Pad the text a bit: locate the padding attribute, and set all values to 10dp :

Change the font color: locate the textColor attribute, and click the Pick a Resource icon next to it.

In the dialog that opens, click the Add resource to the module icon in the top left corner and choose Color Value .

Enter the resource name ( text_color ) and the value ( #9C27B0 ):

Change the font size: locate the TextSize property and click the Pick a Resource icon next to it.

In the dialog that opens, click the Add resource to the module icon in the top left corner and choose Dimension Value .

Enter the resource name ( text_size ) and the value ( 24sp ):

As a result, your user interface now looks like the following:

Android UI preview

To check what your application UI looks like in landscape orientation, click the Orientation for Preview icon on the Designer toolbar and choose Landscape :

Landscape orientation

To preview what your layout looks like on different devices, select another device from the device list:

Android UI layout preview

Make the application interactive

Although our sample application is fully functional at this point, it does not support any form of interaction yet. Let’s modify it to support tap events.

In the Android project view, locate the MainActivity file under app\java\com.example.hellodroid and double-click to open it.

MainActivity is not a very meaningful class name, so let’s rename it.

Right-click this file in the Android project view and choose Refactor | Rename from the context menu or press Shift+F6 . In the dialog that opens, change the class name HelloDroidActivity and click Refactor :

Rename dialog

All references to this class will be updated automatically, and your application’s source code will look as follows:

Replace the code in HelloDroid.java with the following:

Note that the identifiers we’ve used in the source code correspond to those we’ve set in our layout definition file, otherwise our code would not work.

Build and run the application

Now let’s build our application and run it on a virtual device.

Configure Android virtual device

First of all, to be able to run our application, we need to configure a virtual device.

In the main IntelliJ IDEA toolbar, click the devices list and choose AVD Manager :

On the first step of the wizard, click Create Virtual Device :

On the next step, we need to select the hardware that our virtual device will emulate.

Let’s select Phone on the left, and choose Pixel 2 as the target device:

Choose the system image you want to mimic on the virtual device, that is the OS version, the Android API level, the application binary interface (ABI), and the target SDK version:

Click the Download link next to the system image you want to mimic on the virtual device. For this tutorial, we’ve chosen to download the R system image.

In the License Agreement dialog that opens, read the license agreement and accept it, then click Next and wait for the download to finish. When the system image has been downloaded, select it and click Next in the System Image step of the wizard.

On the last step, you can modify your virtual device name and select the startup size and orientation of the screen. Choose the portrait layout and click Finish :

The newly configured device appears in the Android Virtual Device Manager .

Run the application

On the main IntelliJ IDEA toolbar, make sure the automatically created Run configuration and the virtual device we’ve just configured are selected and click :

Run the Android application

The Android emulator will launch after the build has successfully finished, with our application started:

Click the droid image and see how the application processes the tap events, counts them and returns the corresponding message:

For information on how to run the app on a hardware device, refer to Android Studio: Run apps on a hardware device.

gnuanu / 01.step1.md

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

package com . jnisample . JNIHelloWorld ;
import android . app . Activity ;
import android . os . Bundle ;
import android . view . View ;
import android . widget . Button ;
import android . widget . TextView ;
import org . w3c . dom . Text ;
public class JNIActivity extends Activity <
public native String getNativeMessage ();
static <
System . loadLibrary ( "mynative" );
>
Button btnInvokeJNI ;
TextView tvNativeMsg ;
/**
* Called when the activity is first created.
*/
@ Override
public void onCreate ( Bundle savedInstanceState ) <
super . onCreate ( savedInstanceState );
setContentView ( R . layout . main );
btnInvokeJNI = ( Button ) findViewById ( R . id . btnInvokeJni );
tvNativeMsg = ( TextView ) findViewById ( R . id . txtJniText );
btnInvokeJNI . setOnClickListener ( new View . OnClickListener () <
@ Override
public void onClick ( View v ) <
tvNativeMsg . setText ( getNativeMessage ());
>
>);
>
>

Step 2 — Create the JNI Header file

  1. Create a folder jni inside $JNI/JNIHelloWorld
  2. In Terminal(command line) move to $JNI/out/production/JNIHelloWorld directory (This is where the java files get compiled to class files by IDEA; Verify the directory structure is same as the package name com/jnisample/JNIHelloWorld/JNIActivity.class)
  3. Create the header for the native function using javah

The Above command will generate a header file with name com_jnisample_JNIHelloWorld_JNIActivity.h inside the jni directory.

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

/* DO NOT EDIT THIS FILE — it is machine generated */
# include < jni.h >
/* Header for class com_jnisample_JNIHelloWorld_JNIActivity */
# ifndef _Included_com_jnisample_JNIHelloWorld_JNIActivity
# define _Included_com_jnisample_JNIHelloWorld_JNIActivity
# ifdef __cplusplus
extern " C " <
#endif
/*
* Class: com_jnisample_JNIHelloWorld_JNIActivity
* Method: getNativeMessage
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_com_jnisample_JNIHelloWorld_JNIActivity_getNativeMessage
(JNIEnv *, jobject);
# ifdef __cplusplus
>
# endif
#endif

Step 3 — Add a C++ Class

  1. Create a C++ class with name HelloWorld
  2. Create define a member function getNativeString() which returns a string

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

# ifndef HELLOWORLD_H
# define HELLOWORLD_H
# include < string >
using namespace std ;
class HelloWorld
<
public:
HelloWorld ();
string getNativeString ();
>;
# endif // HELLOWORLD_H

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

# include " helloworld.h "
HelloWorld::HelloWorld ()
<
>
string HelloWorld::getNativeString ()
<
return " Hello World from JNI " ;
>

Step 4 — Implement JNI Entry (or Entries)

Implement the entry method com_jnisample_JNIHelloWorld_JNIActivity_getNativeMessage defined in header com_jnisample_JNIHelloWorld_JNIActivity.h

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Создание нативных Android-приложений с использованием компилятора Intel C++ Compiler в Android Studio 1.0.1

На момент написания этого текста текущей версией Android Studio была версия 1.0.1. Компилятор Intel C++ Compiler for Android, будучи частью Intel Integrated Native Developer Experience (Intel INDE), поддерживает Android Studio 1.0.1 в Intel INDE 2015 Update 1. Поскольку Android Studio 1.0.1 не поддерживает Android NDK, в этой статье описаны шаги для создания нативного Android-приложения с использованием Android NDK r10d и компилятора Intel C++ Compiler for Android. Поехали!

Android Studio в качестве системы сборки использует Gradle. На момент написания статьи Gradle в процессе сборки вызывала систему NDK. В Android NDK r10 и более поздней версии после инсталляции Intel INDE компилятор Intel C++ Compiler for Android (ICC) не является более используемым по умолчанию компилятором в системе сборки NDK.

Представленные ниже шаги дают общее описание подготовки, сборки и выполнения нативного приложения в Android Studio 1.0.1.

Если вы используете Android Studio 0.8.6, почитайте статью «Сборка нативных Android-приложений с использованием компилятора Intel C++ Compiler в Android Studio», где рассказывается о применении Intel C++ Compiler.

Требуемые программные инструменты

Успешная инсталляция INDE 2015 Update 1 с Android Studio Integration гарантирует, что вы располагаете всем необходимым программным обеспечением. Детальные требования к программному обеспечению и системе описаны в документе Intel C++ Compiler Release Notes for Intel Integrated Native Developer Experience 2015.

Приведенные в данной статье инструкции предполагают использование следующего ПО для архитектуры IA-32 и Intel-64:

  • Oracle JDK 7 (нативный Intel-64 JDK для систем Windows x64)
  • Android SDK 20 или старше
  • NDK r10d (предполагается инсталляция в [ndk-dir] )
  • Android Studio 1.0.1
  • C:\Intel\INDE\IDEintegration\NDK\build\tools
  • C:\Intel\INDE\IDEintegration\NDK

Использование компилятора Intel C++ Compiler в Android Studio 1.0.1

После инсталляции Intel C++ Compiler 15.0 for Android в папку «[ndk-dir]\toolchains» (директория по умолчанию – «C:\Intel\INDE\IDEintegration\android-ndk-r10d\toolchains») устанавливаются следующие элементы:

  • x86-icc
  • x86-icc15.0.X.YYY
  • x86_64-icc (если NDK поддерживает 64-разрядные цели)
  • x86_64-icc15.0.X.YYY (если NDK поддерживает 64-разрядные цели)

Для NDK r10 — r10d: компилятор Intel C++ после инсталляции не является компилятором по умолчанию. Чтобы использовать Intel C++ Compiler из Android Studio, следуйте шагам 3, 4, 5 ниже.

Если у вас установлено несколько Android NDK, следуйте инструкциям в статье «Интеграция Intel C++ Compiler for Android с несколькими Android NDK».

Теперь создадим новый проект Android для Intel-64 с нативным вызовом функции, продемонстрировав тем самым использование компилятора Intel C++ Compiler:

1. Создание нового проекта Android с нативным интерфейсом:

1. Откройте Android Studio, создайте новый Android-проект «nativeDemo» с параметрами по умолчанию, например:

image

2. Откройте «app\src\main\java\MainActivity.java» и добавьте в конец класса «MainActivity» нативную функцию как показано ниже:

Должно получиться примерно так:

3. Чтобы создать проект «nativeDemo», выберите: «Build > Make Project», после чего можно будет использовать «javah».
4. В «View > Tools Windows > Terminal» откройте терминальное окно и выполните указанные ниже шаги для запуска «javah» и создания заголовка jni:
a) В терминальном окне перейдите в подпапку «src\main»:

b) Чтобы создать «com_example_nativedemo_app_MainActivit.h» в папке src\main\jni, выполните следующую команду «javah» cmd:

5. В окне Project измените вид на Project, щелкните правой кнопкой мыши на папке «src» и выберите «Synchronize ‘src». Теперь в папке «src\main\jni» можно видеть файл заголовка «com_example_mydemo_nativedemo_MainActivity.h».

2. Добавление нативного исходного кода: main.c

1. Создайте «main.c»: выделите файл «com_example_mydemo_nativedemo_MainActivity.h», используйте волшебные клавиши copy/paste для создания нового «main.c» со следующим кодом:

2. Сохраните изменения
3. Теперь в папке «jni» у вас два файла: com_example_mydemo_nativedemo_MainActivity.h и main.c

3. Добавление make-файла: Android.mk

1. Щелкните правой кнопкой на папке «jni», выберите «New > File»
2. Наберите «Android.mk» и щёлкните на «OK»
3. Добавьте в этот файл следующие строки (обратите внимание, что строка LOCAL_SRC_FILES должна содержать исходные файлы, которые находятся в папке «jni»):

4. Добавление make-файла: Application.mk

1. Щелкните правой кнопкой на папке «jni», выберите «New > File»
2. Наберите «Application.mk» и щёлкните на «OK»
3. Добавьте в этот файл следующие строки:

4. [Опционально] Для изменения параметров компилятора используйте следующее:

5. Сконфигурируйте свое приложение для выполнения ndk-build с помощью make-файлов

1. Откройте файл «app\build.gradle»
2. Добавьте в начало файла следующий импорт:

3. И эти строки после секции «defaultConfig»:

4. А следующие строки – в конец файла:

5. Сохраните изменения
6. Теперь создадим проект: выберите [Build > Make Project]. Вы увидите все выходные папки и файлы «libmain.so» в папках «main\libs» и «main\obj\local».

6. Добавьте ID «hello_textview» в виджет textview

Откройте «res\layout\activity_main.xml» и измените виджет «textview» как показано ниже:

7. Обновите «MainActivity.java», чтобы UI textview вызов нативной библиотеки:

Для импорта виджета TextView и сохранения изменений нажмите ALT+Enter.

8. Запустите виртуальную машину Android Virtual Machine «Intel-Nexus 7 x64» и выполните приложение, щёлкнув кнопку «Run».

image

Это означает, что был использован компилятор Intel C++ Compiler for Android.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *