购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.7 在真机上运行HarmonyOS App

到现在为止,相信大家已经基本了解了开发一款HarmonyOS App的流程,但我们一直是在HarmonyOS模拟器上运行App。在实际开发过程中,需要在真机上测试后才能对外发布,而且有很多功能(如蓝牙、NFC、传感器等)在HarmonyOS模拟器上是无法测试的。所以本节会讲解如何在手机上安装并测试HarmonyOS App。

1.7.1 生成签名文件

在真机上运行App与在模拟器上运行App不同。在真机上不管是调试还是发布,都需要对hap文件进行签名。签名一个hap文件需要4类文件,即p12、csr、cer和p7b文件。其中p12和csr文件可以自助生成,cer和p7b文件需要到App Grallery Connect去申请,然后下载。

生成这4类文件,需要7个步骤,下面就具体介绍一下这7个步骤。

1.生成p12文件

执行下面的命令,会在当前目录下生成一个名为demo.p12的文件。

keytool -genkeypair -alias "myalias" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=Huawei CBG,OU=HOS Development IDE Team,CN=ide_demo_pk Debug" -keystore demo.p12 -storetype
pkcs12 -storepass 1234abc

在执行上面的命令之前,需要将如下3个信息修改成自己的内容(其他内容不需要改):

● -alias命令行参数后面的别名,本例是myalias;

● -keystore命令行参数后面的文件名,本例是demo.p12;

● -storepass命令行参数后面的密码,本例是1234abcd。

2.生成csr文件

执行下面的命令,会在当前目录下生成一个名为demo.csr的文件。

keytool -certreq -alias "myalias" -keystore demo.p12 -file demo.csr

其中,-alias命令行参数指定的别名要与生成demo.p12文件时指定的别名相同,demo.csr文件可以改成其他文件名。

注意,在执行上面的命令之前,要先生成demo.p12文件。在生成demo.csr文件的过程中,会要求输入生成demo.p12文件时指定的密码,本例是1234abcd。一定要记住这个密码,因为在后面配置App签名时还要用到。

3.创建项目

通过下面的URL打开页面,并单击“我的项目”按钮:https://developer.huawei.com/consumer/ cn/service/josp/agc/index.html进入创建项目页面,如图1—25所示。可以在该页面创建一个或多个项目,每一个项目可以包含0到多个安装包。

图1—25 创建项目页面

单击左侧的“添加项目”链接,会弹出图1—26所示的页面,输入项目名,单击“确定”按钮就可以创建新项目。

图1—26 创建新项目

4.通过csr文件在线申请cer文件(调试证书文件)

通过下面的URL打开页面,并单击“用户与访问”按钮:

https://developer.huawei.com/consumer/cn/service/josp/agc/index.html

进入该页面后,在左侧导航栏选择“证书管理”选项,进入证书管理页面,单击“新增证书”按钮弹出新增证书窗口,并按要求输入相应的内容,如图1—27所示。

图1—27 创建证书

创建完证书后,会在证书列表中看到新创建的证书,如图1—28所示。单击右侧的“下载”链接,下载对应的cer文件,本例是“我的证书.cer”文件。

图1—28 下载cer文件

5.添加设备

通过下面的URL打开页面,并单击“用户与访问”按钮:

https://developer.huawei.com/consumer/cn/service/josp/agc/index.html

进入该页面后,在左侧导航栏选择“设备管理”,进入设备管理页面。然后单击右侧的“添加设备”按钮,会弹出图1—29所示的窗口。这里需要选择设备类型,输入设备名称和UDID,然后单击“提交”按钮添加设备。只有在这里添加的设备才能使用前面申请的证书安装HarmonyOS App。

图1—29 添加设备

要想获得设备的UDID,需要用USB数据线连接HarmonyOS设备,然后执行下面的命令:

adb shell dumpsys DdmpDeviceMonitorService

成功执行命令后,在输出结果中的Local device info部分找到dev_udid,后面的字符串就是该设备的UDID。

如果有多部设备连接到了计算机上,需要使用-s命令行参数指定设备标识。

6.创建鸿蒙应用

通过下面的URL打开页面,并单击“我的项目”按钮:

https://developer.huawei.com/consumer/cn/service/josp/agc/index.html

进入该页面后,其中会列出在该项目下创建的应用,如图1—30所示,读者可以单击“添加应用”链接创建新的应用。

图1—30 应用列表

添加应用页面如图1—31所示。读者需要在该页面按图1—31所示填写必要的信息(需要按自己App的情况填写相应的内容),其中“支持设备”保持默认值就可以在HarmonyOS手机上运行。

注意,如果App的包变了,需要重新按这一步添加应用,否则App将无法部署在HarmonyOS手机上。

7.获得p7b文件

进入上一步创建的应用的页面,单击右上角的“添加”按钮,添加一个HAP Provision Profile。这一步是一个总绑定,将App的包、证书和设备绑定在一起。也就是说,只有特定包的App,使用特定的证书,才能在特定的设备上部署。进入页面后,可以仿照图1—32所示填写这个页面的内容。

图1—31 添加应用页面

图1—32 添加HAP Provision Profile

成功添加HAP Provision Profile后,会在列表中显示刚才创建的HAP Provision Profile,如图1—33所示。单击右侧“下载”链接,就会下载一个名为“网盘p7bDebug.p7b”的文件。

图1—33 下载p7b文件

到目前为止,所有必要的文件都已经备齐,通过这7个步骤获得了图1—34所示的4个文件,其中demo.csr文件只是一个中间文件,在签名时并不需要它。

图1—34 用于签名的文件

注意,有的读者可能会感到生成证书比较麻烦,需要这么多步骤。其实只有第一次签名要这么多步骤,再创建新的应用时,只需要做第6步和第7步就可以了。也就是说,如果设备不变,在签名时只需要更换p7b文件就可以了。

1.7.2 签名HarmonyOS App

将HarmonyOS App在手机上部署,需要对hap文件签名。首先通过Create HarmonyOS Project窗口创建一个Phone工程,如图1—35所示。这里选择Empty Feature Ability(Java)模板。

在配置工程时,工程名可以任意输入,但Package Name必须输入创建应用时指定的包的名称,即com.harmonyos.netdisk,如图1—36所示。最后单击Finish按钮创建工程。

创建完工程后,选择File→Project Structure菜单项,打开Project Structure窗口,单击左侧的Modules,选择Signing Configs选项卡,进入配置页面,并按图1—37所示对签名文件进行配置。其中,Store Password和Key Password使用1.7.1节中生成demo.p12文件时使用的密码,本例是1234abcd。配置完后,单击OK按钮保存配置。

图1—35 创建Phone工程

图1—36 配置工程

图1—37 配置签名文件

到这里,签名的工作就已经完成了,现在运行程序,会弹出一个图1—38所示的选择设备对话框。列表中显示连接了两部HarmonyOS手机(通过USB数据线连接),可以选择其中一部用于运行程序。

运行效果如图1—39所示。

图1—38 选择设备对话框

图1—39 App在手机上的运行效果

1.7.3 网络部署App

通常在真机上运行HarmonyOS App时要用USB数据线将手机和计算机连接起来,这种方式比较复杂,而且如果使用的是USB接口并不富余的计算机,如苹果的Mac,还需要连接USB Hub等设备,所以本节介绍另外一种部署App的方式——网络部署。

其实网络部署与通过USB数据线部署在本质上是一样的,只是这种方式不需要通过USB数据线将手机与计算机进行连接,只需要手机与计算机在同一个网段即可。

在默认情况下,手机的网络调试功能是关闭的,所以需要使用adb或hdc命令打开手机的网络调试功能。adb是Android的命令,hdc是HarmonyOS的命令,这两个命令的功能类似。这两个命令的使用方法如下(执行其中一个即可):

adb tcpip 5555 
hdc tmode port 5555

注意,在执行上面的命令之前,手机必须先用USB数据线与计算机相连,等打开手机的网络调试服务后,就可以断开USB数据线的连接了。如果计算机连接了多部手机,使用adb命令需要添加-s命令行参数指定特定手机的标识,使用hdc命令需要添加-t命令行参数指定特定手机的标识,命令如下:

adb -s 017MXC19AS000544 tcpip 5555 
hdc -t -t 017MXC19AS000544 tmode port 5555

其中,5555是端口号,可以指定任何端口号。计算机需要通过这个端口号连接手机。如果成功打开手机的网络调试服务,可以使用下面的命令连接HarmonyOS手机。

● adb方式:

adb connect 192.168.31.220:5555

● hdc方式:

hdc tconn 192.168.31.220:5555

成功连接HarmonyOS手机后,就可以运行程序了。这时会在图1—38所示的列表中看到通过网络连接的HarmonyOS设备,选择设备并单击OK按钮运行即可,效果与通过USB数据线部署App是一样的。 iZEaOrpIPKYxtOE5PgbKmIQUbfo68QGioDOfKDBoDps/56Vm1uqP+CSiFvHowITG

点击中间区域
呼出菜单
上一章
目录
下一章
×