前言:
各位同学大家好,最近在写鸿蒙的手游SDK项目。 我们肯定遇到这种需求 就是需要把你代码封装成本地库
给别人接入,这时候我们肯定不能直接给源码我们需要一个本地库 har 类似安卓的aar一样,我们今天要讲的时候怎么生成har 以及har和jar包之间转换过程。
具体步骤:
-
首先创建我们的library 工程
new 一个module
![](https://img.haomeiwen.com/i6865547/5c92d1c2c8a9179a.png)
选择 HarmonyOs Library
![](https://img.haomeiwen.com/i6865547/00e305f5d0aaa714.png)
然后我们选择phone端就行了 这边只开发手机的版本
![](https://img.haomeiwen.com/i6865547/84d1ae73f238c0b2.png)
如图创建成功的
![](https://img.haomeiwen.com/i6865547/2cfc421332c1d957.png)
然后我们把mylibrary 依赖到我们主工程上面去
在build.gradle里面添加
implementation project(':mylibrary')
![](https://img.haomeiwen.com/i6865547/99c1bb85410bfb51.png)
我么可以测试下项目是否能正常运行。
可以运行我们打包har
![](https://img.haomeiwen.com/i6865547/2ce75d786aa5f488.png)
我们拿到 har
![](https://img.haomeiwen.com/i6865547/908d9e94426731b0.png)
然后解压
![](https://img.haomeiwen.com/i6865547/45a24ac537fc2e11.png)
我们用反编译工具查看源代码
![](https://img.haomeiwen.com/i6865547/9ae66190d6ea3a86.png)
解压classes.jar。命令:$ unzip classes.jar -d tempFolderClasses
把第二步生成的.class文件放到tempFolderClasses文件夹下对应的地方替换掉以前的.class文件(大功即将告成)
-
打包源码为 classes.jar
$ jar cvf newClasses.jar -C tempFolderClasses/ .(注意斜杠后面加空格与.)
再把这个newClasses.jar放回tempFolder并删除之前的,修改文件名为classes.jar
将资源文件和新的jar 再次打包成har
$ jar cvf newAAR.har -C tempFolder/ .
最后生成新的aar 就是我们需要的aar 。 这样我们就可以在没有源代码的情况下去修改aar内部东西 然后重新编译生成 aar 来带到我们偷天换日 瞒天过海的目的 哈哈哈
最后总结:
对于鸿蒙 工程怎么生成har 以及 怎么转成jar 和 还有jar和分散资源怎么还原成har 我就讲完了 ,希望能帮助到各位的学习和工作 最后希望我的文章能帮助到各位解决问题 ,以后我还会贡献更多有用的代码分享给大家。各位同学如果觉得文章还不错 ,麻烦给关注和star,小弟在这里谢过啦!
网友评论