上一篇说到从android研发转做鸿蒙应用还是比较好上手的,但是在开发的过程中还是遇到了很多坑,有很多地方想要吐槽(有时候真的是想摔键盘那种。。。TAT)。
吐槽一:鸿蒙开发过程中的真机调试签名问题
开发鸿蒙应用时,如果要使用鸿蒙手机真机调试,相比于android应用而言,有很多的限制,很麻烦。鸿蒙系统对真机调试做了很多的限制,有点类似于ios对于真机的限制,需要在鸿蒙开发者平台上注册应用,登记调试用的真机的信息,还要上传签名文件。
对于独立开发者而言,只需要在开发者平台上创建应用,在鸿蒙ide里登录自己的账号,在签名设置里使用自动生成签名就行,ide会自动根据你的真机设备产生签名(签名文件和真机UUID是一一对应的,所以不能一个签名给多个手机使用),并上传生成的签名文件和真机设备信息,步骤如下图:
图1:自动生成签名(傻瓜式操作)
而对于团队开发者而言,这样的设计就比较麻烦了。首先还是要在开发者平台上注册应用,但是需要使用公司注册的开发者账号。由于是公司的账号,可以用于发布应用,应用升级等等操作,所以不能将账号给所有开发登录一次,去进行签名操作,上面所说的方法就不能使用了。这种情况下就需要先生成签名文件,在主菜单栏点击Build > Generate Key and CSR,按照步骤执行操作,可以得到密钥库文件(.p12)和证书请求文件(.csr)。在AppGallery Connect登录公司账号,选择“用户与访问”,在左侧导航栏选择“证书管理”,进入证书管理页面,点击“新增证书”,上传刚生成的证书。上传后,点击证书可以下载到证书的.cer文件,在工程的gradle文件中或者主菜单 > File > Project Structure中完成签名配置。这样产生的签名和设备信息无关,代码上传到版本控制器,所有团队成员下载都都可以使用。最后需要在AppGallery Connect,选择“用户与访问”,设备管理中注册设备信息,可以选择下载模板批量上传(这样需要获取设备的UUID,看了官网的文档,需要hdc shell连接手机,输入命令才能拿到,很麻烦),也可以让公司账户登录者连着手机自动生成签名跑一下应用,ide会自动上传设备信息,但是需要注意的是,一个项目只能有1个release签名和2个debug签名,如果签名满了的话,就无法这么操作了。如果是在网页上批量导入的调试设备,还需要在AppGallery Connect中项目的HarmonyOS应用 > HAP Provision Profile管理页面上添加调试Profile。(参考文档:文档中心 )
吐槽二:API功能不全,部分API存在bug
在开发鸿蒙的应用过程中,会遇到好多奇奇怪怪的问题,最后结论都是API功能不全和部分API存在bug导致的。举个栗子,鸿蒙中使用state来实现android里的selector的功能,比如区分正常状态按下状态的背景图等。但在使用state的过程中,就遇到了个奇葩的坑。button使用state无效,最后在论坛上找到了一样的问题,结论是必须把empty的状态描述放在最后一行,因为在harmony里面,empty可以适配任何情况,empty放在第一行,就永远会进入empty的那一行了。
现在的鸿蒙给人的感觉更像一个半成品,但是它对js和java都支持的特性,让它还是值得肯定的,只是鸿蒙生态还需要继续发展。作为国人,对于国产系统应该报以支持和尝试。
?
|