golang / go
Podúložiště Go mobile přidává podporu pro mobilní platformy (Android a iOS) a poskytuje nástroje pro vytváření mobilních aplikací.
Existují dvě strategie, kterými se můžete řídit při začleňování jazyka Go do svého mobilního zásobníku:
- Psaní nativních mobilních aplikací zcela ve formátu Go.
- Psaní aplikací SDK generováním vazeb z balíčku Go a jejich voláním z jazyka Java (v systému Android) a Objective-C (v systému iOS).
Tento článek bude obsahovat návody krok za krokem, které vysvětlí, jak těchto strategií dosáhnout.
- Nástroje
- Nativní aplikace
- Tvorba a nasazení na Androidu
- Tvorba a nasazení na iOS
- Ikona aplikace
- Aplikace SDK
- Tvorba a nasazení pro Android
- Tvorba a nasazení pro iOS
- Simulátor iOS
.
Nástroje
Pozn: Musíte mít Go 1.5 nebo vyšší, abyste mohli nainstalovat mobilní nástroje. (Nebo alespoň Go 1.7.4, pokud používáte macOS Sierra)
Go Mobile představuje nový nástroj, gomobile,který vám pomůže s procesem sestavení a vazby.
gomobile nyní podporuje moduly Go!
$ gomobile bind -v -o android.aar -target=android ./package
pod adresářem projektu nyní funguje.
V systému MacOS budete muset mít nainstalované nástroje příkazového řádkuXcode.
$ go get golang.org/x/mobile/cmd/gomobile
(Následující části vám pomohou, jak nástroj gomobile používat.)
Nativní aplikace
Kategorie nativních aplikací zahrnuje aplikace kompletně napsané v jazyce Go. V současné době je k dispozici aplikacegolang.org/x/mobileobsahuje pouze malou sadu balíčků, které se zaměřují na:
- Ovládání a konfigurace aplikací
- Vazby na OpenGL ES 2 a ES 3
- Správa majetku
- Správa událostí
- Experimentální balíčky zahrnují vazby na OpenAL, zvuk, písmo, sprity a pohybové senzory
Pod golangem existují různé ukázkové nativní aplikace.org/x/mobile/example. Základní příklad sestavíme a nasadíme jak na zařízení se systémem Android, tak na zařízení se systémem iOS.
Sestavte aplikaci.
$ go get -d golang.org/x/mobile/example/basic
Sestavení a nasazení na Android
Spuštěním gomobile build
sestavíte APK pro Android.
$ gomobile build -target=android golang.org/x/mobile/example/basic
Příkaz Build sestaví APK s názvem basic.apk.
Pokud je v adresáři balíčku definován soubor AndroidManifest.xml, je přidán do výstupu APK. V opačném případě se vygeneruje výchozí manifest.
Pokud máte v počítači nainstalovaný příkaz adb, můžete pomocí gomobile install
sestavit a odeslat APK do mobilního zařízení.
$ gomobile install golang.org/x/mobile/example/basic
Sestavení a nasazení do systému iOS
Spuštěním gomobile build
sestavíte balíček jako aplikaci pro systém iOS.
Poznámka: target=ios vyžaduje hostitelský počítač se systémem macOS. Abyste mohli pokračovat, musíte získat podpisovou identitu a stáhnout profily provisioningu.
$ gomobile build -target=ios golang.org/x/mobile/example/basic
Příkaz build sestaví balíček aplikace s názvem basic.app
.
Soubory .app můžete nasadit přetažením na zařízení.
- V Xcode otevřete okno > Zařízení.
- V levém podokně vyberte fyzické zařízení.
- Přetáhněte soubor .app do sekce „Nainstalované aplikace“.
- Zaškrtněte možnost „V případě potřeby kopírovat položky“
Alternativně můžete balíčky aplikací nasadit do zařízení iOS pomocí nástroje příkazového řádku ios-deploy. Pomocí ios-deploy můžete aplikaci odeslat do zařízení.
$ ios-deploy -b basic.app
Ikona aplikace
Ikonu aplikace je možné nastavit vytvořením assets/icon.png
.
Aplikace SDK a generování vazeb
V této kategorii si ukážeme, jak můžete použít balíček Go ve své stávající aplikaci pro Android nebo iOS.
Výhody použití této strategie:
- Můžete znovu použít balíček Go z mobilní aplikace, aniž byste museli výrazně měnit stávající aplikaci.
- V případech, kdy chcete sdílet společnou kódovou základnu mezi aplikací pro Android a iOS, můžete jednou napsat společné funkce v jazyce Go a přilepit je ke kódu specifickému pro danou platformu voláním balíčku Go prostřednictvím vazeb.
Současná omezení jsou uvedena níže.
- V současné době je podporována pouze podmnožina typů Go.
- Vazby jazyka mají výkonnostní režii.
- Existuje několik omezení, jak by měla vypadat exportovaná API kvůli omezením cílového jazyka.
Použijeme ukázkový balíček pod golangem.org/x/mobile/example/bind/hello pro generování vazeb a volání funkce Greetings z jazyků Java a Objective-C.
Příklad získáte spuštěním níže uvedeného příkazu.
$ go get -d golang.org/x/mobile/example/bind/...
Sestavení a nasazení na Android
Poznámka: Go Mobile běží na stejných architekturách jako Go, což v současné době znamená zařízení a emulátory ARM, ARM64, 386 a amd64. Pozoruhodné je, že Android na zařízeních MIPS zatím není podporován.
- Spuštěním následujícího příkazu vygenerujete soubor aar, který je vhodný pro import do projektů Android:
$ gomobile bind -o app/hello.aar -target=android golang.org/x/mobile/example/bind/hello
- Spustit Android Studio.
- Soubor > Import projektu… importovat referenční projekt z $GOPATH/src/golang.org/x/mobile/example/bind/android.
- Sestavte a nasaďte aplikaci do zařízení.
Modul aplikace obsahuje hlavní aplikaci, která vyvolá hello.Greetings
. Po spuštění aplikace se textové zobrazení aktualizuje o vrácenou hodnotu řetězce.
Pokud nepoužíváte Android Studio, musíte mít pro práci s vazbami pro Android nainstalovaný Android SDK a proměnnou prostředí ANDROID_HOME nastavenou na cestu k SDK. Potřebujete také nainstalovat NDK; nejjednodušší způsob je spustit příkaz SDK sdkmanager ndk-bundle
.
Případně, pokud nejste obeznámeni s vývojem pro Android a nechcete nastavovat všechna potřebná prostředí (Android SDK, Gradle atd.), můžete místo toho použít tento soubor Dockerfile pro sestavení aplikace v dockeru.
Pokud se pokusíte přidat svůjmodul.aar do vlastního projektu, po zkopírování svéhomodulu.aar a souboru yourmodule.jar do složky „android\app“, je třeba provést níže uvedené úpravy v souboru „android\app\build.gradle“, aby byl váš modul správně importován.
+ repositories {+ flatDir {+ dirs '.'+ }+ }
dependencies {...+ implementation (name:'yourmodulename', ext:'aar')}
Sestavení a nasazení pro iOS
Poznámka: target=ios vyžaduje, aby na hostitelském počítači běžel systém macOS.
$ cd $GOPATH/src/golang.org/x/mobile/example/bind$ gomobile bind -target=ios golang.org/x/mobile/example/bind/hello
Gomobile bind vygeneruje framework bundle s názvem Hello.framework
. Otevřete ukázkový projekt Xcode spuštěním níže uvedeného příkazu.
$ open ios/bind.xcodeproj
Přetáhněte a pusťte svazek Hello.framework
do projektu Xcode. Zaškrtněte políčko „Kopírovat položky v případě potřeby“, pokud jinak potřebujete jinou kopii rámcového svazku v rámci Xcode. V opačném případě úprava zdrojového kódu balíčku Go a opětovné spuštění gomobile bind
aktualizuje hello.framework.
Pokud se rozhodnete ponechat Hello.framework
v hlavním adresáři, musíte přidat hlavní adresář do Framework Search Paths
v nastavení sestavení cílů.
Rozložení vašeho projektu by mělo vypadat tak, jak je uvedeno níže.
Sestavte a spusťte jej na simulátoru nebo skutečném zařízení (Cmd+R). Po spuštění aplikace se popisek v hlavním zobrazení změní na řetězec vrácený z funkce GoHelloGreetings
, která vyvolá funkci hello.Greetings
.
Poznamenejte, že funkci GoHelloGreetings
můžete vyvolat také ze Swiftu importem Hello.
@import Hello// ...let msg = Hello.GoHelloGreetings("gopher")
Simulátor iOS
Od verze Go 1.5 funguje na simulátoru iOS pouze darwin/amd64. Chcete-li používat simulátor, musíte nakonfigurovat Xcode tak, aby se pokoušel spouštět pouze 64bitové binární soubory.
Xcode odpovídá bitové šířce binárních souborů ARM při spuštění na simulátoru X86. To znamená, že pokud nakonfigurujete Xcode tak, aby sestavoval 32bitové i 64bitové binární soubory ARM (výchozí nastavení), bude se na simulátoru pokoušet spustit 32bitové binární soubory X86, což dnes s Go nebude fungovat. Upravte nastavení sestavení Xcode tak, aby sestavovalo pouze 64bitové binární soubory ARM, a simulátor spustí binární soubor amd64.
Leave a Reply