使用Go语言开发Android&IOS应用
jopen
9年前
<h1>使用Golang开发手机应用的具体步骤 <del> TL:DR </del></h1> <hr /> <h3>1. 下载安装Go语言(版本1.5+) </h3> <p><a href="/misc/goto?guid=4959643475602697644" target="_blank">Golang链接</a> </p> <h3>2. 下载安装 gomobile </h3> <ul> <li> <p>下载<br /> $ go get golang.org/x/mobile/cmd/gomobile </p> </li> <li> <p>安装(需要等待几分钟)<br /> gomobile init </p> </li> </ul> <h3>3. Golang开发手机应用有两种方式 </h3> <h5>a. 原生应用开发 </h5> <p>$ go get -d golang.org/x/mobile/example/basic </p> <ul> <li> <p>主要应用领域: </p> <ul> <li><em>应用控制管理与配置</em> </li> <li><em>OpenGL ES 2 绑定</em> </li> <li><em>Asset 管理</em> </li> <li><em>Event 管理</em> </li> <li><em>试验中的包,含有OpenAL 绑定、音频、字体、图形以及运动传感器</em> </li> </ul> </li> <li> <p>Android开发 </p> <ul> <li> <p>$ gomobile build -target=android golang.org/x/mobile/example/basic<br /> <em>此命令会生成名为basic的apk安装包</em> </p> </li> <li> <p>$ gomobile install golang.org/x/mobile/example/basic<br /> <em>此命令将安装apk包到已连接的android设备</em> </p> </li> </ul> </li> <li> <p>IOS开发 </p> <ul> <li> <p>$ gomobile build -target=ios golang.org/x/mobile/example/basic<br /> <em>此命令会生成名为basic的app安装包</em> </p> </li> <li> <p>下载IOS安装包命令行工具 - <a href="/misc/goto?guid=4959643475681122544" target="_blank">ios-deploy</a><br /> $ ios-deploy -b basic.app<br /> <em>此命令将安装app文件到已开启的IOS模拟器或者已连接的IOS设备</em> </p> </li> </ul> </li> </ul> <h5>b. 混合绑定开发 </h5> <p>$ go get -d golang.org/x/mobile/example/bind/... </p> <ul> <li>优势 <ul> <li><em>Go code复用</em> </li> <li><em>在Android和IOS开发中共享通用的Go代码通过调用绑定的Golang包名</em> </li> </ul> </li> <li> <p>限制 </p> <ul> <li><em>当前仅支持的<a href="/misc/goto?guid=4959643475767674516" target="_blank">一些Go类型</a></em> </li> <li><em>语言之间的绑定会有性能开销</em> </li> </ul> </li> <li> <p>Android开发 </p> <ul> <li> <p>开启Android studio,导入Project,选择路径$GOPATH/src/golang.org/x/mobile/example/bind/android </p> <div href="https://simg.open-open.com/show/40de311718802d76e063a483efbe8704.png"> <img src="https://simg.open-open.com/show/40de311718802d76e063a483efbe8704.png" width="646" height="620" /> <br /> </div> </li> <li> <p>修改配置文件hello/build.gradle </p> <div href="https://simg.open-open.com/show/0ed4ceded141586717df1680ffef7755.jpg"> <img src="https://simg.open-open.com/show/0ed4ceded141586717df1680ffef7755.jpg" width="700" height="353.97727272727275" /> <br /> </div> </li> <li> <p>最后 Build & Run <完><br /> <del> 备用选项: </del><br /> <del> $ gomobile bind -target=android golang.org/x/mobile/example/bind/hello </del><br /> <del> <em>此命令会在hello/路径下生成aar文件</em>,用户可以直接在Android Studio内导入 </del></p> </li> </ul> </li> <li> <p>IOS开发 </p> <ul> <li> <p>$ cd $GOPATH/src/golang.org/x/mobile/example/bind $ gomobile bind -target=ios golang.org/x/mobile/example/bind/hello<br /> <em>此命令在ios/路径下生成bind.xcodeprojxcode项目以及 在bind/目录下生成一个hello.framework</em> </p> </li> <li> <p>打开xcode项目<br /> $ open ios/bind.xcodeproj </p> <div href="https://simg.open-open.com/show/3cf3c6fe22e4566986abf73f21f95da5.png"> <img src="https://simg.open-open.com/show/3cf3c6fe22e4566986abf73f21f95da5.png" width="700" height="479.0" /> <br /> </div> <p>拖拽hello.framework文件到xcode项目内 </p> <div href="https://simg.open-open.com/show/ea9ecbaa7ff7fb1005bf73674f8fc5dd.png"> <img src="https://simg.open-open.com/show/ea9ecbaa7ff7fb1005bf73674f8fc5dd.png" width="700" height="412.32876712328766" /> <br /> </div> </li> <li> <p>最后 Build & Run <完> </p> <div href="https://simg.open-open.com/show/481aeaadbd02e48e76b4a9f531376045.png"> <img src="https://simg.open-open.com/show/481aeaadbd02e48e76b4a9f531376045.png" width="700" height="501.1863224005583" /> </div> </li> </ul> </li> </ul> 来自:http://www.jianshu.com/p/403aa507935b