Bibliotekę Oboe można włączyć do projektu na 2 sposoby.
Integracja Oboe z Gradle i CMake
Te instrukcje są przeznaczone dla projektów korzystających z wtyczki Androida do obsługi Gradle w wersji 4.1.0 lub nowszej, które używają natywnych zależności z CMake.
Jeśli Twój projekt korzysta z wtyczki Android Gradle w wersji 4.0 lubndk-build
zamiast CMake, proces jest nieco inny. Zobacz Korzystanie z zależności natywnych.
Aktualizacja pliku build.gradle
Aby dodać Oboe do aplikacji, gdy używasz wtyczki Androida do obsługi Gradle w wersji 4.1.0 lub nowszej, wprowadź te zmiany w pliku build.gradle
aplikacji.
Dodaj zależność
oboe
do sekcjidependencies
. W razie potrzeby zastąp1.5.0
najnowszą stabilną wersją Oboe:dependencies { implementation 'com.google.oboe:oboe:1.5.0' }
Włącz opcję
prefab
w sekcjibuildFeatures
.android { buildFeatures { prefab true } }
Skonfiguruj aplikację tak, aby korzystała z udostępnionego STL:
android { defaultConfig { externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" } } } }
Aktualizowanie pliku CMakeLists.txt
Dodanie Oboe wymaga wprowadzenia 2 zmian w pliku CMakeLists.txt
aplikacji.
Dodaj to polecenie
find_package
:find_package (oboe REQUIRED CONFIG)
Dodaj
oboe::oboe
do listy bibliotek przekazywanych do poleceniatarget_link_libraries
powiązanego z głównym plikiem wykonywalnym.
Integracja z pakietem SDK do gier na Androida
Pobierz bibliotekę i zarejestruj ją w systemie kontroli źródła.
Wprowadź w ustawieniach kompilacji projektu te zmiany:
Biblioteka statyczna
Podczas integracji z pakietem SDK do gier na Androida statycznie łączysz się z wersją biblioteki Oboe skompilowaną dla danej kombinacji ABI, poziomu interfejsu API, NDK i STL:
- Dodaj
gamesdk/include
do ścieżek dołączania kompilatora. Dodaj do ścieżek biblioteki linkera ścieżkę w tym formacie:
gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
Na przykład:
gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release
Dodaj
-loboe_static
do polecenia linkera.
Nie musisz dołączać biblioteki współdzielonej liboboe.so
, co oznacza, że statyczne łączenie daje znacznie mniejszy rozmiar kodu.
Zasoby wspólne
Jeśli kombinacja ABI, poziomu API, NDK i STL wymagana w przypadku biblioteki statycznej nie jest dostępna w Twoich ustawieniach, możesz zamiast tego połączyć się z biblioteką współdzieloną:
Wykonaj kroki 1 i 2 z poprzedniej sekcji (dotyczącej biblioteki statycznej), aby zaktualizować ścieżki dołączania kompilatora, i użyj odpowiedniego pliku nagłówkowego.
Dodaj do ścieżek biblioteki linkera ścieżkę w tym formacie:
gamesdk/libs/architectureAPIapiLevelNDKndkVersion_stlVersion_Release/lib/oboe
Add
-loboe -lOpenSLES
to your linker command.
Using CMake (static library only)
If you're using CMake, see the gamesdk/samples/bouncyball/app/CMakeLists.txt
file in the downloaded SDK for an example CMake configuration. It includes a
utility file called gamesdk/samples/gamesdk.cmake
, which performs final
checks, adds the proper compiler include paths, and generates a target that you
can use to link the library.
To use the gamesdk.cmake
utility:
Include this file in your
CMakeLists.txt
:// Use a relative or absolute path. For example, /home/yourusername/gamesdk // or C:\Android\gamesdk.
include("path/to/gamesdk/samples/gamesdk.cmake")
Wywołaj funkcję
add_gamesdk_target
z folderem zawierającym pakiet SDK do gier:// Use a relative or absolute path.
add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
W pliku
target_link_libraries
biblioteki natywnej dodajoboe
jako zależność:// The casing of OpenSLES is important.
target_link_libraries(native-lib oboe OpenSLES ...)
Zaawansowane informacje o korzystaniu z CMake znajdziesz w gamesdk.cmake
pliku źródłowym.
Dalsze kroki: korzystanie z Oboe
Aby odtwarzać lub nagrywać dźwięk za pomocą Oboe, utwórz i aktywuj co najmniej 1 strumień audio oraz użyj wywołań zwrotnych do wymiany dźwięku między urządzeniami wejścia/wyjścia audio a aplikacją. Więcej informacji znajdziesz w artykule Korzystanie z Oboe.