在对HarmonyOS应用程序有了一个初步认知之后,我们使用DevEco Studio来创建一个项目,把项目运行起来,先从整体上来了解一下HarmonyOS项目的整体结构及开发工具的基本使用。
环境和工具配置好后,就可以创建一个项目了。先创建一个项目,从整体上了解一下HarmonyOS应用的整体框架。我们在一个布局里放置一个文本框,用于显示一个数字,再添加一个按钮,每次单击按钮让文本框中的数字加1。通过这样一个小程序简单演示工具的使用和项目的基本框架。
选择File→New→New Project进行项目创建,会弹出如图3-5所示的窗口。
图3-5 新建ACE Java项目
创建项目窗口可分为两块,其中Device表示目前支持的设备。设备列表中从左到右依次为手机、平板、车机、电视机、智慧屏、穿戴设备、轻型穿戴设备等。
上边是新建项目时供选择的模板,因为笔者使用Java开发,所以选择第二个(Empty Feature Ability Java),单击Next按钮进入下个页面,如图3-6所示。
配置完项目名、包名、使用的SDK版本及项目的保存路径后,单击Finish按钮即可,创建完成后项目会自动构建。构建成功后项目整体结构如图3-7所示。
图3-6 选择项目模板
图3-7 ACE Java项目目录结构
先完成我们的功能,后续再了解目录及其作用。首先打开resources/base/layout目录中自动生成的布局文件,然后单击工具右侧的预览,如图3-8所示。
图3-8 ACE Java项目预览
这是工具提供的一个预览器,当写xml布局的时候可以近乎实时地看到我们所写代码的效果。
在ability_main.xml文件中,添加一个Text组件和一个Button组件。这里为Button组件添加了一个背景文件,通过Button属性background_element引入。
background_element的值是$graphic:background_ability_main。$graphic表示引用graphic文件夹,background_ability_main是graphic文件夹下的xml文件,如代码示例3-1所示。
代码示例3-1 编写界面布局:first_demo/entry/layout/ability_main.xml
此外还需要修改graphic目录下background_ability_main.xml文件,将背景设置为10像素的圆角,将填充色设置为#007CFD,如代码示例3-2所示。
代码示例3-2 设置背景:first_demo/entry/layout/background_ability_main.xml
此时在预览器中看到的效果如图3-9所示。
接下来实现“单击加1”功能,打开由项目自动创建的MainAbilitySlice文件,如代码示例3-3所示。这里通过Button事件,每单击一次,设置“count++;”。
图3-9 预览效果图
代码示例3-3 设置背景:first_demo/entry/java/MainAbilitySlice.java
到此为止,功能已经开发完毕,单击工具上方菜单栏的Tools下边的HVD Manager,弹出华为账号授权界面,如图3-10所示。
图3-10 华为账号授权
这里需要登录已注册的华为账号并且授权,单击“允许”按钮,跳转到网页授权,授权完成后,会弹出下面的界面,如图3-11所示。
这里可以选择对应的远程设备,因为我们创建项目时选的是手机类型的项目,因此这里选手机P40,单击后边的蓝色箭头,之后在工具右侧的预览区会变成所选择的手机P40。
选择手机P40模拟器,如图3-12所示,等待模拟器启动完成后,就可以单击工具右上方的按钮启动项目了。
单击工具右上方的按钮启动项目,如图3-13所示。
图3-11 选择远程设备
图3-12 P40虚拟机预览效果
图3-13 启动项目
单击启动编译完成后,选择要连接的远程机器,如图3-14所示。
图3-14 选择远程模拟器
图中的HUAWEI ANA-AN00就是刚才选择的P40远程机器。之后工具会把你的项目安装到远程机器并运行起来,如图3-15所示,这是单击两次按钮后的效果。
图3-15 P40预览项目效果
在编写程序的过程中,需要通过打印一条条日志来掌握程序运行的状态,下面就来讲解鸿蒙操作系统中的HiLog日志工具的具体使用方法。
使用HiLog前必须在HiLog的一个辅助类HiLogLabel中定义日志类型、服务域和标记。一般把它定义为常量并放在类的最上面,代码如下:
上面的代码有3个参数:
(1) HiLog.LOG_APP(日志类型),我们的应用一般取一个常量值:HiLog.LOG_ APP,表示是第三方应用。
(2)0x00201(服务域),十六进制整数形式,取值范围是0x0~0xFFFFF。一般情况下,我们建议把这个十六进制数分成两组,前面3个数表示应用中的模块编号,后面两个数表示模块中类的编号。
(3) "MY_TAG"(一个字符串常量),它标识方法调用的类或服务行为。一般情况下写类的名字,可用这个标记对日志进行过滤。
和其他日志一样,HiLog也分为几个日志级别,越往下信息级别越高。
private所处的位置%{private}s,其中s是要输出的内容,输出时不显示内容。
public所处的位置%{public}d,其中d是要输出的内容,输出时正确显示。