Bibliotekę obojów można włączyć do projektu na 2 sposoby.
Integracja obojów z Gradle i CMake
Te instrukcje dotyczą projektów, w których wykorzystuje się wtyczkę Androida do obsługi Gradle w wersji 4.1.0 lub nowszej przy użyciu zależności natywnych w CMake.
Jeśli Twój projekt korzysta z wtyczki Androida do obsługi Gradle w wersji 4.0 lub
ndk-build
zamiast CMake, ten proces jest nieco inny. Zobacz Korzystanie z zależności natywnych.
Aktualizacja pliku build.gradle
Aby dodać Obój do aplikacji przy użyciu wtyczki Androida do obsługi Gradle w wersji 4.1.0 lub
wyżej, dodaj te dodatki do pliku build.gradle
aplikacji.
Dodaj zależność
oboe
do sekcjidependencies
. W razie potrzeby: Zastąp1.5.0
najnowszą wersją stabilną Obój:dependencies { implementation 'com.google.oboe:oboe:1.5.0' }
Włącz opcję
prefab
w sekcjibuildFeatures
.android { buildFeatures { prefab true } }
Skonfiguruj aplikację do używania udostępnionego protokołu STL:
android { defaultConfig { externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" } } } }
Zaktualizuj plik CMakeLists.txt
Dodanie oboju wymaga 2 uzupełnień do pliku CMakeLists.txt
aplikacji.
Dodaj to polecenie
find_package
:find_package (oboe REQUIRED CONFIG)
Dodaj
oboe::oboe
do listy bibliotek przekazywanych do Polecenietarget_link_libraries
powiązane z głównym plikiem wykonywalnym.
Integracja z pakietem SDK gier na Androida
Pobierz bibliotekę i sprawdź, do systemu kontroli źródła.
Wprowadź podane niżej zmiany w ustawieniach kompilacji projektu.
Biblioteka statyczna
Integracja z pakietem SDK do gier na Androida tworzy statyczne linki do wersji biblioteki obojów skompilowanej dla danego interfejsu ABI, poziomu API, NDK i STL kombinacja:
- Dodaj ścieżkę
gamesdk/include
do kompilatora i dodaj ścieżki. Dodaj do ścieżek biblioteki kreatora linków ścieżkę tego formularza:
gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
Na przykład:
gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release
Dodaj
-loboe_static
do polecenia łączącego.
Nie musisz grupować zasobów wspólnych liboboe.so
, co oznacza, że pliki są statyczne
pozwala znacznie zmniejszyć ilość kodu.
Zasoby wspólne
Jeśli kombinacja ABI, poziomu API, NDK i STL jest wymagana w przypadku biblioteki statycznej nie jest dostępna w Twoich ustawieniach, możesz połączyć z biblioteką udostępnianą zamiast:
Wykonaj kroki 1 i 2 z poprzedniej sekcji (informacje o bibliotece statycznej), aby zaktualizuj kompilator ze ścieżkami i użyj odpowiedniego pliku nagłówka.
Dodaj do ścieżek biblioteki kreatora linków ścieżkę tego formularza:
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 gamesdk:// Use a relative or absolute path.
add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
W aplikacji
target_link_libraries
do 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 tutaj: gamesdk.cmake
pliku źródłowym.
Kolejne kroki: korzystanie z oboju
Aby odtwarzać lub nagrywać dźwięk przy użyciu oboju, utwórz i aktywuj co najmniej 1 dźwięk strumieniowania i używać wywołań zwrotnych do wymiany dźwięku między wejściem/wyjściem audio. urządzeń i aplikacji. Patrz sekcja Korzystanie z: Obój.