windows系统上aosp15上winscope离线html如何使用?

背景:

aosp15上的如何使用Winscope前面已经有分享过相关的blog,这块其实和aosp14没啥大的差别,具体可以看如下3个文章:
手把手教你aosp14编译Winscope
安卓aosp15手机上如何离线获取winscope文件

文章中也说明在aosp15如果直接使用编译好的离线html是有问题的,无法正常显示抓取的Winscope文件。针对这样一个问题对于有些同学来说还是很不友好,因为很可能他们不想搭建node相关的环境,那么针对 aosp15上Winscope离线的html是否真的不可以使用呢?

对于ubuntu系统前面已经有相关文章分享过了:

程序员偷懒神器:aosp15上winscope离线html如何使用?

今天主要要分享一下很多学员朋友使用Windows操作系统办公同学,也就是Windows上如何使用aosp15的Winscope离线版本(马哥编译安卓15的Winscope离线版本相关文件,学员可以vip群里获取 )。

这个问题的解决还得感谢我们有前端背景学员朋友"小周佩奇i"提供的相关方案,下面来分享一下aosp15上winscope离线html如何使用。

无法使用离线html原因

1、直接文件方式打开html

2、导入对应Winscope包发现画面没有反应,其实是报错了,具体报错情况如下:

bash 复制代码
'Worker': Script at 'file:///media/test/49a0eb6b-f410-4eed-9e0a-952e3c75d2b2/home/test/aosp15/development/tools/winscope/dist/prod/engine_bundle.js' cannot be accessed from origin 'null'.
    at initWasm (wasm_engine_proxy.ts:24:20)
    at parser_factory_ParserFactory.initializeTraceProcessor (parser_factory.ts:131:7)
    at parser_factory_ParserFactory.createParsers (parser_factory.ts:63:39)
    at TracePipeline.loadUnzippedArchive (trace_pipeline.ts:210:57)
    at async TracePipeline.loadFiles (trace_pipeline.ts:72:37)
    at async Mediator.loadFiles (mediator.ts:238:7)
    at async mediator.ts:123:43
    at async AppFilesUploaded.visit (winscope_event.ts:71:21)
    at async Mediator.onWinscopeEvent (mediator.ts:119:67)
    at async AppComponent.onFilesUploaded (app_component.ts:531:25)

报错大概原因(引用学员朋友写的):
就是sf layer 是bp的方式存储,js使用bp应该是要通过wasm来,可以理解为js通过一个标准接口来执行native代码,类似jni

不过我们可能不关心原因,因为这块毕竟属于前端的知识,我们更关心应该怎么解决

Windows上解决html直接导入Winscope文件报错

上面报错的核心解决办法就是需要安装一个http-serser,并且启动http-server。所以核心就是要安装http-server,它的安装有多种方式这里主要介绍npm安装方式。

其他一些安装方案(感谢vip学员小周佩奇的回答):

bash 复制代码
一、Node 生态
http-server(最常用,零配置)
安装
npm i -g http-server        # 全局安装一次即可
使用
cd 你的项目目录
http-server -p 8080 -o      # -o 自动打开浏览器
特点:支持 gzip、CORS、HTTPS、自动刷新(--watch)等,体积小。
serve(Vercel 出品,零配置,UI 漂亮)
npm i -g serve
serve -l 8080 .
特点:自动识别单页应用(history fallback),终端里会给出一个漂亮的本地地址列表。
live-server(带自动刷新)
npm i -g live-server
live-server --port=8080
特点:改完文件浏览器自动刷新,适合写 demo 或静态博客。
极简"自己写三行"
如果环境不允许全局安装,可在项目里:
npm init -y
npm i http-server
npx http-server -p 8080
或者把脚本写进 package.json:
"scripts": { "dev": "http-server -p 8080 -o" }
以后 npm run dev 即可。
二、Python 生态(pip)
http.server(Python 3 内置,无需 pip)
python -m http.server 8080
缺点:只支持最基本的 GET、HEAD,没有 CORS、HTTPS。
进阶:pip install 一些"带功能"的小工具
a) simple-http-server
pip install simple-http-server
simple-http-server -p 8080
特点:支持 CORS、HTTPS、上传、自动刷新(--watch)。
b) livereload
pip install livereload
在项目根建一个 serve.py:
from livereload import Server
server = Server()
server.watch('*.html')
server.serve(root='.', port=8080)
然后 python serve.py,改完文件自动刷新。

这里主要分为一下几个步骤:
1、下载windows版本nodejs及安装

nodejs下载地址:
https://www.nodejs.com.cn/download.html

直接下载后一路点击确定安装就可以了。

2、确定nodejs安装后npm是否可以用

使用Windows的cmd工具,输入npm命令有如下输出既可以:

3、使用npm安装http-server

在cmd中执行如下命令进行安装

bash 复制代码
npm i -g http-server

4、启动http-server

cmd中使用如下命令启动:

bash 复制代码
http-server -p 8080 -o

启动后,一定要使用chrome浏览器输入127.0.0.1:8080会类似如下本地文件界面,一路点击到自己离线html的文件夹prop路径

一路点击自己Winscope离线html文件夹,然后展示结果如下:

导入一个adb抓取的sf的Winscope文件:

更多framework实战相关干货,请关注下面"千里马学框架"

相关推荐
阿巴斯甜8 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker8 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95279 小时前
Andorid Google 登录接入文档
android
黄林晴11 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿1 天前
Android MediaPlayer 笔记
android
Jony_1 天前
Android 启动优化方案
android
阿巴斯甜1 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇1 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android