对于大型应用来说,每次修改代码后需要重新构建、推包、安装,整个流程耗时较长。针对该场景,在DevEco Studio和命令行场景中分别提供增量运行调试功能,支持开发者在真机上调试应用时,修改代码后,会识别出代码差异,构建增量包,增量运行调试时只推送增量包,减少大型应用调试推包时间。
C++代码增量调试支持API 11及以上版本Stage模型的工程;ArkTS代码增量调试仅支持API 12及以上版本Stage模型工程的资源文件修改。
或Debug
启动工程。
推送增量包安装至设备。点击Apply Changes按钮后,DevEco Studio启动构建的增量构建任务,构建出增量包hqf。增量包构建完成后,将推送安装至设备。

当前增量运行Apply Changes功能,不支持新建和删除代码文件,不支持修改装饰器相关的代码,不支持在代码中使用import新增引用文件。
从DevEco Studio 5.1.0 Release版本开始支持增量调试rawfile资源。
或Debug
启动工程。
当前对rawfile/resfile资源的增量调试,仅支持代码中直接调用的资源文件。
推送增量包安装至设备。点击Apply Changes按钮后,DevEco Studio启动构建的增量构建任务,构建出增量包hqf。增量包构建完成后,将推送安装至设备。
如果已执行步骤1,则步骤2和3无需再执行。
hvigorw --mode module -p module=entry@default,library@default -p product=default assembleHap assembleHsp --info --no-daemon
关于命令行的使用指导请参考hvigorw。
$ hdc shell mkdir data/local/tmp/99c24fdc44694c05be12491d0a48e139
$ hdc file send library-default-signed.hsp "data/local/tmp/99c24fdc44694c05be12491d0a48e139"
$ hdc file send entry-default-signed.hap "data/local/tmp/99c24fdc44694c05be12491d0a48e139"
$ hdc shell bm install -p "data/local/tmp/99c24fdc44694c05be12491d0a48e139"
$ hdc shell rm -rf data/local/tmp/99c24fdc44694c05be12491d0a48e139
$ hdc shell aa start -a {abilityName} -b {bundleName} {
"resources": {
"resFile": [
{
"filePath": "D:\\MyApplication\\entry\\src\\main\\resources\\resfile\\test.txt",
"resourcePath": "D:\\MyApplication\\entry\\src\\main\\resources"
}
],
"rawFile": [
{
"filePath": "D:\\MyApplication\\entry\\src\\main\\resources\\rawfile\\test.txt",
"resourcePath": "D:\\MyApplication\\entry\\src\\main\\resources"
}
]
}
} hvigorw --mode module -p module=entry@default,library@default -p product=default assembleDevHqf --info --no-daemon
$ hdc shell mkdir data/local/tmp/3b7d97cdf4de41c4aecc465ff5069708 $ hdc file send library-default-signed.hqf "data/local/tmp/3b7d97cdf4de41c4aecc465ff5069708" $ hdc file send entry-default-signed.hqf "data/local/tmp/3b7d97cdf4de41c4aecc465ff5069708" $ hdc shell bm quickfix -a -f "data/local/tmp/3b7d97cdf4de41c4aecc465ff5069708" -d -o

hdc bm install {hap_path} // 安装包在电脑上,使用该命令,hap_path是安装包路径
hdc shell bm install -p {hap_path} // 安装包在设备上,使用该命令 
{
"resources": {
"resFile": [
{
"filePath": "D:\\MyApplication\\entry\\src\\main\\resources\\resfile\\test.txt",
"resourcePath": "D:\\MyApplication\\entry\\src\\main\\resources"
}
],
"rawFile": [
{
"filePath": "D:\\MyApplication\\entry\\src\\main\\resources\\rawfile\\test.txt",
"resourcePath": "D:\\MyApplication\\entry\\src\\main\\resources"
}
]
}
} 可以从工程的build-profile.json5文件中获取到对应的签名文件。
{
"app" : {
"bundleName" : "com.ohos.quickfix",
"versionCode" : 1000000, // 应用版本号
"versionName" : "1.0.0",
"patchVersionCode" : 1000000, // 补丁版本号,在每次进行增量调试前,将版本号+1,确保此次增量调试补丁包版本号大于上次增量调试补丁包版本号
"patchVersionName" : "1000000" // 与补丁版本号保持一致
},
"module" : {
"name" : "entry",
"type" : "patch",
"deviceTypes" : [
"phone",
"tablet"
],
"originalModuleHash" : "" // 待修复HAP包的sha256值,置空即可
}
} java -jar app_packing_tool.jar --mode hqf --json-path D:\MyApplication\entry\patch.json --lib-path D:\MyApplication\entry\change_test --resources-path D:\MyApplication\entry\src\main\resources --out-path entry-default-unsigned.hqf --force true
关于该命令中需要修改的参数说明如下,其余参数不需要修改:
java -jar hap-sign-tool.jar sign-app -keyAlias "OpenHarmony Application Release" -signAlg "SHA256withECDSA" -mode "localSign" -appCertFile "OpenHarmonyApplication.cer" -profileFile "ohos_provision_release.p7b" -inFile "entry-default-unsigned.hqf" -keystoreFile "OpenHarmony.p12" -outFile "entry-default-signed.hqf" -keyPwd "123456Abc" -keystorePwd "123456Abc"
关于该命令中需要修改的参数说明如下,其余参数不需要修改:
$ hdc shell mkdir data/local/tmp/3b7d97cdf4de41c4aecc465ff5069708 $ hdc file send entry-default-signed.hqf "data/local/tmp/3b7d97cdf4de41c4aecc465ff5069708" $ hdc shell bm quickfix -a -f "data/local/tmp/3b7d97cdf4de41c4aecc465ff5069708" -d -o