Dodaj kod C i C++ do projektu na Androida, umieszczając go w tagu
cpp
w module projektu. Podczas kompilacji projektu
jest kompilowany do natywnej biblioteki, którą Gradle może spakować z Twoją aplikacją.
Kod w języku Java lub Kotlin może następnie wywoływać funkcje w bibliotece natywnej
za pomocą JNI (Java Native Interface). Aby dowiedzieć się więcej o korzystaniu z JNI
przeczytaj wskazówki JNI dotyczące
na urządzeniu z Androidem.
Android Studio obsługuje CMake, co jest przydatne w projektach na wielu platformach.
Android Studio obsługuje też technologię ndk-build
, która
może być szybszy niż CMake, ale obsługuje tylko Androida. Korzystanie zarówno z CMake,
Funkcja ndk-build
w tym samym module nie jest obecnie obsługiwana.
Importowanie istniejącej biblioteki ndk-build
do Android Studio
projekt, dowiedz się,
Połącz Gradle z projektem biblioteki natywnej.
W tym artykule znajdziesz informacje o tym, jak skonfigurować Androida Studio, niezbędnych narzędzi do kompilacji, utwórz nowy projekt w języku C/C++. i dodaj nowe pliki C/C++ do projektu.
Jeśli zamiast tego chcesz dodać kod natywny do istniejącego projektu, wykonaj te czynności:
-
Utwórz nowe natywne pliki źródłowe i dodaj do nich plik
do projektu w Android Studio.
- Pomiń ten krok, jeśli masz już kod natywny lub chcesz zaimportować gotową bibliotekę natywną.
-
Skonfiguruj CMake:
natywny kod źródłowy w bibliotece. Ten skrypt kompilacji jest wymagany
jeśli importujesz i łączysz elementy przy użyciu gotowej lub platformy
biblioteki.
- Jeśli masz bibliotekę natywną, w której znajduje się już
CMakeLists.txt
skrypt kompilacji lub używandk-build
i zawieraAndroid.mk
pomiń ten krok.
- Jeśli masz bibliotekę natywną, w której znajduje się już
-
Skonfiguruj
Gradle, podając ścieżkę do CMake lub
ndk-build
skrypt. Gradle używa skryptu kompilacji do zaimportowania kodu źródłowego projekt w Android Studio i zapakować bibliotekę natywną do aplikacji.
Po skonfigurowaniu projektu możesz uzyskać dostęp do funkcji natywnych z poziomu Kod w języku Java lub Kotlin korzystający z platformy JNI. Aby skompilować i uruchomić aplikację: kliknij Uruchom .
Uwaga: jeśli Twój istniejący projekt używa wycofanych plików
ndkCompile
. Przejdź na CMake lub
ndk-build
Pobierz NDK i narzędzia do kompilacji
Aby skompilować i debugować kod natywny aplikacji, potrzebujesz tych elementów: komponenty:
- Android Native Development Kit (NDK): zestaw narzędzi umożliwiający używanie kodu w językach C i C++ na urządzeniu z Androidem. NDK udostępnia biblioteki platformy, które umożliwiają zarządzanie aktywności i dostępu do fizycznych komponentów urządzenia, takich jak czujniki czy dotyk dane wejściowe.
-
CMake:
zewnętrzne narzędzie do kompilacji, które działa razem z Gradle przy tworzeniu
bibliotece. Nie potrzebujesz tego komponentu, jeśli zamierzasz używać go tylko
ndk-build
- LLDB: w Android Studio, który debuguje kod natywny.
Informacje o instalowaniu tych komponentów znajdziesz w artykule Instalowanie i konfigurowanie pakietów NDK i CMake.
Tworzenie nowego projektu z obsługą języka C/C++
Proces tworzenia nowego projektu z obsługą kodu natywnego przebiega podobnie jak utworzenie innych aplikacji na Androida, projektu Studio, ale z dodatkowym krokiem:
- W kreatorze w sekcji Choose your project (Wybierz projekt) wybierz typ projektu Natywny projekt C++.
- Kliknij Dalej.
- Wypełnij wszystkie pozostałe pola w następnej sekcji kreatora.
- Kliknij Dalej.
-
W sekcji Dostosuj obsługę języka C++ w kreatorze możesz dostosować
swojego projektu, wpisując w polu C++ Standard.
- Użyj listy, aby wybierz standard C++, którego chcesz używać. Wybieranie Toolchain Domyślny używa domyślnego ustawienia CMake.
- Kliknij Zakończ.
Gdy Android Studio zakończy tworzenie nowego projektu, otwórz Panel Projekt po lewej stronie IDE i wybierz Android. Jak widać na ilustracji 1, Android Studio dodaje grupę cpp:
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 znajdują się wszystkie natywne
pliki źródłowe, nagłówki, skrypty kompilacji dla CMake lub ndk-build
oraz gotowe
bibliotekach, które wchodzą w skład 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 fragment
udostępnia prostą funkcję w C++ (stringFromJNI()
), która
zwraca ciąg "Hello from C++"
. Dowiedz się, jak dodać więcej
plików źródłowych do projektu w sekcji dotyczącej
utworzyć nowe natywne pliki źródłowe.
Podobnie jak pliki build.gradle
instruują Gradle, jak kompilować
aplikacje CMake i ndk-build
wymagają skryptu kompilacji,
z biblioteki natywnej. W przypadku nowych projektów Android Studio tworzy kompilację CMake
CMakeLists.txt
i umieszcza go w katalogu głównym modułu.
Aby dowiedzieć się więcej o zawartości tego skryptu kompilacji, przeczytaj
Skonfiguruj CMake
Tworzenie i uruchamianie przykładowej aplikacji
Gdy klikniesz Uruchom , Android Studio tworzy i uruchamia aplikację, która wyświetla tekst „Hello from C++”. na urządzenie z Androidem lub emulator, Poniżej znajduje się omówienie zdarzeń, które które pojawiają się przy kompilowaniu i uruchamianiu przykładowej aplikacji:
- Gradle wywołuje zewnętrzny skrypt kompilacji,
CMakeLists.txt
- CMake wykonuje polecenia w skrypcie kompilacji, aby skompilować kod źródłowy w języku C++
native-lib.cpp
, do współdzielonej biblioteki obiektów oraz nazwlibnative-lib.so
. Następnie pakuje je do aplikacji. - W czasie działania interfejs
MainActivity
aplikacji wczytuje kreację natywną biblioteka za pomocąSystem.loadLibrary()
. natywną funkcję biblioteki,stringFromJNI()
, jest teraz dostępna w aplikacji. -
MainActivity.onCreate()
dzwoni do:stringFromJNI()
, , który zwraca"Hello from C++"
i używa go do aktualizacjiTextView
.
Aby sprawdzić, czy Gradle pakuje bibliotekę natywną w aplikacji, użyj Analizator plików APK:
- Wybierz Kompilacja > Pakiety kompilacji / pliki APK > Utwórz pliki APK.
- Wybierz Kompilacja > Przeanalizuj pakiet APK.
- Wybierz plik APK lub AAB z katalogu
app/build/outputs/
i kliknij OK. - Jak widać na ilustracji 2,
libnative-lib.so
w Okno Analizatora plików APK w katalogulib/<ABI>/
.
Wskazówka: jeśli chcesz poeksperymentować z innymi aplikacjami na Androida, które użyj kodu natywnego, kliknij Plik > Nowe > Importuj próbkę i wybierz przykładowy projekt z listy Ndk.
Utwórz nowe pliki źródłowe w C/C++
Aby dodać nowe pliki źródłowe C/C++ do istniejącego projektu, wykonaj te czynności:
- Jeśli w głównym źródle nie masz jeszcze katalogu
cpp/
aplikacji, utwórz taki: - Otwórz panel Projekt po lewej stronie IDE. W menu wybierz widok Projekt.
- Otwórz your-module > src.
- Kliknij prawym przyciskiem myszy katalog główny i wybierz Nowy > Katalog.
- Wpisz
cpp
jako nazwę katalogu i kliknij OK. - Kliknij prawym przyciskiem myszy katalog
cpp/
i wybierz New > (Nowy >) Plik źródłowy C/C++. - Wpisz nazwę pliku źródłowego, np.
native-lib
. - W menu Typ wybierz rozszerzenie pliku.
dla pliku źródłowego, np.
.cpp
.- Kliknij Edytuj typy plików.
, aby dodać do menu inne typy plików, na przykład
.cxx
lub.hxx
. W sekcji Nowe rozszerzenia plików i wybierz inne rozszerzenie pliku. menu Source Extension i Header Extension oraz kliknij OK.
- Kliknij Edytuj typy plików.
, aby dodać do menu inne typy plików, na przykład
- Aby utworzyć plik nagłówka, wybierz opcję Utwórz powiązanego nagłówka.
- Kliknij OK.
Po dodaniu do projektu nowych plików w C/C++ musisz jeszcze wykonać te czynności: skonfiguruj CMake, aby pliki z biblioteki natywnej.
Dodatkowe materiały
Aby dowiedzieć się więcej o obsłudze kodu C/C++ w Twojej aplikacji, spróbuj wykonać te czynności: .
Ćwiczenia z programowania
- Tworzenie Hello-CMake w Android Studio Dzięki temu ćwiczeniu w Codelabs dowiesz się, jak zacząć korzystać z szablonu CMake w Android Studio Tworzenie projektów NDK na Androida.