Vytvoření aplikace OpenGL ES na Androidu a iOSu

Můžete vytvářet řešení a projekty sady Visual Studio pro aplikace pro iOS a aplikace pro Android, které sdílejí společný kód. Tento článek vás provede kombinovanou šablonou řešení. Vytvoří aplikaci pro iOS i aplikaci Android Native Activity. Aplikace mají společný kód C++, který používá OpenGL ES k zobrazení stejné animované rotující datové krychle na každé platformě. OpenGL ES (OpenGL for Embedded Systems nebo GLES) je 2D a 3D grafické rozhraní API. Podporuje se na mnoha mobilních zařízeních.

Požadavky

Důležité

Podpora OpenGL už není dostupná. Byl naposledy dostupný v sadě Visual Studio 17.3.

Tady jsou požadavky na systém pro vytvoření aplikace OpenGL ES pro iOS a Android. Pokud jste to ještě neudělali, nainstalujte do Instalační program pro Visual Studio úlohu Vývoj mobilních aplikací pomocí jazyka C++. Pokud chcete získat šablony OpenGL ES a sestavit pro iOS, zahrňte volitelné vývojové nástroje pro C++ iOS. K sestavení pro Android nainstalujte vývojové nástroje C++ pro Android a požadované nástroje třetích stran: Android NDK, Apache Ant a Google Android Emulator.

Pro lepší výkon emulátoru na platformách Intel je jednou z možností instalace Správce akcelerovaných spouštění hardwaru Intel (HAXM). Podrobné pokyny najdete v tématu Instalace vývoje mobilních aplikací pro různé platformy pomocí jazyka C++.

K sestavení a otestování aplikace pro iOS budete potřebovat počítač Mac. Nastavte ho podle pokynů k instalaci. Další informace o tom, jak nastavit vývoj pro iOS, najdete v tématu Instalace a konfigurace nástrojů pro sestavování pomocí iOS.

Vytvoření nového projektu aplikace OpenGLES

V tomto kurzu nejprve vytvoříte nový projekt aplikace OpenGL ES. a pak sestavte a spusťte výchozí aplikaci v emulátoru Androidu. Dále sestavíte aplikaci pro iOS a spustíte ji na zařízení s iOSem.

  1. V sadě Visual Studio zvolte Soubor>nový>projekt.

  2. V dialogovém okně Nový projekt v části Šablony zvolte Visual C++>Cross Platform a pak zvolte šablonu OpenGLES (Android, iOS).

  3. Pojmenujte aplikaci, třeba MyOpenGLESApp, a pak zvolte OK.

    Screenshot of the New Project dialog where the OpenGLES Application project template is selected, with MyOpenGLESApp in the Name textbox.

    Visual Studio vytvoří nové řešení a otevře Průzkumník řešení.

    Screenshot of MyOpenGLESApp in Solution Explorer.

  1. V sadě Visual Studio zvolte Soubor>nový>projekt.

  2. V dialogovém okně Vytvořit nový projekt vyberte šablonu Aplikace OpenGLES (Android, iOS) a pak zvolte Další.

  3. V dialogovém okně Konfigurovat nový projekt zadejte název, například MyOpenGLESApp v názvu projektu, a pak zvolte Vytvořit.

    Visual Studio vytvoří nové řešení a otevře Průzkumník řešení.

    Screenshot of MyOpenGLESApp in Solution Explorer.

Nové řešení aplikace OpenGL ES zahrnuje tři projekty knihoven a dva aplikační projekty. Složka Knihovny obsahuje projekt sdíleného kódu. A dva projekty specifické pro platformu, které odkazují na sdílený kód:

  • MyOpenGLESApp.Android.NativeActivity obsahuje odkazy a připevnit kód, který implementuje vaši aplikaci jako nativní aktivitu v Androidu. Vstupní body z připevněného kódu jsou implementovány v main.cpp, který zahrnuje společný sdílený kód v MyOpenGLESApp.Shared. Předkompilované hlavičky jsou v pch.h. Tento projekt aplikace Nativní aktivita se zkompiluje do souboru sdílené knihovny (.so), který projekt vyzvedne MyOpenGLESApp.Android.Packaging .

  • MyOpenGLESApp.iOS.StaticLibrary vytvoří soubor statické knihovny pro iOS (.a), který obsahuje sdílený kód v MyOpenGLESApp.Sharedsouboru . Je propojená s aplikací vytvořenou projektem MyOpenGLESApp.iOS.Application .

  • MyOpenGLESApp.Shared obsahuje sdílený kód, který funguje na různých platformách. Používá makra preprocesoru k podmíněné kompilaci kódu specifického pro platformu. Sdílený kód je vyzvednut odkazem na projekt v obou MyOpenGLESApp.Android.NativeActivity a MyOpenGLESApp.iOS.StaticLibrary.

Řešení má dva projekty pro sestavení aplikací pro platformy Android a iOS:

  • MyOpenGLESApp.Android.Packagingvytvoří soubor .apk pro nasazení v zařízení nebo emulátoru Androidu. Tento soubor obsahuje prostředky a soubor AndroidManifest.xml, kde nastavíte vlastnosti manifestu. Obsahuje také soubor build.xml , který řídí proces sestavení Ant. Ve výchozím nastavení je nastavený jako spouštěný projekt, aby ho bylo možné nasadit a spustit přímo ze sady Visual Studio.

  • MyOpenGLESApp.iOS.Application obsahuje prostředky a kód připevňování Objective-C k vytvoření aplikace pro iOS, která odkazuje na kód statické knihovny jazyka C++ v MyOpenGLESApp.iOS.StaticLibrary. Tento projekt vytvoří balíček sestavení, který se přenese do počítače Mac pomocí sady Visual Studio a vzdáleného agenta. Když tento projekt sestavíte, Visual Studio odešle soubory a příkazy, které sestaví a nasadí aplikaci na Macu.

Sestavení a spuštění aplikace pro Android

Řešení vytvořené šablonou nastaví aplikaci pro Android jako výchozí projekt. Tuto aplikaci můžete sestavit a spustit, abyste ověřili instalaci a nastavení. Pro počáteční test spusťte aplikaci na jednom z profilů zařízení nainstalovaných emulátorem pro Android. Pokud dáváte přednost testování aplikace v jiném cíli, můžete načíst cílový emulátor. Nebo připojte zařízení k počítači.

Sestavení a spuštění aplikace Pro Android Native Activity

  1. Pokud ještě není vybraná, v rozevíracím seznamu Platformy řešení zvolte x86.

    Screenshot of the Solution Platform dropdown with x86 highlighted.

    K cílení emulátoru použijte x86. Pokud chcete zařízení cílit, zvolte platformu řešení založenou na procesoru zařízení. Pokud se seznam Platformy řešení nezobrazuje, zvolte v seznamu Přidat nebo odebrat tlačítka platformy řešení a pak zvolte svoji platformu.

  2. V Průzkumník řešení otevřete místní nabídku projektu MyOpenGLESApp.Android.Packaging a pak zvolte Sestavit.

    Screenshot of the Solution Explorer window with the shortcut menu for the Android Packaging Project showing the Build command.

    V okně Výstup se zobrazí výstup procesu sestavení pro sdílenou knihovnu Androidu a aplikaci pro Android.

    Screenshot of Build Output for Android projects.

  3. Jako cíl nasazení zvolte jeden z emulovaných profilů zařízení s Androidem.

    Choose deployment target.

    Možná jste nainstalovali jiné emulátory nebo připojili zařízení s Androidem. Můžete je zvolit v rozevíracím seznamu cíle nasazení. Pokud chcete aplikaci spustit, musí sestavená platforma řešení odpovídat platformě cílového zařízení.

  4. Stisknutím klávesy F5 spusťte ladění nebo stisknutím klávesy Shift+F5 spusťte bez ladění.

    Visual Studio spustí emulátor, který trvá několik sekund, než se načte a nasadí váš kód. Tady je postup, jak se aplikace zobrazí v emulátoru:

    Screenshot of the app running in an Android Emulator.

    Po spuštění aplikace můžete nastavit zarážky a pomocí ladicího programu procházet kód, zkoumat místní hodnoty a sledovat hodnoty.

  5. Ladění zastavíte stisknutím klávesy Shift+F5.

    Emulátor je samostatný proces, který se bude dál spouštět. Kód můžete upravovat, kompilovat a nasazovat vícekrát do stejného emulátoru. Vaše aplikace se zobrazí v kolekci aplikací v emulátoru a můžete ji spustit přímo odsud.

    Vygenerovaná aplikace Android Native Activity a projekty knihovny umístí sdílený kód C++ do dynamické knihovny. Obsahuje kód "připevnění" pro rozhraní s platformou Android. Většina kódu aplikace je v knihovně. Manifest, prostředky a pokyny k sestavení jsou v projektu balení. Sdílený kód se volá z main.cpp v projektu NativeActivity. Další informace o tom, jak programovat nativní aktivitu Androidu, najdete na stránce Koncepty sady Android Developer NDK.

    Visual Studio sestaví projekty nativní aktivity androidu pomocí sady Android NDK. Používá jazyk Clang jako sadu nástrojů platformy. Visual Studio mapuje vlastnosti projektu na příkazy kompilace, propojení a ladění na cílové platformě. Podrobnosti získáte otevřením dialogového okna Stránky vlastností pro projekt MyOpenGLESApp.Android.NativeActivity. Další informace o přepínačích příkazového řádku naleznete v uživatelské příručce kompilátoru jazyka Clang.

Sestavení a spuštění aplikace pro iOS na zařízení s iOSem

V sadě Visual Studio vytvoříte a upravíte projekt aplikace pro iOS. Kvůli licenčním omezením je nutné ho sestavit a nasadit z Počítače Mac. Visual Studio komunikuje se vzdáleným agentem spuštěným na Macu za účelem přenosu souborů projektu a spouštění příkazů sestavení, nasazení a ladění. Před vytvořením aplikace pro iOS nastavte a nakonfigurujte Mac a Visual Studio tak, aby komunikovali. Podrobné pokyny najdete v tématu Instalace a konfigurace nástrojů pro sestavení pomocí iOS. Spusťte na počítači Mac vzdálený agent a spárujte ho se sadou Visual Studio. Pak můžete sestavit a spustit aplikaci pro iOS, abyste ověřili instalaci a nastavení.

Pokud chcete aplikaci nasadit na zařízení s iOSem, nejprve nastavte automatické přihlašování v Xcode. Automatické podepisování vytvoří zřizovací profil pro podepsání sestavení aplikace.

Nastavení automatického přihlašování v Xcode

  1. Pokud jste to ještě neudělali, nainstalujte na Mac Xcode .

  2. Otevřete aplikaci Xcode na macu.

  3. Vytvořte nový projekt Xcode aplikace s jedním zobrazením. Vyplňte požadovaná pole během vytváření projektu. Hodnoty můžou být libovolné, protože projekt se používá jenom k vytvoření zřizovacího profilu, který se použije později k podepsání sestavení aplikace.

  4. Přidejte svoje Apple ID, které je zaregistrované v účtu Apple Developer Program , do Xcode. Apple ID se používá jako podpisová identita k podepisování aplikací. Pokud chcete přidat podpisové identity v Xcode, otevřete nabídku Xcode a zvolte Předvolby. Vyberte Účty a kliknutím na tlačítko Přidat (+) přidejte Apple ID. Podrobné pokyny najdete v tématu Přidání účtu Apple ID.

  5. V nastavení "Obecné" projektu Xcode změňte hodnotu Identifikátor sady na com.<NameOfVSProject>, kde <NameOfVSProject> je stejný název jako projekt řešení sady Visual Studio, který jste vytvořili. Pokud jste například vytvořili projekt volaný MyOpenGLESApp v sadě Visual Studio, nastavte identifikátor sady prostředků na com.MyOpenGLESApphodnotu .

    Screenshot of the Xcode bundle identifier.

  6. Pokud chcete povolit automatické podepisování, zkontrolujte to. Automatická správa podepisování**.

    Screenshot of Xcode automatic signing value.

  7. Vyberte název týmu Apple ID, které jste přidali jako vývojový tým.

    Screenshot of the Xcode team value.

Sestavení a spuštění aplikace pro iOS na zařízení s iOSem

  1. Spusťte na počítači Mac vzdálený agent a ověřte, že je sada Visual Studio spárovaná se vzdáleným agentem. Pokud chcete spustit vzdáleného agenta, otevřete okno aplikace Terminálu a zadejte vcremote. Další informace naleznete v tématu Konfigurace vzdáleného agenta v sadě Visual Studio.

    Mac Terminal window running vcremote.

  2. Připojte zařízení s iOSem k Macu. Když zařízení připojíte k počítači poprvé, zobrazí se výstraha s dotazem, jestli počítači důvěřujete pro přístup k vašemu zařízení. Povolte zařízení, aby důvěřoval počítači Mac.

  3. Pokud v sadě Visual Studio ještě není vybraná, zvolte platformu řešení z rozevíracího seznamu Platformy řešení na základě procesoru zařízení. V tomto příkladu se jedná o procesor ARM64 .

    Screenshot of setting the Solution Platform to ARM64.

  4. V Průzkumník řešení otevřete místní nabídku projektu MyOpenGLESApp.iOS.Application a zvolte Uvolnit projekt, aby se projekt rozbalil.

  5. Znovu otevřete místní nabídku pro uvolněný projekt MyOpenGLESApp.iOS.Application a zvolte Upravit project.pbxproj a upravte soubor projektu. project.pbxproj V souboru vyhledejte buildSettings atribut a přidejte DEVELOPMENT_TEAM ho pomocí Apple Team ID. Následující snímek obrazovky ukazuje ukázkovou 123456ABC hodnotu Apple Team ID. Hodnotu Apple Team ID najdete v Xcode. Přejděte na Build Nastavení a najeďte myší na název vývojového týmu, aby se zobrazil popis. Popis zobrazuje ID vašeho týmu.

    Screenshot of setting the development team.

  6. project.pbxproj Zavřete soubor a otevřete místní nabídku pro uvolněný projekt MyOpenGLESApp.iOS.Application a zvolte Znovu načíst projekt.

  7. Nyní sestavte projekt MyOpenGLESApp.iOS.Application tak, že otevřete místní nabídku projektu a zvolíte Sestavení.

    Using the shortcut menu to build the iOS Application project.

    V okně Výstup se zobrazí výstup procesu sestavení. Zobrazuje výsledky pro statickou knihovnu pro iOS a aplikaci pro iOS. V počítači Mac se v okně terminálu se vzdáleným agentem zobrazí aktivita příkazu a přenosu souborů.

    Na počítači Mac se může zobrazit výzva k povolení kodesignu pro přístup ke klíčence. Chcete-li pokračovat, zvolte Povolit .

  8. Na panelu nástrojů zvolte zařízení s iOSem a spusťte aplikaci na zařízení připojeném k Macu. Pokud se aplikace nespustí, ověřte, že zařízení dává vaší nasazené aplikaci oprávnění ke spuštění na zařízení. Toto oprávnění můžete nastavit tak, že na zařízení přejdete na Nastavení> General> Správa zařízení. Vyberte svůj účet vývojářské aplikace, důvěřujte svému účtu a ověřte aplikaci. Zkuste aplikaci spustit znovu ze sady Visual Studio.

    Screenshot of the iOS app on an iOS device.

    Po spuštění aplikace můžete nastavit zarážky a pomocí ladicího programu sady Visual Studio prozkoumat místní hodnoty, zobrazit zásobník volání a sledovat hodnoty.

    Screenshot of the Debugger at a breakpoint in the iOS app.

  9. Ladění zastavíte stisknutím klávesy Shift+F5.

    Vygenerované projekty aplikací a knihoven pro iOS umístí kód C++ do statické knihovny, která implementuje pouze sdílený kód. Většina kódu aplikace je v Application projektu. Volání kódu sdílené knihovny v tomto projektu šablony jsou provedena v souboru GameViewController.m . K sestavení aplikace pro iOS používá Visual Studio sadu nástrojů platformy Xcode, která vyžaduje komunikaci se vzdáleným klientem, který běží na Macu.

    Visual Studio přenese soubory projektu do vzdáleného klienta. Pak odešle příkazy pro sestavení aplikace pomocí Xcode. Vzdálený klient odešle informace o stavu sestavení zpět do sady Visual Studio. Po úspěšném sestavení aplikace může Visual Studio odesílat příkazy pro spuštění a ladění aplikace. Ladicí program v sadě Visual Studio řídí aplikaci spuštěnou na zařízení s iOSem připojeným k macu. Visual Studio mapuje vlastnosti projektu na možnosti používané ke kompilaci, propojení a ladění na cílové platformě iOS. Podrobnosti o možnostech příkazového řádku kompilátoru získáte otevřením dialogového okna Stránky vlastností pro projekt MyOpenGLESApp.iOS.StaticLibrary.

Přizpůsobení aplikací

Sdílený kód C++ můžete upravit a přidat nebo změnit běžné funkce. Změňte volání sdíleného kódu v projektech MyOpenGLESApp.Android.NativeActivity tak MyOpenGLESApp.iOS.Application , aby odpovídaly. Makra preprocesoru můžete použít k určení oddílů specifických pro platformu ve společném kódu. Makro preprocesoru __ANDROID__ je předdefinováno při sestavování pro Android. Makro preprocesoru __APPLE__ je předdefinováno při sestavování pro iOS.

Pokud chcete zobrazit IntelliSense pro konkrétní platformu projektu, zvolte projekt v rozevíracím seznamu přepínače kontextu. Je v navigačním panelu v horní části okna editoru.

Screenshot of the Project Context Switcher dropdown in the Editor.

Problémy IntelliSense v kódu používaném aktuálním projektem jsou označené červenou vlnovkou. Fialová vlnovka označuje problém v jiných projektech. Visual Studio nepodporuje zabarvení kódu ani IntelliSense pro soubory Java nebo Objective-C. Zdrojové soubory a prostředky ale můžete i nadále upravovat. Použijte je k nastavení názvu aplikace, ikony a dalších podrobností implementace.