前期准备
思路:
- Go 交叉编译为 Android 平台支持的 so 文件。
- 在 Android 中使用 JNA 调用该 so 文件。
依赖:
编写 Go 测试代码
- 编写 speedtester 的核心代码,实现对任意网站访问速度的检测:
package speedtester
import (
"net/http"
"time"
)
func Perform(url string) (int, error) {
req, err := http.NewRequest(http.MethodGet, url, nil)
if err != nil {
return 0, err
}
startAt := time.Now()
resp, err := http.DefaultClient.Do(req)
cost := time.Now().Sub(startAt)
if err != nil {
return 0, err
}
defer resp.Body.Close()
return int(cost / time