Loading...
首页专栏正文

[HarmonyOS之旅] Chapter7 - smartMM

 
2人已赏
codinglab 发布于 2021-01-14 18:12:57 浏览 2684 点赞 100 收藏 9
hi,大家好。这里依然是鸽王小A,好久不见啦。催更的小伙伴不要再给我寄刀片了😅。这里再插一句,今天是确实是Chapter7,没有Chaper6,因为之前发重复了。

引:

经过一段时间的探索,HarmonyOS的旅途已经渐入佳境啦。在正式撸代码前,我们还有一个课题,那就是如何创造自己的application。

前面我们一直在使用【python build.py wifiiot】命令进行编译,这里的wifiiot实际就是一个被定义好的产品和application。那么为了在学习过程中不污染原始代码,并且同时可以对照参考sample,也方便我们自己对我们心中想要做的东西有个定制化,小A觉得我有必要搭建我自己的application。

目前现有的application有两个:demo和wifiiot,小A想创建的新application姑且就叫做smartMM<聪明的萌萌>吧。先给大家看下主要有哪些要改的,如下图蓝框。

image-20210107162130193

要改的其实并不是很多,那么我们就自顶向下的来看一看吧。

step1:

新增的smartMM其实就是一个我定义的新产品解决方案。所以先新增一个产品解决方案的配置:build/lite/product/smartMM.json。构建时会读取该文件包含所有用户自定义子系统、组件等配置。我们可以直接cp wifiiot.json过来修改。修改如下:

image-20210107162726623

step2:

新增 :applications/sample/smartMM/,这一步我们先直接copy applications/sample/wifi-iot过来就行,无需修改。

step3:

修改:vendor/hisi/hi3861/hi3861/SConstruct

image-20210107164356986

这里原本做了区别限制,现在我们要让smartMM和wifiiot享受同样的待遇。

step4:

修改:vendor/hisi/hi3861/hi3861/hm_build.sh

image-20210107171855123

这里的修改主要是为了适配几个目标路径,让smartMM有个自己的窝,不用和别人打架。

step5:

新增:vendor/hisi/hi3861/hi3861/app/smartMM,copy vendor/hisi/hi3861/hi3861/app/wifiiot_app得来的,并做了一定的修改适配。

image-20210107165149026

经过以上几步,就可以了,下面我们看看最终结果吧。

验证:

python build.py smartMM

image-20210107165354688

编译无问题。

同时生成的固件和路径也达到了我们的预期。

next:我们验证下编译标准的wifiiot,先修改vendor/hisi/hi3861/hi3861/hm_build.sh,反注释为下面两行

image-20210107171507843

最终编译结果:

image-20210107171600663

可以看到,wifiiot和smartMM的编译结果井水不犯河水,各自安好。至此,smartMM的application框架已经基本搭建好了,剩下的就是我们慢慢雕琢了。

总结:

以上就是如何在HarmonyOS源码中新增自己客制化的产品的大致步骤了,如果作为产品话的话,其实还是可以写的更完善的。更多的就留给大家各自发挥吧。see you!

*本文仅代表作者观点,不代表易百纳技术社区立场。系作者授权易百纳技术社区发表,未经许可不得转载。

精彩评论

  • codinglab 评论于 2021-01-07 21:50:12

    更新一下step3的大图:

    0
  • codinglab 评论于 2021-01-07 22:17:18

    更新一下最终编译结果图:

    之所以要更新是因为上面的在修改TARGET前少做了一步

    rm vendor/hisi/hi3861/hi3861/output/*
    
    0
内容存在敏感词
打赏
打赏作者
codinglab
您的支持将鼓励我继续创作!
金额:
¥1 ¥5 ¥10 ¥50 ¥100
支付方式:
微信支付
支付宝支付
微信支付
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区