← Назад к вопросам

На каком языке создаётся Android

1.8 Middle🔥 251 комментариев
#Процессы и методологии разработки

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Языки для создания Android приложений

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

Основные языки программирования для Android

  1. Java
    *   **Исторический основной язык.** Android SDK (Software Development Kit) был первоначально построен вокруг Java. Большинство ранних приложений и огромная часть существующего кода написаны на Java.
    *   **Среда выполнения:** Приложения, написанные на Java, выполняются не на стандартной JVM (Java Virtual Machine), а на специальной **ART (Android Runtime)** или ранее на **Dalvik VM**, которые оптимизированы для мобильных устройств.
    *   Пример простого класса Activity на Java:
    ```java
    package com.example.myapp;
    import android.app.Activity;
    import android.os.Bundle;
    
    public class MainActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main); // Установка layout
        }
    }
    ```

2. Kotlin

    *   **Современный официальный язык.** С 2019 года Google объявил Kotlin **предпочтительным языком** для разработки Android приложений. Он полностью совместим с Java и может использоваться вместе с ним в одном проекте.
    *   **Преимущества:** Kotlin более безопасен (меньше `NullPointerException`), выразителен и компактен (меньше boilerplate-кода). Он предлагает современные функции, такие как **корутин** (coroutines) для асинхронных операций.
    *   Пример того же Activity на Kotlin:
    ```kotlin
    package com.example.myapp
    import android.os.Bundle
    import androidx.appcompat.app.AppCompatActivity
    
    class MainActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main) // Установка layout
        }
    }
    ```

3. C/C++ (через NDK - Native Development Kit)

    *   Используется для задач, требующих высокой производительности (например, обработка графики, сложные математические вычисления, игры) или для использования существующих библиотек, написанных на C/C++.
    *   Не используется для создания основной логики UI приложения, но для отдельных модулей.
    *   Пример объявления native метода в Java/Kotlin и его реализации в C++:
    ```java
    // Java часть
    public class NativeLib {
        public static native int performComplexCalculation(int input);
    }
    ```
    ```cpp
    // C++ часть (пример реализации через JNI)
    #include <jni.h>
    JNIEXPORT jint JNICALL Java_com_example_NativeLib_performComplexCalculation(JNIEnv* env, jobject obj, jint input) {
        // ... сложные вычисления ...
        return result;
    }
    ```

Дополнительные технологии и языки

  • XML (Extensible Markup Language): Не является языком программирования, но критически важен для Android. Используется для определения layout (разметки интерфейса), ресурсов (strings, colors, styles), манифеста приложения (AndroidManifest.xml).
    <!-- Пример layout файла activity_main.xml -->
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_parent"
            android:layout_height="wrap_parent"
            android:text="Hello, Android!" />
        
        <Button
            android:id="@+id/button"
            android:layout_width="wrap_parent"
            android:layout_height="wrap_parent"
            android:text="Click Me" />
    </LinearLayout>
    

Современные фреймворки и компиляция

  • Jetpack Compose: Современный декларативный фреймворк для построения UI, который использует Kotlin. Позволяет описывать интерфейс с помощью функций Kotlin, минуя XML.

    @Composable
    fun Greeting(name: String) {
        Text(text = "Hello, $name!")
    }
    
  • Flutter (Dart): Хотя это не родная технология Android, Flutter от Google позволяет создавать кросс-платформенные приложения, включая Android, используя язык Dart.

Итог для QA Engineer

Для специалиста по тестированию понимание этой основы важно:

  • Знание Java и Kotlin помогает читать логику приложения, понимать источники потенциальных ошибок (например, обработка null в Kotlin vs Java).
  • XML нужно знать для анализа layout, локализации (файлы strings.xml) и манифеста, который определяет компоненты приложения и разрешения.
  • Тестирование нативных модулей (C++) может требовать особых подходов, особенно для производительности и памяти.
  • Понимание, что современные приложения часто используют гибрид Kotlin + Compose или Kotlin + XML, помогает ориентироваться в структуре проекта.

Таким образом, Android приложения создаются преимущественно на Kotlin и Java, с поддержкой C++ для специфичных задач, а XML используется для описания ресурсов и разметки. Как QA, вы столкнетесь с кодом, написанным на этих языках, при анализе багов, чтении логов и понимании архитектуры тестируемого приложения.

На каком языке создаётся Android | PrepBro