vue-golang-webassembly初体验
# golang 部分
参考 https://geektutu.com/post/quick-go-wasm.html
# 开发
package main
import "syscall/js" // goland可能会报错,忽略即可
func main() {
alert := js.Global().Get("alert")
alert.Invoke("Hello World!")
}
# 编译
不能用 go build...
more...
本周看了啥-2023年7月15日
# pwa 教程
https://lavas-project.github.io/pwa-book/chapter05/5-workbox.html
pwa 可以将网站当作 app 安装到电脑或者手机上。
这个教程全面介绍了 pwa 的技术,包括:
pwa 的发展
前端对于用户体验的优化
用到的 js 技术
service worker 的技术
缓存策略
消息通知
安全性介绍
性能优化
尤其是前端用户体验方便,对于骨架屏、响应式布局的介绍,写的很好。
# css 揭秘
https://book.douban.com/subject/26745943/
这本书是 css...
more...
SoloX之报告导出
# excel
@api.route('/apm/export/report', methods=['post', 'get'])def exportReport(): platform = method._request(request, 'platform') scene = method._request(request, 'scene') try: path = f.export_excel(platform=platform, scene=scene) result =...
more...
SoloX之安卓logcat
安卓 logcat 通过一个 websocket 来进行传输;
websocket 基于 socketio 实现
@socketio.on('connect', namespace='/logcat')def connect(): socketio.emit('start connect', {'data': 'Connected'}, namespace='/logcat') logDir =...
more...
SoloX之应用安装
# 安卓
首先保存上传的 apk 到临时目录
file_path = os.path.join(currentPath, '{}.apk'.format(unixtime))if install.uploadFile(file_path, file): install_status = install.installAPK(file_path)
然后安装
def installAPK(self, path): result = adb.shell_noDevice(cmd='install -r...
more...
SoloX之应用网络数据采集
# 安卓
基于 linux 的原理,通过 cat /proc/进程id/net/dev 拿到网卡数据;
间隔一秒 分别拿到两次发送数据量、接受数据量 ( sendNum_pre recNum_pre )
然后计算数据差,得到网速
def getAndroidNet(self, wifi=True): """Get Android send/recv data, unit:KB wlan0/rmnet0""" net = 'wlan0' if wifi else 'rmnet0' cmd =...
more...
SoloX之应用启动时间
# 安卓
adb 命令获取到 activity 启动时间
def getStartupTimeByAndroid(self, activity, deviceId): result = adb.shell(cmd='am start -W {}'.format(activity), deviceId=deviceId) return result# IOS
基于 pydevice 获取
def getStartupTimeByiOS(self, pkgname): try: import ios_device except...
more...
SoloX之GPU性能采集
# 安卓
目前不支持,其实是可以拿到的。
# ios
class GPU(object): def __init__(self, pkgName): self.pkgName = pkgName def getGPU(self, noLog=False): apm = iosAPM(self.pkgName) gpu = apm.getPerformance(apm.gpu) if noLog is False: apm_time = datetime.datetime.now().strftime('%H:%M:%S.%f')...
more...