Bibliotekę obój można włączyć w swoim projekcie na 2 sposoby.
Zintegruj obój z Gradle i CMake
Te instrukcje dotyczą projektów korzystających z wtyczki Androida do obsługi Gradle w wersji 4.1.0 lub nowszej, która korzysta z zależności natywnych w CMake.
Jeśli w projekcie zamiast CMake używasz wtyczki Androida do obsługi Gradle w wersji 4.0 lub ndk-build
, proces jest nieco inny. Zobacz Używanie zależności natywnych.
Aktualizowanie pliku build.gradle
Aby dodać Oboe do aplikacji podczas korzystania z wtyczki Androida do obsługi Gradle w wersji 4.1.0 lub nowszej, wprowadź te zmiany do pliku build.gradle
aplikacji.
Dodaj zależność
oboe
do sekcjidependencies
. W razie potrzeby zastąp1.5.0
najnowszą stabilną wersją obóju:dependencies { implementation 'com.google.oboe:oboe:1.5.0' }
Włącz opcję
prefab
w sekcjibuildFeatures
.android { buildFeatures { prefab true } }
Skonfiguruj aplikację, aby używała udostępnionego STL:
android { defaultConfig { externalNativeBuild { cmake { arguments "-DANDROID_STL=c++_shared" } } } }
Aktualizowanie pliku CMakeLists.txt
Dodanie obozu wymaga dodania dwóch elementów do pliku CMakeLists.txt
aplikacji.
Dodaj to polecenie
find_package
:find_package (oboe REQUIRED CONFIG)
Dodaj
oboe::oboe
do listy bibliotek przekazanych do poleceniatarget_link_libraries
powiązanego z głównym plikiem wykonywalnym.
Integracja z pakietem SDK do gier na Androida
Pobierz bibliotekę i sprawdź ją w swoim systemie kontroli źródeł.
Wprowadź poniższe zmiany w ustawieniach kompilacji projektu.
Biblioteka statyczna
Po przeprowadzeniu integracji z pakietem SDK do gier na Androida tworzysz statycznie link do wersji biblioteki Oboe skompilowanej pod kątem danej kombinacji interfejsu ABI, poziomu API, NDK i STL:
- Dodaj do kompilatora
gamesdk/include
, uwzględnij ścieżki. Dodaj ścieżkę do tego formularza w ścieżkach biblioteki łączącej:
gamesdk/libs/architecture_APIapiLevel_NDKndkVersion_stlVersion_Release
Przykład:
gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release
Dodaj
-loboe_static
do polecenia tagu łączącego.
Nie musisz łączyć zasobów wspólnych z biblioteką liboboe.so
w pakiet, co oznacza, że linki statyczne zmniejszają rozmiar kodu.
Zasoby wspólne
Jeśli w Twoich ustawieniach nie jest dostępna kombinacja interfejsu ABI, poziomu API, NDK i STL wymaganej w przypadku biblioteki statycznej, możesz utworzyć połączenie z zasobami współdzielonymi:
Wykonaj kroki 1 i 2 z poprzedniej sekcji (dotyczące biblioteki statycznej), aby zaktualizować kompilator uwzględniaj ścieżki i użyj odpowiedniego pliku nagłówka.
Dodaj ścieżkę do tego formularza w ścieżkach biblioteki łączącej:
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
, używając folderu zawierającego pakiet SDK do gier:// Use a relative or absolute path.
add_gamesdk_target(PACKAGE_DIR path/to/gamesdk)
W
target_link_libraries
biblioteki natywnej dodajoboe
jako zależność:// The casing of OpenSLES is important.
target_link_libraries(native-lib oboe OpenSLES ...)
Zaawansowane informacje na temat CMake znajdziesz w pliku źródłowym gamesdk.cmake
.
Kolejne kroki: korzystanie z Obóju
Aby odtwarzać lub nagrywać dźwięk za pomocą obóju, utwórz i aktywuj co najmniej jeden strumień audio oraz korzystaj z wywołań zwrotnych, aby wymieniać dźwięk między urządzeniami wejścia-wyjścia audio a aplikacją. Więcej informacji znajdziesz w sekcji Korzystanie z oboe.