㈠ 想使用docker來進行android源碼編譯,對電腦配置要求怎麼樣
這個配置足夠了,還需要配置好對應的環境和編譯工具。
㈡ 如何利用 Docker 環境加速 Android 應用的構建
Docker的英文本意是碼頭工人,也就是搬運工,這種搬運工搬運的是集裝箱(Container),集裝箱裡面裝的可不是商品貨物,而是任意類型的App,Docker把App(叫Payload)裝在Container內,通過Linux Container技術的包裝將App變成一種標准化的、可移植的、自管理的組件,這種組件可以在你的latop上開發、調試、運行,最終非常方便和一致地運行在proction環境下。
Docker的核心底層技術是LXC(Linux Container),Docker在其上面加了薄薄的一層,添加了許多有用的功能。 這篇stackoverflow上的問題和答案很好地詮釋了Docker和LXC的區別,能夠讓你更好的了解什麼是Docker, 簡單翻譯下就是以下幾點:
Docker提供了一種可移植的配置標准化機制,允許你一致性地在不同的機器上運行同一個Container;而LXC本身可能因為不同機器的不同配置而無法方便地移植運行;
Docker以App為中心,為應用的部署做了很多優化,而LXC的幫助腳本主要是聚焦於如何機器啟動地更快和耗更少的內存;
Docker為App提供了一種自動化構建機制(Dockerfile),包括打包,基礎設施依賴管理和安裝等等;
Docker提供了一種類似git的Container版本化的機制,允許你對你創建過的容器進行版本管理,依靠這種機制,你還可以下載別人創建的Container,甚至像git那樣進行合並;
Docker Container是可重用的,依賴於版本化機制,你很容易重用別人的Container(叫Image),作為基礎版本進行擴展;
Docker Container是可共享的,有點類似github一樣,Docker有自己的INDEX,你可以創建自己的Docker用戶並上傳和下載Docker Image;
Docker提供了很多的工具鏈,形成了一個生態系統;這些工具的目標是自動化、個性化和集成化,包括對PAAS平台的支持等;
那麼Docker有什麼用呢?對於運維來說,Docker提供了一種可移植的標准化部署過程,使得規模化、自動化、異構化的部署成為可能甚至是輕松簡單的事情;而對於開發者來說,Docker提供了一種開發環境的管理方法,包括映像、構建、共享等功能,而後者是本文的主題。
㈢ 如何Golang開發Android應用
如何Golang開發Android應用:
一丶准備
1.一台Linux 64的機器
2.一個帶有AndroidStudioIDE的開發機器
因為環境配置實在復雜,所以引入的docker。
docker pull codeskyblue/docker-goandroid
docker run --rm -ti codeskyblue/docker-goandroid bash
cd example; echo "view example projects
docker起來之後,什麼就都配置好了,NDK,java,GO的環境變數了,等等,並且還預裝了vim,gradle,tmux,git,syncthing,svn
二丶代碼
1.寫代碼之前,先約定下目錄結構
go的代碼都放在src/golib下,編譯使用make.bash編譯腳本,看下這個文件樹
.
|-- app.iml
|-- build.gradle
|-- libs/armeabi-v7a # go編譯生成的so文件
| `-- libgojni.so
|-- main.go_tmpl # 一個模板文件,先不用管它
|-- make.bash # 編譯腳本,用來生成.so和Java代碼
`-- src
|-- golib
| |-- hi
| | |-- go_hi֞֞֞ # 自動生成的代碼
| | | `-- go_hi.go
| | `-- hi.go # 需要編寫的代碼
| `-- main.go
`-- main
|-- AndroidManifest.xml
|-- java
| |-- go # 自動生成的代碼
| | |-- Go.java
| | |-- Seq.java
| | `-- hi
| | `-- Hi.java
| `-- me/shengxiang/gohello # 主要的邏輯代碼
| `-- MainActivity.java֞֞֞
`-- res
2.寫了一個例子
git clone
3.編譯下,試試行不行(就算不行問題應該也不大,因為大問題都被消滅了)
cd GoHello/app
./make.bash
../gradlew build
4.一切順利的話在build/outputs/apk下應該可以看到app-debug.apk這個文件。
編譯好的放到qiniu上了,可以點擊下載看看
下面可以嘗試改改
打開hi.go這個文件
hi.go的內容,比較簡單,寫Go代碼主要就是這部分
// Package hi provides a function for saying hello.
package hi
import "fmt"
func Hello(name string) {
fmt.Printf("Hello, %s!
", name)
return "(Go)World"
}
5.文件末尾添加下面這行代碼
func Welcome(name string) string {
return fmt.Sprintf("Welcome %s to the go world", name)
}
使用./make.bash重新編譯下
6.打開MainActivity.java修改下OnClickListener事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String message = Hi.Welcome("yourname");
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
}
});
編譯運行下,把生成的apk安裝到手機上試試。
㈣ docker能運行android模擬器嗎
很高興能幫助您, docker起來之後,什麼就都配置好了,NDK啦,java啦,GO的環境變數了,等等,並且還預裝了vim,gradle,tmux,git,syncthing,svn 開始寫代碼 寫代碼之前,先約定下目錄結構 go的代碼都放在src/golib下,編譯使用make.bash編。