HMS07.应用的运行、DeBug、HiLog、HiTrace

01.使用模拟器运行

 >> 远程模拟器的运行: Remote Emulateor 
  分为 Single Device  和 Super Device , 分别用于单设备调试和多设备分布式调试;
  分布式模拟器当前支持 “Phone+Phone”、“Phone+Tablet”和“Phone+TV”的设备组网方式,同时需要在DevEco中选择Super App
     选择不同的模块运行在不同的设备上

  模拟器每次使用时长为1小时,到期后会自动释放资源;

  远程模拟器的运行,需要实名制认证过的华为开发者联盟账号登陆后才可以使用;

  模拟器的使用: Run>Run '模拟名称' / Shift+F10 / 

 >> 使用 Simulator 运行应用

  DevEco Studio提供的Simulator可以运行和调试Lite Wearable和Smart Vision设备的HarmonyOS应用。
  在Simulator上运行应用兼容签名与不签名两种类型的HAP。

02.使用远程真机调试
  DevEco Studio提供了Remote Device远程真机设备资源供开发者使用,减少开发成本。
  目前,远程真机支持Phone和Wearable设备,开发者使用远程真机调试和运行应用时,同本地物理真机设备一样,需要对应用进行签名才能运行。
  相比远程模拟器,远程真机是部署在云端的真机设备资源,远程真机的界面渲染和操作体验更加流畅,
  同时也可以更好的验证应用在真机设备上的运行效果,比如性能、手机网络环境等。

  

  远程真机调试使用前提条件:  

  • 已注册成为华为开发者,并完成华为开发者实名认证
  • 已对应用进行签名
    需要注意的是,远程真机每次释放后重新申请,服务端分配的设备都不一样。因此,每次重新申请远程真机后,都需要对应用重新进行签名

03.本地真机调试   

  a. 使用USB线连接方式 (打开USB调试,USB连接方式选择传输文件)

  b.使用 IP Connection连接方式  

  • 已将Phone/Tablet和PC连接到同一WLAN网络。
  • 已获取Phone/Tablet端的IP地址。
  • Phone/Tablet上的5555端口为打开状态,默认是关闭状态,可以通过使用USB连接方式连接上设备后,执行如下命令打开。
    hdc tmode port 5555
    (hdc文件在:SDK安装位置HarmonyOS oolchains)    

    在手机机,打开连接的网络,查看IP地址  (我的手机wifi地址为: 192.168.1.101)
  • 此时,就连接上了手机,可进行真机调试
  • 在Phone/Tablet中运行应用,需要提前根据构建带签名信息的HAP包章节,打包带签名信息的HAP。

04. 在 Car中运行:   

  >> 在Car中运行应用,需要提前根据构建带签名信息的HAP包章节,打包带签名信息的HAP。
  >> USB方式连接Car和PC

05. 在TV(智慧屏)中安装和运行
  >> IP Connection 的连接方式; (PC与TV在同一个网络下)
    商用发布的智慧屏产品暂不支持HarmonyOS调试功能。

  >> 前提条件   

  • 已将TV和PC连接到同一网络或设置为同一WLAN网络。
  • 已获取TV端的IP地址。
  • TV上的5555端口为打开状态。
  • 在TV中运行应用,需要提前根据构建带签名信息的HAP包章节,打包带签名信息的HAP。

06. 在Wearable中运行应用

  >> USB方式或IP Connection 的连接方式; 

  >> 前提条件

  • 在Wearable中,打开“开发者模式”,可在设置 >关于中,连续点击“版本号”,直到提示“您已处于开发者模式!”即可。然后在设置 >开发人员选项中,打开“HDC调试”开关。
  • 在Wearable中运行应用,需要提前根据构建带签名信息的HAP包章节,打包带签名信息的HAP。

07. 在Lite Wearable 中运行应用

  >> Lite Wearable的HarmonyOS应用安装,依赖华为手机上的运动健康和应用调测助手APP辅助进行。
  >> 前提条件: 

  • 已将运动健康APP升级至最新版本。
  • 从华为应用市场安装应用调测助手APP。
  • 在Lite Wearable中运行应用,需要提前根据构建带签名信息的HAP包章节,打包带签名信息的HAP。

  详情参考:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/run_fitnesswatch-0000001054134240

08.HarmonyOS的调试

  HarmonyOS应用调试支持使用真机设备调试。使用真机设备进行调试前,需要对HAP进行签名后进行调试。详细的调试流程如下图所示。              
  

  >>> 关于应用签名的配置
    调试应用签名的方式包括如下两种:

    方式一:通过从AppGallery Connect中申请调试证书和Profile文件后,再进行签名。

    方式二:通过DevEco Studio自动化签名的方式对应用进行签名。该方式相比方式一,在调试阶段更加简单和高效,本文重点介绍DevEco Studio自动化签名方案。   

  >>> 通过配置文件存储签名信息

    由于签名配置是开发者的私有信息,DevEco Studio会对签名配置中的密码进行安全保护,但是这个保护会对提交build.gradle到代码仓中带来不便。
    因此,开发者可以将签名配置信息放在一个独立的文件中,从而可以方便的将build.gradle提交到代码仓,而存放签名配置信息的文件不用提交。

    >> 默认情况下,签名数据存放于 工程目录下的 build.gradle 中,

      

     >> 转配置文件处理方法

     a. 工程根目录下创建 signing-config.properties 

     b.  将 build.gradle中关于签名的数据拷贝到新建的 signing-config.properties 文件中 (全改成 Key=Value  的模式)
       

      c.  对工程目录下的 build.gradle进行参数修改,将来源改为文件

      

    >>  调试类型

      

      调试类型的修改:Run > Edit Configurations > Debugger

      

       >> 检查 config.json 文件属性

      

09. HAP包的安装方式

  在调试阶段,Hap包在设备上的安装方式有2种,可以根据实际需要进行设置

  • 安装方式一:先卸载应用后,再重新安装,该方式会清除设备上的所有应用缓存数据(默认安装方式)。
  • 安装方式二:采用覆盖安装方式,不卸载应用,该方式会保留应用的缓存数据。

   Run > Edit Configurations 
   

10. 启动调试

  

   调试功能

  

   对于原子化服务,由于原子化服务在设备中没有桌面图标,可以通过如下方式在设备中运行/调试原子化服务。

  • 在服务中心露出的原子化服务:
    • 通过DevEco Studio的运行/调试按钮,将原子化服务推送到真机设备上安装,安装完成后便可以启动原子化服务;同时在服务中心的最近使用中可以看到该原子化服务的卡片。
    • 通过hdc命令行工具,将原子化服务推送到真机设备上安装,安装完成后便可以启动原子化服务;同时在服务中心的最近使用中可以看到该原子化服务的卡片。
  • 在服务中心不露出的原子化服务:
    • 通过DevEco Studio的运行/调试按钮,将原子化服务推送到真机设备上安装,安装完成后便可以启动原子化服务。
    • 通过hdc命令行工具,将原子化服务推送到真机设备上安装,安装完成后便可以启动原子化服务。
    • 设备控制类的原子化服务,可通过碰一碰、扫一扫等方式运行。

11.可视化的变量监测

   

 12.JS和Java跨语言调试

  应用场景概述 (一般是JS开发UI,Java开发逻辑)
  针对“JS FA调用Java PA”和“JS FA拉起Java FA”这两种场景,DevEco Studio提供了JS/Java跨语言的调试功能,开发者可以直接从JS代码Step Into进入到Java代码调试中。
  JS/Java跨语言调试功能包括JS和Java断点的管理、调试信息的展示、单步调试等能力,方便开发者快速发现并解决JS FA调用Java PA相关代码的问题。

  >>> 断点位置的调置 (JS FA是调用者,Java PA是被调用者)

    JS FA调用Java PA的代码行或者在Java PA相关接口处设置断点,然后点击Step Into才能在Java或JS实现处中断
    ** JS FA --> Java PA
      

     ** JS FA --> Java FA

      

  >>> 配置方式

    ** Debug模式:
      

    ** 断点的设置
      a. JS FA 调用 Java PA的代码行设置断点,调试时,F7进入,进行Java代码的调试;
        

      b. Java PA中设置断点,调试时,F9进行Java代码的调试
        

 13.跨设备分布式应用调试

  DevEco Studio支持一个工程(单模块或多模块)连接多个设备,在设备之间能彼此通信的条件下(如分布式流转场景),支持对跨设备、跨模块、跨进程的HarmonyOS应用进行调试。
  分布式应用调试支持Java应用调用Java应用、JS应用调用Java应用,以及使用HarmonyOS IDL实现的跨设备场景,
  开发者在如下表中的方法处设置断点,当中断到该断点处,执行Step Into即可进入到被调用方法的实现处。

   

   下面以一个设备A(FA)调用设备B(PA)的分布式调用场景来介绍分布式应用调试流程,如下图所示:

   

  >>>前提条件
    调测的多个设备成功组网,包括连接到同一个WLAN网络和登录同一个华为帐号

 14. HiLog日志打印

  HarmonyOS提供了HiLog日志系统,让应用可以按照指定类型、指定级别、指定格式字符串输出日志内容,帮助开发者了解应用的运行状态,更好地调试程序。

  输出日志的接口由HiLog类提供。在输出日志前,需要先调用HiLog的辅助类HiLogLabel定义日志标签

  >>> 日志标签的定义 : HiLogLabel(int type, int domain, String tag)      

  • 参数type:用于指定输出日志的类型。HiLog中当前只提供了一种日志类型,即应用日志类型LOG_APP
  • 参数domain:用于指定输出日志所对应的业务领域,取值范围为0x0~0xFFFFF,开发者可以根据需要进行自定义。
  • 参数tag:用于指定日志标识,可以为任意字符串,建议标识调用所在的类或者业务行为。

  >>> 日志输出

    

   >>> 日志Demo  

    在 Slice 目录下,配置相应的 Java代码

      

       

15. HiTrace 日志跟踪定位分析

  在HarmonyOS跨设备分布式应用的问题定位过程中,由于跨设备之间的调用关系复杂,导致问题定位困难。
  DevEco Studio提供了HiTrace日志跟踪的能力,可以分析和梳理跨设备分布式应用之间的调用关系,通过分析调用链,方便开发者定位调用异常、性能瓶颈等问题。  

   >> 前提条件
    调测的多个设备成功组网,包括连接到同一个WLAN网络和登录同一个华为帐号。

  >> HiTrace使用

    a. 在要跟踪的调用链前后使用 HiTrace类的相应接口

    HiTraceId traceId = HiTrace.begin("MyServiceName", HiTrace.HITRACE_FLAG_INCLUDE_ASYNC | HiTrace.HITRACE_FLAG_TP_INFO);
    ......
    HiTrace.end(traceId);

    b. 运行应用

    c.IDE底部,Profiler打开 HiTrace 工具, 并点击 Record按钮,开始收集 HiTrace 日志信息; 

    d.在设备上操作应用,

    e.点击Stop,停止 HiTrace日志信息的收集; 

     停止以后,会展示相应的时序图,可依据实际情况进行分析      

     

  

 

  

原文地址:https://www.cnblogs.com/jieling/p/15413532.html