Содержание:
- Введение
- Требуемые программные инструменты
- Использование компилятора Intel(R) C++ в Android Studio*
- Заключение
Введение
Текущей версией Android Studio* на момент написания этой статьи являлась версия 0.5.2. Она выпускается как «ранняя предварительная версия». Поэтому поддержка Android Studio* компилятором Intel(R) C++ 14.0 для Android также реализована на уровне предварительной версии. Никаких дополнительных изменений и действий не требуется, чтобы собирать собственные приложения в Android Studio.
Компилятор Intel(R) C++ для Android (ICC) настраивается как компилятор по умолчанию для платформ назначения x86 в системе сборки NDK при установке. Android Studio использует Gradle в качестве системы сборки. На момент написания этой статьи среда Gradle вызывала систему сборки NDK в ходе процесса сборки. Поэтому ICC также является компилятором по умолчанию для платформ назначения x86 в Android Studio. Никакой дополнительной настройки Android Studio не нужно.
Приведенные ниже действия описывают создание нового собственного приложения в Android Studio, его сборку и запуск.
Требуемые программные компоненты
Для разработки собственных приложений в Android Studio требуются следующие программные компоненты:
- Oracle* JDK 6 6 или более поздней версии (Intel-64 JDK для систем Windows x64):
- Установите переменную среды JAVA_HOME, чтобы она указывала на корневую папку JDK6, например, JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
- Обновите переменную среды PATH, чтобы она указывала на папку JAVA_HOME/bin, при этом javah будет доступна из окна командной строки.
- Android Studio:
- Установите Android Studio и последние обновления. Для получения обновлений откройте Android Studio, выберите меню [Help] и [Check for Update...], затем установите обновления.
- Android SDK
- Установите Android SDK из Android Studio, щелкнув приведенный ниже значок. Обязательно установите Intel x86 Atom System Image для Android x.x.x:
- Создайте новое виртуальное устройство Android Virtual Device для ЦП Intel ATOM/ABI, щелкнув указанный ниже значок:
- Установите свойства AVD, как показано ниже:
- Android NDK r9d: исходите из того, что этот компонент установлен в папку [ndk-dir]
- Intel C++ Compiler 14.0 для Android, обновление 2: выберите папку [ndk-dir] для Android NDK r9d.
- При наличии нескольких установленных пакетов Android NDK см. инструкции в статье Интеграция компилятора Intel(R) C++ для Android* с несколькими Android NDK.
Использование компилятора Intel(R) C++ в Android Studio**
После установки компилятора Intel C++ Compiler 14.0 для Android, обновление 2, следующие цепочки инструментов устанавливаются в папку инструментов NDK r9d (C:\android-ndk-r9d\toolchains):
- x86-icc
- x86-icc14.0.n.mmm
После установки компилятором C/C++ по умолчанию будет компилятор Intel C++. Для использования компилятора Intel C++ в Android Studio дополнительных действий не требуется.
Поскольку среда Android Studio находится на этапе предварительной версии, при прямом импорте образцов из NDK могут возникнуть определенные затруднения. Мы создадим новый проект Android с вызовом собственной функции для демонстрации использования компилятора Intel C++.
Создайте новый проект Android с собственным интерфейсом:
- Откройте Android Studio, создайте новый проект Android с параметрами по умолчанию, например
- Откройте app\src\main\java\MainActivity.java и добавьте нативную функцию, как показано ниже, в конце класса MainActivity:
public native String getStringFromNative();
- Сборка проекта nativeDemo: выберите меню Build > Make Project чтобы приготовиться использовать javah.
- Откройте окно терминала с помощью меню View > Other Windows > Terminal, затем выполните команду javah для создания заголовка jni:
- В окне терминала перейдите во вложенную папку src\main:
- cd src\main
- ii. Запустите следующую команду javah (она создает файл заголовка com_example_nativedemo_app_MainActivit.h в папке src\main\jni):
- javah -d jni classpath C:\Android\android-studio\sdk\platforms\android-19\android.jar;..\..\build\classes\debug com.example.nativedemo.app.MainActivity
- Пример
- В окне терминала перейдите во вложенную папку src\main:
- Щелкните правой кнопкой мыши на папке src, выберите Sycnhronize 'src'. Теперь файл заголовка com_example_nativedemo_app_MainActivit.h находится в папке src\main\jni.
- Откройте Android Studio, создайте новый проект Android с параметрами по умолчанию, например
Добавьте нативный исходный код: main.c, dummy.c.
- Создайте main.c: выберите файл com_example_nativedemo_app_MainActivit.h, используйте копирование в буфер и вставку из буфера для создания нового файла main.c со следующим кодом:
#include "com_example_nativedemo_app_MainActivity.h" JNIEXPORT jstring JNICALL Java_com_example_nativedemo_app_MainActivity_getStringTextFromNative (JNIEnv * env, jobject obj) { #ifdef __INTEL_COMPILER_UPDATE return (*env)->NewStringUTF(env, "Hello from Intel C++ !"); #else return (*env)->NewStringUTF(env, "Hello from default C++ !"); #endif }
- Создайте файл dummy.c: выберите файл main.c и при помощи копирования в буфер и вставки из буфера создайте еще один пустой файл dummy.c. Этот файл требуется только в Windows и, по-видимому, не будет нужен в финальной версии Android Studio.
- c. Теперь у нас в папке jni находится три файла: com_example_nativedemo_app_MainActivity.h, main.c, dummy.c:
- Создайте main.c: выберите файл com_example_nativedemo_app_MainActivit.h, используйте копирование в буфер и вставку из буфера для создания нового файла main.c со следующим кодом:
Задайте папку NDK в проекте.
- Откройте файл проекта local.properties и добавьте ndk.dir:
- sdk.dir=C\:/Android/android-studio/sdk
ndk.dir=C\:/android-ndk-r9d
- sdk.dir=C\:/Android/android-studio/sdk
- Откройте файл проекта local.properties и добавьте ndk.dir:
Измените выходную библиотеку: измените используемую по умолчанию "libapp.so"на "myNativeTest.lib"
- Откройте build.gradle: добавьте следующий раздел ndk в defaultConfig, как показано ниже.
defaultConfig { minSdkVersion 18 targetSdkVersion 19 versionCode 1 versionName "1.0" ndk { moduleName "myNativeTest" } }
- Теперь соберите проект: выберите [Build > Make Project].Вы увидите выходные папки и файлы libmyNativeTest.so в папках app\build\ndk\debug\lib и app\build\ndk\debug\obj\local.
- Добавьте идентификатор "hello_testview"в виджет textview
- Откройте res\layout\activity_main.xml и добавьте:
<TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/hello_textview" />
Обновите MainActivity.java для подключения вызова нативной библиотеки к виджету textview пользовательского интерфейса.
public class MainActivity extends Activity { static { // load the native library "myNativeTest" System.loadLibrary("myNativeTest"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // get the text string from native API, and display on the UI TextView tv = (TextView)findViewById(R.id.hello_textview); tv.setText(this.getStringTextFromNative()); }
Запустите виртуальную машину Android — Intel-Nexus4
Запустите приложение, нажав кнопку Run.
- Это означает, что был использован компилятор Intel C++ для Android*.
Заключение
Теперь вы знаете, как собрать простое нативное приложение Android с помощью компилятора Intel C++ в Android Studio. Попробуйте проделать это с вашим приложением и сообщите нам, получится ли.