gomobile如何在apk中嵌入资产

时间:2018-03-21 17:18:41

标签: java android go apk gomobile

使用Android开发gomobile时。如何在apk文件中包含资源(html,js,images)?我有一个在apk内部运行的web服务器,它可以在apk内部运行,也可以运行,但是当在手机上打包时,服务无法找到它的资产/静态文件。

1 个答案:

答案 0 :(得分:2)

您必须将资产放在名为“资产”的目录中。

见这个例子:

https://github.com/udhos/fugo/tree/master/demo/invader/assets

然后您可以使用包golang.org/x/mobile/asset加载所需资产:

import "golang.org/x/mobile/asset"

f, err := asset.Open("image.png")

取自https://github.com/udhos/fugo/blob/master/demo/invader/main.go的示例代码:

func loadFull(name string) ([]byte, error) {
    f, errOpen := asset.Open(name)
    if errOpen != nil {
        return nil, errOpen
    }
    defer f.Close()
    buf, errRead := ioutil.ReadAll(f)
    if errRead != nil {
        return nil, errRead
    }
    log.Printf("loaded: %s (%d bytes)", name, len(buf))
    return buf, nil
}