![鸿蒙操作系统开发入门经典](https://wfqqreader-1252317822.image.myqcloud.com/cover/903/44509903/b_44509903.jpg)
3.3 创建一个ACE Java项目
视频讲解
在对HarmonyOS应用程序有了一个初步认知之后,我们使用DevEco Studio来创建一个项目,把项目运行起来,先从整体上来了解一下HarmonyOS项目的整体结构及开发工具的基本使用。
环境和工具配置好后,就可以创建一个项目了。先创建一个项目,从整体上了解一下HarmonyOS应用的整体框架。我们在一个布局里放置一个文本框,用于显示一个数字,再添加一个按钮,每次单击按钮让文本框中的数字加1。通过这样一个小程序简单演示工具的使用和项目的基本框架。
3.3.1 新建ACE Java项目
选择File→New→New Project进行项目创建,会弹出如图3-5所示的窗口。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P55_1541.jpg?sign=1739572243-CcJponGxecRbQEf3rCJqaNF9ZGtqJrM2-0-c6cacdf5623b11e44d1e3ab5951cfe6e)
图3-5 新建ACE Java项目
创建项目窗口可分为两块,其中Device表示目前支持的设备。设备列表中从左到右依次为手机、平板、车机、电视机、智慧屏、穿戴设备、轻型穿戴设备等。
上边是新建项目时供选择的模板,因为笔者使用Java开发,所以选择第二个(Empty Feature Ability Java),单击Next按钮进入下个页面,如图3-6所示。
配置完项目名、包名、使用的SDK版本及项目的保存路径后,单击Finish按钮即可,创建完成后项目会自动构建。构建成功后项目整体结构如图3-7所示。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P56_1549.jpg?sign=1739572243-VrC9vfWkF9ZxrQZwVWFPuSvh7U6D19Ph-0-fc50e6fc0dd251898a6e11cf6859c296)
图3-6 选择项目模板
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P56_1552.jpg?sign=1739572243-yaaWVHeEkDGOmV9j5E2g1rlXff93ru6W-0-c66f0f13641c606d9ee6f7695361ac7d)
图3-7 ACE Java项目目录结构
先完成我们的功能,后续再了解目录及其作用。首先打开resources/base/layout目录中自动生成的布局文件,然后单击工具右侧的预览,如图3-8所示。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P57_1559.jpg?sign=1739572243-T7UfCrR5skfPRDjm2HHdJbRX2yvbIoJH-0-a4d2a936b7c69c3fec56acee47e46e8d)
图3-8 ACE Java项目预览
这是工具提供的一个预览器,当写xml布局的时候可以近乎实时地看到我们所写代码的效果。
3.3.2 编写界面布局
在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
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P57_24038.jpg?sign=1739572243-GUbbblliFG20WzwBJPjlzHwUdJJLlObm-0-aae78fb863b27cc26dea3eb481fd8f28)
此外还需要修改graphic目录下background_ability_main.xml文件,将背景设置为10像素的圆角,将填充色设置为#007CFD,如代码示例3-2所示。
代码示例3-2 设置背景:first_demo/entry/layout/background_ability_main.xml
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P58_24040.jpg?sign=1739572243-ioWuIlSy6ABVIvxUrm5I9TjQCSuoK2qT-0-e867d20c806268c916c762a76185c8c9)
此时在预览器中看到的效果如图3-9所示。
3.3.3 编写界面逻辑代码
接下来实现“单击加1”功能,打开由项目自动创建的MainAbilitySlice文件,如代码示例3-3所示。这里通过Button事件,每单击一次,设置“count++;”。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P59_1642.jpg?sign=1739572243-G7bNFzUDNX7yvWqBRjkOqvc4FDiCgVXi-0-e9b33ff727f32175fe0f5af949bd3d31)
图3-9 预览效果图
代码示例3-3 设置背景:first_demo/entry/java/MainAbilitySlice.java
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P59_24041.jpg?sign=1739572243-llVlkzIORt67dw19B7j4do5N1U7JpJ27-0-a0e6d81455750b007415244bf9413e34)
3.3.4 通过模拟器预览效果
到此为止,功能已经开发完毕,单击工具上方菜单栏的Tools下边的HVD Manager,弹出华为账号授权界面,如图3-10所示。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P60_1699.jpg?sign=1739572243-0EozVZVIH43FSmn8SzNu6nPAiZssi8RC-0-07de3df3e9b5798e7f0867cacdc9f8ab)
图3-10 华为账号授权
这里需要登录已注册的华为账号并且授权,单击“允许”按钮,跳转到网页授权,授权完成后,会弹出下面的界面,如图3-11所示。
这里可以选择对应的远程设备,因为我们创建项目时选的是手机类型的项目,因此这里选手机P40,单击后边的蓝色箭头,之后在工具右侧的预览区会变成所选择的手机P40。
选择手机P40模拟器,如图3-12所示,等待模拟器启动完成后,就可以单击工具右上方的按钮启动项目了。
单击工具右上方的按钮启动项目,如图3-13所示。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P61_1705.jpg?sign=1739572243-MvowtOmsqa7DeO8sKXut2MOwWFTjZj8w-0-161d9edfcd4c1d83822d5008855fcdb2)
图3-11 选择远程设备
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P61_1708.jpg?sign=1739572243-dZ1hdrd74ZKDjNVbfNhYhrk0y5KtFBtu-0-703a6749952f177170a2f9f470341d7d)
图3-12 P40虚拟机预览效果
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P61_1711.jpg?sign=1739572243-4lKxpnVbxQbJh4MTbZST2sOQjiPs8BpH-0-cd2a897ccdccd73a6b3a27bf04deb6c4)
图3-13 启动项目
单击启动编译完成后,选择要连接的远程机器,如图3-14所示。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P62_1717.jpg?sign=1739572243-T1iG4ZUh4cj4wSwuXlkvoe6taFmz3a1V-0-2ec9a43c993dcede3366c20640036e32)
图3-14 选择远程模拟器
图中的HUAWEI ANA-AN00就是刚才选择的P40远程机器。之后工具会把你的项目安装到远程机器并运行起来,如图3-15所示,这是单击两次按钮后的效果。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P62_1722.jpg?sign=1739572243-OQ40ohHyaQ7kmILsnWFOBu0Z3K4TDKB2-0-543d1fc45ebb2f150c666e8decd58a3a)
图3-15 P40预览项目效果
3.3.5 日志HiLog的使用
在编写程序的过程中,需要通过打印一条条日志来掌握程序运行的状态,下面就来讲解鸿蒙操作系统中的HiLog日志工具的具体使用方法。
使用HiLog前必须在HiLog的一个辅助类HiLogLabel中定义日志类型、服务域和标记。一般把它定义为常量并放在类的最上面,代码如下:
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P63_25744.jpg?sign=1739572243-WmZtiGbchl1HloVZgPri7R5mhd5au2uj-0-152faa4caf42443da65c3fca16babe4e)
上面的代码有3个参数:
(1) HiLog.LOG_APP(日志类型),我们的应用一般取一个常量值:HiLog.LOG_ APP,表示是第三方应用。
(2)0x00201(服务域),十六进制整数形式,取值范围是0x0~0xFFFFF。一般情况下,我们建议把这个十六进制数分成两组,前面3个数表示应用中的模块编号,后面两个数表示模块中类的编号。
(3) "MY_TAG"(一个字符串常量),它标识方法调用的类或服务行为。一般情况下写类的名字,可用这个标记对日志进行过滤。
1.日志的级别
和其他日志一样,HiLog也分为几个日志级别,越往下信息级别越高。
- debug:调试信息;
- info:普通信息;
- warn:警告信息;
- error:错误信息;
- fatal:致命错误信息。
2.高级应用(private和public修饰符)
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P63_25745.jpg?sign=1739572243-KGj74Kl0kGJ6zocWYHLvaawrbEuXJ0hH-0-45adfc9aab607af3529899f32e92245a)
private所处的位置%{private}s,其中s是要输出的内容,输出时不显示内容。
public所处的位置%{public}d,其中d是要输出的内容,输出时正确显示。