emulator
Vela 模拟器 SDK
模拟器的介绍可参考开发帮助文档里的「模拟器」章节
目录结构
目录 | 描述 |
---|
avd | 模拟器的AVD,配置统一放置$HOME/.vela/vvd 目录下 |
instance | 模拟器实例,不同的Vela镜像版本会使用不同的instance,通过findInstance确定 |
static | 创建AVD时需要用到的静态资源,常量配置文件 |
typing | 接口定义 |
utils | 工具函数 |
安装
npm install @aiot/emulator
使用
创建 VVD
import os from 'os'
import path from 'path'
import { IAvdArchType, VelaAvdCls, VelaImageType } from '@aiot/emulator'
const sdkHome = path.resolve(os.homedir(), '.export_dev')
const velaAvdCls = new VelaAvdCls({ sdkHome })
export async function createVVd() {
velaAvdCls.createVvd({
avdName: 'test',
avdArch: IAvdArchType.arm64,
avdHeight: '466',
avdWidth: '466',
imageType: VelaImageType.REL
})
}
启动 VVD
import os from 'os'
import path from 'path'
import { IAvdArchType, VelaAvdCls, VelaImageType } from '../src'
const sdkHome = path.resolve(os.homedir(), '.export_dev')
const velaAvdCls = new VelaAvdCls({ sdkHome })
export async function startVvd(vvdName: string) {
velaAvdCls.startVvd({
avdName: vvdName
})
}
初始化环境
import os from 'os'
import path from 'path'
import { VelaAvdCls } from '@aiot/emulator'
async function main() {
const sdkHome = path.resolve(os.homedir(), '.export_dev')
const velaAvdCls = new VelaAvdCls({ sdkHome })
const downloder = await velaAvdCls.downloadSDK({
force: true,
cliProgress: false,
parallelDownloads: 6
})
downloder.on('progress', (progress) => {
console.log(
`progress: ${progress.formattedSpeed} ${progress.formattedPercentage} ${progress.formatTotal} ${progress.formatTimeLeft}`
)
})
await downloder.downlodPromise
console.log('download success')
}
main()
完整示例
import { IAvdArchType, VelaAvdCls, VelaImageType } from '@aiot/emulator'
const velaAvdCls = new VelaAvdCls({})
velaAvdCls.createVvd({
avdName: 'O62',
avdArch: IAvdArchType.arm64,
avdHeight: '466',
avdWidth: '466',
imageType: VelaImageType.REL
})
velaAvdCls.startVvd({
avdName: 'O62'
})
export async function startVvd(vvdName: string) {}
export async function createVVd() {}
async function main() {
const downloder = await velaAvdCls.downloadSDK({
force: true,
cliProgress: false,
parallelDownloads: 6
})
downloder.on('progress', (progress) => {
console.log(
`progress: ${progress.formattedSpeed} ${progress.formattedPercentage} ${progress.formatTotal} ${progress.formatTimeLeft}`
)
})
await downloder.downlodPromise
console.log('download success')
}
main()