偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Go語言對Android原生應用開發(fā)的支持情況

移動開發(fā) Android
Google工程師和獨立開發(fā)人員提出了幾份不同的提案,旨在讓Go語言支持開發(fā)原生的Android應用。這項工作無法讓Go語言編寫的應用使用Android NDK的全部接口,但有可能使用其中的一個子集。

Google工程師和獨立開發(fā)人員提出了幾份不同的提案,旨在讓Go語言支持開發(fā)原生的Android應用。這項工作無法讓Go語言編寫的應用使用Android NDK的全部接口,但有可能使用其中的一個子集。

David Crawshaw是Google的工程師,他寫了一份提案,旨在讓Go語言部分支持編寫Android應用。根據(jù)他的說法,“用Go語言來實現(xiàn)整個Android平臺非常困難。Android平臺是用Java寫的,并擁有龐大的API層。”

但是,Crawshaw說,一部分Android應用——比如游戲——使用了精簡得多的C語言API編寫代碼,這些API由Android NDK提供。這樣,使用Go語言來開發(fā)和NDK一樣的功能,提供對Android的支持是有可能實現(xiàn)的。

Crawshaw建議在Go 1.4的開發(fā)周期中,Go語言的代碼庫引入一個叫GOOS=android的選項,這個選項可以提供以下功能:

  • 為Android NDK中導出的OpenGL、OpenSL和OpenMAX接口,提供Go語言的綁定(binding)。
  • 從Java語言到Go語言的綁定生成器(binding generator)。如果我們有一個Go語言編寫的軟件包,那么這個生成器可以幫助Java代碼調用它,所以游戲菜單界面就可以直接使用標準的SDK來編寫了。
  • 集成到Android Studio的編譯系統(tǒng)中。

不止Crawshaw一個人提出了把Go語言和Android結合起來的想法。Elias Naur建議擴 展Go語言的工具鏈來支持創(chuàng)建動態(tài)庫。這樣我們就可以在Android應用中使用Go語言編寫的庫,它們被Android應用加載和運行,并打包在apk 中發(fā)行。要把這個想法變?yōu)楝F(xiàn)實,有一個重要的前提條件:加入對交叉編譯的支持,而Go 1.3已經(jīng)實現(xiàn)了它。交叉編譯是必需的,因為NDK本身并不能在Android上運行,只有使用NDK編譯和(或)鏈接的可執(zhí)行程序和動態(tài)庫才能在 Android設備上運行。

上面這個提案基于已有的開源項目goandroid,作者就是Elias Naur。Goandroid修改了Go語言的工具鏈和運行時庫,使之能編寫動態(tài)庫,在原生的Android應用中運行,而Google官方并不支持這個功能。

***,還有一個叫Mandala的項目,它是一個更全面的框架,它的目標是使Go語言能編寫Android原生應用。Mandala利用了Goandroid的工具鏈,它的作者Andrea Fazzi說,感謝Goandroid,“你可以在桌面環(huán)境中開發(fā)、測試和運行你的應用,然后再把它部署到Android設備上。它鼓勵大家以Go語言獨特的方式來編寫Android應用:使用通道(channels)來實現(xiàn)通訊,而不是回調函數(shù)(callbacks)”

在功能方面,Mandala項目跟Crawshaw的提案很接近,它的目標也主要是為游戲提供解決方案:“我們不應該把Mandala框架看作是一 個上層的游戲引擎,而是應該在它基礎之上構建游戲引擎,或者把已有的游戲引擎移植到它上面。” Fazzi 提醒道,Google并不支持用Go語言來開發(fā)原生的Android應用,但他也表達了他的期望“當前這些工作可以起到某種激勵作用,促使Go語言開發(fā)團 隊從官方層面支持Android。”

責任編輯:chenqingxiang 來源: infoq
相關推薦

2022-04-06 08:19:13

Go語言切片

2020-12-01 17:44:15

華為云Go語言云原生

2011-05-13 15:46:49

C模塊化

2014-06-23 09:49:32

Go語言Android谷歌

2012-07-06 13:16:37

Google Go

2022-10-27 18:03:04

GogRPC云原生

2014-07-14 15:51:08

AndroidGO語言

2023-03-13 00:10:46

Go語言版本

2022-06-22 09:24:30

云原生Go 語言

2012-05-19 22:17:30

Android

2017-10-12 17:58:42

C語言Gtk+應用功能測試

2018-06-04 09:30:07

編程語言安卓應用開發(fā)

2014-06-12 13:50:25

2022-09-04 23:24:45

Go語言監(jiān)控

2010-08-24 16:07:37

C語言

2022-03-13 23:51:39

Web項目Go

2019-01-03 09:45:20

Go 前端 Web

2018-07-29 23:09:15

Google Go技術

2017-08-08 11:18:26

AndroidIntent原生

2009-06-19 16:12:22

Java語言properties
點贊
收藏

51CTO技術棧公眾號