说到鸿蒙开发,谁能忍得了漫长的编译等待呢?咱们这次就从配置下手,手把手教你怎么把这个耗时的问题搞定。先看个对比数据,不做任何优化的话,全量编译可能得花掉24分钟。但只要掌握了这几招,同样是全量编译,耗时就能大幅缩短到14分钟。至于增量编译的效率,更是能翻倍提升。所以这次分享的几个小技巧虽然简单,但非常实用。 这就好比是在游戏里加个加速器,你只要按照步骤来就能明显感觉快了不少。首先是DevEco Studio默认给你开了不少贴心功能,比如增量构建和并行构建这些。如果你想确认这些功能有没有启用,可以用Build Analyzer工具去看看,最好把里面的parallel、incremental还有daemon都改成true,这样速度才会更快。 下面咱们具体说说针对不同场景的优化方案。就拿一个300万行ArkTS代码的大工程来说吧,模块多得吓人,光是库就有500多个。咱们把编译过程拆开来看,主要就是卡在三个步骤上:装依赖、编译代码还有打包压缩。针对这三个地方咱们得分别想办法。 先说安装依赖这事儿。如果工程里有好多重复的库在折腾,建议你在项目根目录的.ohpmrc文件里开启统一管理锁文件的功能(enable_unified_lockfile=true),这样能省下不少安装时间。另外那个解压和遍历的过程也挺费时间的,在.ohpmrc里再把enable_boost_extraction_speed设为true,这一步基本就能从8分钟缩短到1分钟以内了。 接下来是编译代码的部分。咱们本地调试的时候其实并不太需要那个中间的JS产物。在6.0.1版本也就是API21这个环境下,你可以在ohos.arkCompile.noEmitJs里面把这个值设成true,这样ArkTS编译的时候就不会再生成JS了。虽然全量编译能省下大概2分钟的时间,但要注意Release模式或者包含HAR的时候这种优化是不生效的。 最后就是打包压缩的问题了。项目里如果库很多而且都开了压缩的话,肯定会很卡。既然是本地调试又不在乎包的大小大小点儿就不用折腾了。直接在module.json5文件里把compressNativeLibs设成false跳过压缩过程就行。这样打包时间从1分钟就能变成3秒钟。 这三项优化全部搞定后你会发现效果真的挺明显的:全量编译从24分钟缩短到了14分钟;增量编译也从4分钟减到了2.5分钟。 除了配置上的调整,咱们在使用的时候也得注意构建方式的选择。假如你只需要改某个模块的代码去调试时,千万别傻乎乎地去点“Make All Modules”,这是在浪费时间。最好的办法是直接点“Make Module‘***’”,只编译你关心的那部分。 当工程里有好几个Hap模块的时候也是一样的道理。比如你只改了一个feature或者entry里的东西,直接用“Build Hap(s)”是不科学的,这会让所有的Hap都重新打包一遍。这时候用“Make Module‘***’”就非常明智了。 当然如果你是那种需要往设备上推送包去看效果的开发者也有快速方法:直接点“播放”按钮就行,增量调试可以帮你省下大把的推送时间。还有就是热重载功能特别好用改完代码一保存不用重启就能在真机上看到最新效果。 最后再多说一句关于内存和性能的平衡问题:DevEco Studio提供了两种模式一个是内存优先另一个是性能优先。想要更快就选性能优先模式开启缓存但是常驻内存会多一点具体的话就是在hvigor-config.json5里面设置hvigor.enableMemoryCache为true再把optimizationStrategy改成“performance”就行了根据你的实际环境选最合适的就好。 想了解更多细节可以去HarmonyOS官网搜索“提升构建效率”来看看有什么新的配置或者技巧等着你去发掘呢。