1. 针对冷启动数据的采集,需设置待采集应用的包名。此处以 com.ohos.example 为例。
    hdc shell param set persist.ark.arkbundlename com.ohos.example
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 重启设备。
    hdc shell reboot
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 启动应用,会在拉起应用前自动开始采集数据。

  2. 操作应用,复现待分析场景。

  3. 针对启动后任意阶段数据的采集,需使用如下命令,开始采集,其中 pid 为应用进程号。

    hdc shell kill -39 pid
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 操作应用,复现待分析场景。

  2. 停止采集数据,其中 pid 为应用进程号。

    hdc shell kill -39 pid
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 拉取cpuprofile文件。此处以com.ohos.example为例,文件实际位置及文件名以实际应用为准。

    说明:

    步骤6~8可重复执行多次,会分别采集多个阶段,生成多个.cpuprofile文件。

    每次采集的次数后缀会加1,初始次数为1。冷启动数据无次数后缀。

    # 主线程:
    # 通常非系统应用抓取后cpuprofile通常存储在/data/app/el2/100/base//files/
    hdc file recv /data/app/el2/100/base/com.ohos.example/files/com.ohos.example_次数.cpuprofile ./
    # 系统应用存储在/data/app/el2/0/base//files/
    hdc file recv /data/app/el2/0/base/com.ohos.example/files/com.ohos.example_次数.cpuprofile ./
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">

    # Worker线程:
    # 通常非系统应用cpuprofile通常存储在/data/app/el2/100/base//files/
    hdc file recv /data/app/el2/100/base/com.ohos.example/files/com.ohos.example_线程id_次数.cpuprofile ./
    # 系统应用存储在/data/app/el2/0/base//files/
    hdc file recv /data/app/el2/0/base/com.ohos.example/files/com.ohos.example_线程id_次数.cpuprofile ./
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. com.ohos.example.cpuprofile 文件导入Chrome浏览器 > JavaScript Profiler进行分析,具体可见 Chrome浏览器JavaScript Profiler工具视图。

图15 加载cpuprofile文件

应用代码插桩采集

  1. 在应用代码中按照如下方式插桩,并打包、安装应用。

    说明:

    插桩位置建议选择为不会重复执行的关键位置,例如onClick中的首行和末行;若重复执行start、stop,仅有第一次的start、stop会成功执行。

    import hidebug from '@ohos.hidebug';
    // 参数为输出文件的文件名,无需加后缀。该参数为必要参数。
    hidebug.startJsCpuProfiling("filename");
    // code block
    // ...
    // code block
    hidebug.stopJsCpuProfiling("filename");
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. 启动并操作应用,复现待分析场景,确保插桩代码行能执行到。

  2. 拉取json文件并将后缀更改为cpuprofile。此处以com.ohos.example为例,文件实际位置及文件名以实际应用为准。

    # 通常非系统应用抓取后cpuprofile通常存储在/data/app/el2/100/base//files/
    hdc file recv /data/app/el2/100/base/com.ohos.example/files/filename.json ./filename.cpuprofile

    # 系统应用存储在/data/app/el2/0/base//files/
    hdc file recv /data/app/el2/0/base/com.ohos.example/files/filename.json ./filename.cpuprofile
 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}">
  1. filename.cpuprofile 文件导入Chrome浏览器 > JavaScript Profiler进行分析,具体可见 Chrome浏览器javascript-profiler工具视图

图16 加载cpuprofile文件

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/weixin_61845324/article/details/138133267","extend1":"pc","ab":"new"}">> id="blogExtensionBox" style="width:400px;margin:auto;margin-top:12px" class="blog-extension-box"> class="blog_extension blog_extension_type2" id="blog_extension"> class="extension_official" data-report-click="{"spm":"1001.2101.3001.6471"}" data-report-view="{"spm":"1001.2101.3001.6471"}"> class="blog_extension_card_left"> class="blog_extension_card_cont"> 鸿蒙开发学习资料领取!!! class="blog_extension_card_cont_r"> 微信名片
注:本文转载自blog.csdn.net的沧海一笑-dj的文章"https://blog.csdn.net/dengjin20104042056/article/details/95203555"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接

评论记录:

未查询到任何数据!