# flutter_volcengine **Repository Path**: jiodg45/flutter_volcengine ## Basic Information - **Project Name**: flutter_volcengine - **Description**: 错误调试.............................. - **Primary Language**: Dart - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-05 - **Last Updated**: 2023-05-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # flutter_volcengine 详细请参照https://www.volcengine.com/docs/6431/161472 ## 支持的功能 ![img](./images/overall.png) ## iOS 功能实现模块 >子功能需添加到 `ios/flutter_volcengine.podspec` 子库名称 | 功能简介 | 对应平台模块 | 开始支持版本 -- | -- | -- | -- Crash | 崩溃监控:捕获CPP Exception、Mach Exception、NSException Exception 和 Signal Exception | 崩溃分析 | 0.0.5 WatchDog | 卡死监控:监控主线程长时间卡住被系统 watchdog 给强杀的情况 | 崩溃分析 | 0.0.5 OOM | Out of memory 监控 | 崩溃分析内存优化-OOM趋势 | 0.0.5 LAG | 卡顿监控:监控主线程短时间内无法响应的情况 | 卡顿分析 | 0.0.5 UserException | 自定义错误,需要业务方手动打点 | 错误分析-自定义错误 | 0.0.5 Monitors | 启动分析:流畅性: | 用户体验-启动分析用户体验-页面体验内存优化-OOM趋势-扩展指标 | 0.0.7 UITrackers | 页面分析: | 用户体验-页面体验-页面响应 | 0.0.7 Hybrid | WKWebView H5 页面监控 | 页面监控 | 0.0.8 MemoryGraph | 内存分析,获取某一时刻APP的内存状态 | 内存优化 | 0.0.8 Network | 网络分析:网络错误,Http、DNS分析 | 网络分析错误分析-网络错误 | 1.0.0 EventMonitor | 事件分析,记录自定义事件,需要手动埋点 | 事件分析 | 2.0.0 Flutter | Flutter监控,需要参考Flutter接入文档接入 | Flutter监控 | 2.2.1 SessionTracker | PV/UV统计,接入后会自动上报数据 | 各模块异常率、异常用户比例等 | 2.3.0 APMLog | APM日志库,可以手动打点记录APP运行日志 | 日志回捞崩溃分析-崩溃详情-自定义日志 | 2.4.0 CrashProtector | 崩溃防护 | 异常防护-崩溃防护 | 2.5.2 CPUException | CPU异常监控 | CPU监控-CPU异常 | 2.7.3 Zombie | 线上Zombie分析 | 崩溃分析 | 2.8.0(不支持白名单)2.10.0(支持白名单) BootingProtect | 连续崩溃保护 | \ | 2.10.0 BootingProtectLite | 连续崩溃保护Lite版(不依赖OOM) | \ | 2.10.0 MetricKit | MetricKit | MetricKit | 2.12.1 Disk | 磁盘监控 | 磁盘监控 | 3.0.0 GWPASan | GWPASan | 崩溃分析 | 3.1.0 Coredump | Coredump | 崩溃分析 | 3.2.0 ## Android 功能实现模块 >android的依赖库比较少,主要是通过 `ApmInsightInitConfig.Builder` 和 `ApmPlugin` 控制 ``` builder.aid({{app_id}}); //设置分配的AppToken builder.token({{AppToken}}); //是否开启卡顿功能 builder.blockDetect(true); //是否开启严重卡顿功能 builder.seriousBlockDetect(true); //是否开启流畅性和丢帧 builder.fpsMonitor(true); //控制是否打开WebVeiw监控 builder.enableWebViewMonitor(true); //控制是否打开内存监控 builder.memoryMonitor(true); //控制是否打开电量监控 builder.batteryMonitor(true); //控制是否打开CPU监控 builder.cpuMonitor(true); //控制是否打开磁盘监控 builder.diskMonitor(true); //控制是否打开流量监控 builder.trafficMonitor(true); //是否打印日志,注:线上release版本要配置为false builder.debugMode(true); ``` ``` ApmPlugin { // 是否进行插桩 enable true // 是否在Debug包插桩,默认不插桩 enableInDebug true // DEBUG("DEBUG"), INFO("INFO"), WARN("WARN"), ERROR("ERROR"); // DEBUG 级别Log会汇总所有被插桩处理的类供查看,路径 app/build/ByteX/ApmPlugin/ApmPlugin_log.txt logLevel "DEBUG" // 启动分析开关:监控App启动耗时,需要同时开启pageLoadSwitch startSwitch = true // 页面响应开关:监控Activity的生命周期耗时 pageLoadSwitch = true // 网络监控开关:监控okhttp3的网络请求 okHttp3Switch = true //插桩显示HttpUrlConnection的网络请求开关 httpUrlConnectionSwitch = true // 白名单下的包进行插桩,需要填写要插装类所在的包名,支持前缀配置 whiteList = [ "com" ] // 黑名单包下类不进行插桩,可以配置包名和类名,没有可以填空 blackList = [ "com.xxx" ] } ``` ## Design ![img](./images/design_v1.png) ![img](./images/detail_v1.png) ## Support [1]https://www.volcengine.com/docs/6431/68850 ## issues list 1. dynatrace_flutter_plugin-3.257.1 `runApp` hook ---- 11/23,字节 2. ApmNavigatorObserver设置问题 ---- TODO: 适配方式,以及不同页面之间的数据是否冲突 [issues/2.ApmNavigatorObserver.log](./issues/2.ApmNavigatorObserver.log) 3. apm plugin compiler isolate ---- TODO: 4. jenkins pod install error ---- TODO: 外网流量相关,出现时提供ip地址再处理 [issues/4.ios_pod_install_error.log](./issues/4.ios_pod_install_error.log) 5. iOS compiler issuse when use_frameworks [issues/5.ios_use_framework_error.log](./issues/5.ios_use_framework_error.log) 使用Objective-C静态库插件,同时在PodSpec显示指定link的framework可解决此问题 6. iOS transitive static_framework dependencies ---- Add pre_install to Podfile [issues/6.ios_use_transitive_static_framework_error.log](./issues/6.ios_use_transitive_static_framework_error.log) **env** ``` [!] Flutter (Channel unknown, 3.7.8, on macOS 13.3.1 22E261 darwin-x64, locale en-CN) ! Flutter version 3.7.8 on channel unknown at /Users/QXQ4633/versions/stable Currently on an unknown channel. Run `flutter channel` to switch to an official channel. If that doesn't fix the issue, reinstall Flutter by following instructions at https://flutter.dev/docs/get-started/install. ! Unknown upstream repository. Reinstall Flutter by following instructions at https://flutter.dev/docs/get-started/install. [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0) [✓] Xcode - develop for iOS and macOS (Xcode 14.2) [✓] Chrome - develop for the web [✓] Android Studio (version 2021.3) [✓] IntelliJ IDEA Community Edition (version 2022.3.2) [✓] VS Code (version 1.78.0) [✓] Connected device (3 available) [✓] HTTP Host Availability ```