技术栈: 我们的首款鸿蒙应用上线了!

B站影视 日本电影 2025-06-11 12:28 2

摘要:之前有个棋友说,象棋助手如果改造成一个日记应用其实也不错。说者无意,听者有心,下来后,我就开始琢磨了,或许可以试试。我本身就有一个没事就写点东西的习惯,目前我主要使用小米便签来写,遗憾的是,小米便签并不支持Markdown,而且只支持小米手机。所以,我们干脆就

之前有个棋友说,象棋助手如果改造成一个日记应用其实也不错。说者无意,听者有心,下来后,我就开始琢磨了,或许可以试试。我本身就有一个没事就写点东西的习惯,目前我主要使用小米便签来写,遗憾的是,小米便签并不支持Markdown,而且只支持小米手机。所以,我们干脆就做一个既支持Markdown又支持富文本的日记应用吧。就这样,左右日记诞生了!

那么,左右日记相对于其它日记软件到底有什么不同呢?

这是我们一开始就定下的目标,必须支持Markdown。因为我特别喜欢Markdown,它的克制而又灵活的表现力能够很好地满足我的要求。我基本上不管是写作还是写日记,包括写技术文档都在用Markdown。所以,支持Markdown是刚需。

但为了防止一些不会Markdown的同学不好上手,我们同时支持使用富文本编辑器进行写作,并且默认就是富文本编辑器。

你可以在设置页面,找到“默认编辑器”,选择你喜欢的编辑器作为默认编辑器。

注意:这个修改仅对新日记有效,旧日记将始终使用原来的文本编辑器进行创作。

我们期望在日记功能部分,不做任何限制,我知道这可能会导致我们很难赚到钱,但或许交个朋友更加重要!

所以,你在使用左右日记的时候,不会看到我们有任何的限制,包括不限制你创作的日记数量,不限制你添加的图片数量,不限制你删除的日记在回收站保留的时长等等,在日记创作部分,我们没有任何限制!

我们发现,一些写日记的同学,特别关注自己的隐私,当然也包括我自己。我们都不希望我的日记被上传到各种各样的服务器平台。因此,我们做了一个决定,你在左右日记里面写的所有日记包括图片都只存在于你的设备。

你可以放心地创作,我们不会上传你的任何一篇日记,不信你可以试试,即便断网,你也仍然可以正常使用。

由于我们的日记是离线存储的,那必然带来一个问题,可能会导致你的日记数据丢失。因此,定时的备份或者同步是必不可少的。

我们提供了两种同步方式,WebDav和阿里云盘,两者配置都非常简单。相对来说,阿里云盘更加简单,只需要授权登录一次即可。

目前,左右日记的终身会员定价是29元,不到一杯星巴克咖啡的价钱,如果你喜欢我们的产品,并且需要会员服务,欢迎订阅我们的产品,您的订阅始终是我们坚定不移,保持前进的动力。

当然,如果你不需要会员服务,也希望你给我们一个好评,鼓励我们继续更新,你的支持始终是我们坚定不移前行的动力!

左右日记立足成为一个纯粹的日记应用,不会增加一些花里胡哨的功能,以免影响日记体验。

曲折的上线之路

如果你对技术不感兴趣,以下这段内容就可以不用看了。目前左右日记已经上线App Store、小米、华为、OPPO、应用宝等平台,你可以直接在这些应用市场搜索“左右日记”下载安装体验。

接下来,我想跟大家分享一下关于鸿蒙适配的一些感想以及体验。

由于鸿蒙相对于Android或者iOS来说,目前仍然是一个非常小众的平台。因此,我们不可能放弃iOS、Android而直接用原生的方式去适配鸿蒙。所以,我们选择了跨平台框架Flutter,因为,华为自己也维护了一个鸿蒙的Flutter版本的分支,使用起来相对来说比较方便。

这个适配过程不算太难,我们主要是做了以下几个方面的工作:

由于鸿蒙适配的Flutter版本是3.7和3.22版本,两者相对于Flutter官方的最新版本均非常落后。因此,当我们切换到鸿蒙平台的时候,很多最新的库它都用不了。

我们不得不降低几乎所有第三方库的版本,以满足鸿蒙Flutter版本要求。同时,一些库由于鸿蒙官方并没有适配,我们不得不自己开发以适配鸿蒙Flutter。这些是花费了我们最多时间的事情。

还有一个有意思的事情,我们的Android和iOS版本使用了Drift作为SQLite数据库框架,而鸿蒙版本并未适配,因此我们不得不切换到鸿蒙适配的Sqflite版本。

所有的这些,前前后后大概花费了半个月左右适配完成,整体差于预期,但基本满意,好在至少可以完全适配。

基于前人的经验,鸿蒙的整体权限设计非常类似于iOS,但比iOS更加严格。甚至包括粘贴文本内容都被标记为敏感权限,需要向华为提交审核,审核通过的应用才能使用粘贴权限。这让我们很头疼,审核过程好几天,还一直没有反应,我们不得不提工单,催着华为的工作人员去审核。

鸿蒙系统对于文件的访问也有着严格的限制,访问文件非常类似于iOS,你将不能自由地选择存储卡里面的文件,这一点喜欢鸿蒙的机友估计得适应一段时间,尽管这的确有助于保护我们的隐私,但我还是比较喜欢安卓的设计,可玩性更高。

BTW:这也是我为什么一直坚持用安卓手机而不换苹果的原因。

以上还只是适配问题,实际上,上线过程更加的曲折!真的是头都要炸了!!!

目前,鸿蒙对于开发者来说,存在着一个致命的问题,你打包的生产环境版本无法安装到手机测试。有人可能会说,生产版本和调试版本不是一样的吗?

大多数情况,的确是这样!

但这次,我们就遇到了一个诡异的问题,在我们的调试手机上一直运行正常,而一旦提交审核,就出现了闪退问题。

更让人头疼的是,不同于Android,鸿蒙应用的生产版本,没办法直接安装,也没有提供类似苹果的TestFlight一样的解决方案。

我们只能根据审核人员给我们发来的日志堆栈来猜测问题,而奇怪的是,这些错误日志并未直接指向我们的业务代码,而是报了一个C++层面的错误。

mount /dev time 1802 usmount /sys time 548 usmount /system/etc time 718 usmount /system/resource time 859 usmount /vendor/etc/vulkan time 503 userrno is: 13, private mount to /mnt/sandbox/100/com.youngfeng.app.ohdiary/vendor/etc/vulkan '524288' failedmount /vendor/etc/hiai time 706 usmount /data/data/hiai time 879 usmount /mnt/sandbox/100/com.youngfeng.app.ohdiary/data/storage/el2 time 588 usmount /data/app/el2/100/log/com.youngfeng.app.ohdiary time 509 usmount /mnt/share/100/com.youngfeng.app.ohdiary time 635 userrno is: 13, private mount to /mnt/sandbox/100/com.youngfeng.app.ohdiary/data/service/el0/public/for-all-app '524288' failedmount /mnt/hmdfs/100/cloud/data/com.youngfeng.app.ohdiary time 745 userrno is: 13, private mount to /mnt/sandbox/100/com.youngfeng.app.ohdiary/chip_prod/lib64/passthrough '524288' failedmount /data/misc time 504 us

我第一时间想到的是,可能是鸿蒙Flutter框架适配的一个问题,因为这是华为技术团队自己在维护的一个分支,可能存在一些BUG。所以,我就给审核团队做了说明,并寻求解决方案。由于他们的反馈很慢,我又通过工单系统给他们提了一个工单。

还是一样,反馈非常的缓慢,经历了几天的等候,打来了一个电话。最后,给出了一个建议,让我通过邀请测试的方式去进行测试。

可是这里又有一个鬼打墙的问题,华为的邀请测试也是要审核的,之前我就提过邀请测试的申请,并且测试人员就是我自己,被华为审核人员以软件闪退的理由打了回来。为了通过测试,我备注了我与华为工程师的通话记录,第二天终于审核通过了。

果然,通过邀请测试的方式,安装在我的手机上仍然闪退。

换而言之,只要是生产版本,在任何的手机上都闪退,而调试版本就没有问题。我始终搞不明白,为什么会这样,一直到我偶然间看到鸿蒙Flutter里面的一个FAQ问题,提示说,可能是使用了调试版本的flutter.har。我赶紧使用DevEco-Studio打开看了一下,果然是DEBUG版本,而这一切完全没有任何提示。

我理所应当地认为使用DevEco-Studio导出的生产版本flutter.har一定是正式版本。实际并非如此,由于Flutter与鸿蒙的关联性并未达到Android和iOS的程度,在一些细节处理方面,你还不得不自己处理。

为此,我重新删除了所有har包,使用flutter clean && flutter build hap --release重新打包,再导出app包。最后发现,导出的包终于只有17M大小了,而之前导出的包有50多M,难怪了!我老觉得包体积有点奇怪,一直不知道原因。

最后,我再次提交了新包,第二天很快就审核通过了,一切正常了。

这个过程中间其实还有很多波折,断断续续经历了半个多月,差点就放弃了!最大的一个原因就是,华为的审核与技术服务团队响应非常缓慢,每次都不得不等待好几天才获得一个并不是有效答案的解决方案。

这里真的想爆赞一下阿里云的技术服务团队,几乎是7x24小时在线,而且响应速度很快,几乎可以在10分钟以内得到答复。不过,对此呢,我也表示理解,毕竟华为目前人力可能非常紧张,整体架构也还没有稳定,我相信,未来一定会越来越好。

以上就是我们艰难地上线之路,如果你喜欢左右日记这个产品,一定别忘了给我们一个好评鼓励。如果你对左右日记有任何建议,请在评论区或者QQ交流群告诉我们,我们会慢慢提供支持。

来源:心平氣和

相关推荐