Dodaj kod C i C++ do projektu na Androida, umieszczając go w katalogu cpp w module projektu. Podczas kompilowania projektu ten kod jest kompilowany do biblioteki natywnej, którą Gradle może spakować z aplikacją. Kod Java lub Kotlin może następnie wywoływać funkcje w bibliotece natywnej za pomocą interfejsu Java Native Interface (JNI). Więcej informacji o korzystaniu z platformy JNI znajdziesz w artykule Wskazówki dotyczące JNI na Androidzie.
Android Studio obsługuje CMake, co jest przydatne w przypadku projektów wieloplatformowych.
Android Studio obsługuje też ndk-build, które może działać szybciej niż CMake, ale obsługuje tylko Androida. Używanie w tym samym module zarówno CMake, jak i ndk-build nie jest obecnie obsługiwane.
Aby zaimportować istniejącą ndk-build bibliotekę do projektu w Android Studio, dowiedz się, jak połączyć Gradle z projektem biblioteki natywnej.
Na tej stronie dowiesz się, jak skonfigurować Android Studio za pomocą niezbędnych narzędzi do kompilacji, utworzyć nowy projekt z obsługą C/C++ i dodać do projektu nowe pliki C/C++.
Jeśli chcesz dodać kod natywny do istniejącego projektu, wykonaj te czynności:
- 
    Utwórz nowe natywne pliki źródłowe i dodaj je do projektu w Android Studio.
    - Pomiń ten krok, jeśli masz już kod natywny lub chcesz zaimportować gotową bibliotekę natywną.
 
- 
    Skonfiguruj CMake, aby utworzyć bibliotekę z natywnego kodu źródłowego. Ten skrypt kompilacji jest wymagany, jeśli importujesz wstępnie skompilowane biblioteki lub biblioteki platformy i łączysz je z aplikacją.
    - Jeśli masz już bibliotekę natywną, która ma CMakeLists.txtskrypt kompilacji lub korzysta zndk-buildi zawiera skrypt kompilacjiAndroid.mk, pomiń ten krok.
 
- Jeśli masz już bibliotekę natywną, która ma 
- 
    Skonfiguruj Gradle, podając ścieżkę do pliku skryptu CMake lub ndk-build. Gradle używa skryptu kompilacji do importowania kodu źródłowego do projektu Android Studio i pakowania biblioteki natywnej w aplikacji.
  Po skonfigurowaniu projektu możesz uzyskać dostęp do funkcji natywnych z kodu Java lub Kotlin za pomocą platformy JNI. Aby skompilować i uruchomić aplikację, kliknij Uruchom  .
.
    Uwaga: jeśli Twój obecny projekt korzysta z narzędzia ndkCompile, które zostało wycofane, przeprowadź migrację na CMake lub ndk-build.
Pobieranie NDK i narzędzi do kompilacji
Aby skompilować i debugować kod natywny aplikacji, potrzebujesz tych komponentów:
- Pakiet Android Native Development Kit (NDK): zestaw narzędzi, który umożliwia używanie kodu C i C++ w Androidzie. NDK udostępnia biblioteki platformy, które umożliwiają zarządzanie aktywnościami natywnymi i dostęp do komponentów urządzenia fizycznego, takich jak czujniki i ekran dotykowy.
- 
    CMake: zewnętrzne narzędzie do kompilacji, które współpracuje z Gradle przy kompilowaniu biblioteki natywnej. Jeśli planujesz używać tylko ikony ndk-build, ten komponent nie jest Ci potrzebny.
- LLDB: debugger w Android Studio, który debuguje kod natywny.
Informacje o instalowaniu tych komponentów znajdziesz w artykule Instalowanie i konfigurowanie pakietu NDK i CMake.
Tworzenie nowego projektu z obsługą C/C++
Aby utworzyć nowy projekt z obsługą kodu natywnego, wykonaj podobne czynności jak w przypadku tworzenia dowolnego innego projektu w Android Studio, ale z dodatkowym krokiem:
- W sekcji Wybierz projekt kreatora wybierz typ projektu Native C++ (Natywny C++).
- Kliknij Dalej.
- Wypełnij wszystkie pozostałe pola w następnej sekcji kreatora.
- Kliknij Dalej.
- 
    W sekcji Dostosowywanie obsługi C++ kreatora możesz dostosować projekt za pomocą pola Standard C++.
    - Z menu wybierz, której wersji standardu C++ chcesz używać. Wybranie opcji Toolchain Default (Łańcuch narzędzi – domyślny) powoduje użycie domyślnego ustawienia CMake.
 
- Kliknij Zakończ.
Gdy Android Studio zakończy tworzenie nowego projektu, otwórz panel Projekt po lewej stronie IDE i z menu wybierz widok Android. Jak widać na rysunku 1, Android Studio dodaje grupę cpp:
   
Rysunek 1. grupy widoków Androida dla źródeł natywnych i zewnętrznych skryptów kompilacji.
Uwaga: ten widok nie odzwierciedla rzeczywistej hierarchii plików na dysku, ale grupuje podobne pliki, aby ułatwić poruszanie się po projekcie.
  W grupie cpp znajdziesz wszystkie natywne pliki źródłowe, nagłówki, skrypty kompilacji dla CMake lub ndk-build oraz wstępnie skompilowane biblioteki, które są częścią Twojego projektu. W przypadku nowych projektów Android Studio tworzy przykładowy plik źródłowy C++ – native-lib.cpp – i umieszcza go w katalogu src/main/cpp/ modułu aplikacji. Ten przykładowy kod zawiera prostą funkcję w C++, stringFromJNI(), która zwraca ciąg znaków "Hello from C++". Więcej informacji o dodawaniu dodatkowych plików źródłowych do projektu znajdziesz w sekcji dotyczącej tworzenia nowych natywnych plików źródłowych.
Podobnie jak pliki build.gradle instruują Gradle, jak skompilować aplikację, CMake i ndk-build wymagają skryptu kompilacji, aby wiedzieć, jak skompilować bibliotekę natywną. W przypadku nowych projektów Android Studio tworzy skrypt kompilacji CMakeCMakeLists.txt i umieszcza go w katalogu głównym modułu.
  Więcej informacji o zawartości tego skryptu kompilacji znajdziesz w artykule Konfigurowanie CMake.
Kompilowanie i uruchamianie przykładowej aplikacji
  Gdy klikniesz Uruchom  , Android Studio utworzy i uruchomi aplikację, która wyświetli tekst „Hello from C++” na urządzeniu z Androidem lub emulatorze. Poniżej znajdziesz opis zdarzeń, które występują podczas tworzenia i uruchamiania aplikacji próbnej:
, Android Studio utworzy i uruchomi aplikację, która wyświetli tekst „Hello from C++” na urządzeniu z Androidem lub emulatorze. Poniżej znajdziesz opis zdarzeń, które występują podczas tworzenia i uruchamiania aplikacji próbnej:
- Gradle wywołuje zewnętrzny skrypt kompilacji,CMakeLists.txt.
- CMake wykonuje polecenia w skrypcie kompilacji, aby skompilować plik źródłowy C++ native-lib.cppdo biblioteki obiektów współdzielonych i nadać jej nazwęlibnative-lib.so. Gradle pakuje go następnie w aplikacji.
- Podczas działania aplikacji jej MainActivitywczytuje bibliotekę natywną za pomocą funkcjiSystem.loadLibrary(). Funkcja natywna biblioteki,stringFromJNI(), jest teraz dostępna w aplikacji.
- 
    MainActivity.onCreate()wywołujestringFromJNI(), która zwraca"Hello from C++"i używa go do zaktualizowaniaTextView.
Aby sprawdzić, czy Gradle pakuje bibliotekę natywną w aplikacji, użyj Analizatora APK:
- Kliknij Build > Build Bundles(s) / APK(s) > Build APK(s) (Utwórz > Utwórz pakiety / pliki APK > Utwórz pliki APK).
- Wybierz Build > Analyze APK (Utwórz > Przeanalizuj APK).
- Wybierz plik APK lub AAB z katalogu app/build/outputs/i kliknij OK.
- Jak widać na rysunku 2, w oknie Analizator APK w sekcji lib/<ABI>/możesz zobaczyćlibnative-lib.so.  Rysunek 2. Znajdź bibliotekę natywną za pomocą narzędzia APK Analyzer. 
Wskazówka: jeśli chcesz wypróbować inne aplikacje na Androida, które korzystają z kodu natywnego, kliknij Plik > Nowy > Importuj przykład i wybierz przykładowy projekt z listy Ndk.
Tworzenie nowych plików źródłowych C/C++
Aby dodać nowe pliki źródłowe C/C++ do istniejącego projektu, wykonaj te czynności:
- Jeśli w głównym zbiorze plików źródłowych aplikacji nie masz jeszcze katalogu cpp/, utwórz go w ten sposób:
- Otwórz panel Projekt po lewej stronie IDE i wybierz widok Projekt w menu.
- Otwórz your-module > src.
- Kliknij prawym przyciskiem myszy katalog main i wybierz New (Nowy) > Directory (Katalog).
- Wpisz cppjako nazwę katalogu i kliknij OK.
- Kliknij prawym przyciskiem myszy katalog cpp/i wybierz Nowy > Plik źródłowy C/C++.
- Wpisz nazwę pliku źródłowego, np. native-lib.
- W menu Typ wybierz rozszerzenie pliku źródłowego, np. .cpp.- Kliknij Edytuj typy plików
       , aby dodać do menu inne typy plików, np. , aby dodać do menu inne typy plików, np..cxxlub.hxx. W wyświetlonym oknie dialogowym Nowe rozszerzenia plików wybierz inne rozszerzenie pliku z menu Rozszerzenie źródłowe i Rozszerzenie nagłówka, a następnie kliknij OK.
 
- Kliknij Edytuj typy plików
      
- Aby utworzyć plik nagłówkowy, zaznacz pole wyboru Utwórz powiązany plik nagłówkowy.
- Kliknij OK.
Po dodaniu nowych plików C/C++ do projektu musisz jeszcze skonfigurować CMake, aby uwzględnić te pliki w bibliotece natywnej.
Dodatkowe materiały
Więcej informacji o obsłudze kodu C/C++ w aplikacji znajdziesz w tym artykule.
Codelabs
- Tworzenie projektu Hello-CMake w Android Studio W tym laboratorium kodowania dowiesz się, jak używać szablonu CMake w Android Studio, aby rozpocząć tworzenie projektu NDK na Androida.
