![鸿蒙操作系统开发入门经典](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=1739358705-rEsvJjdLX7d3nwA5ro7Jv9nJU6znCI7O-0-57ce0252659336691167cf525a68a4c6)
图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=1739358705-uPqXlecjM7rcT4AZXxF66acdOSKUDj3k-0-fc69394ed316622c234a6a8249070743)
图3-6 选择项目模板
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P56_1552.jpg?sign=1739358705-X3uDEUHZThFE43SWMDTTmf8FlJ61RNq0-0-8ae9ce0315e0384b6ae1d78146e50719)
图3-7 ACE Java项目目录结构
先完成我们的功能,后续再了解目录及其作用。首先打开resources/base/layout目录中自动生成的布局文件,然后单击工具右侧的预览,如图3-8所示。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P57_1559.jpg?sign=1739358705-Q0cDLhboicFq3eCUBI94hnOH2NRt2bnV-0-e2ef35e0e2e7201d8688e326da253339)
图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=1739358705-ezco2TxbuEWl5FtqFU8rjxpBGtSMorCT-0-60e4c7e9e6ffa94387a930e0c06a157c)
此外还需要修改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=1739358705-iH24gSEJdwVcs8oy7wD1AM5niF8B07KJ-0-cf529998d89540a54eec2b554f247c2c)
此时在预览器中看到的效果如图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=1739358705-AySXWQpyXQc14MNdACNMwN2o0Avbb86D-0-4fdb57536eed9e45958523ab6bc71b63)
图3-9 预览效果图
代码示例3-3 设置背景:first_demo/entry/java/MainAbilitySlice.java
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P59_24041.jpg?sign=1739358705-HK79vqmrT1qe3NC8ydk9ldHBi83sMYbx-0-b37cab61f0f31d75239c20ff9b7bc368)
3.3.4 通过模拟器预览效果
到此为止,功能已经开发完毕,单击工具上方菜单栏的Tools下边的HVD Manager,弹出华为账号授权界面,如图3-10所示。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P60_1699.jpg?sign=1739358705-J83ioghpWvL9FMNp5YhYnJvmUzg77CEf-0-e289e8be8778241cf9488a9c39702738)
图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=1739358705-G5SRt5EnqU5hYQ10Rvoy5PGYssz2t7hT-0-f46cc789a9a4c397e668ca03f7d3b123)
图3-11 选择远程设备
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P61_1708.jpg?sign=1739358705-IAvdNgj5QVHnkylAKHySOaKB6DqfoyBV-0-a22ae729a3d7aa1b48458689e8259709)
图3-12 P40虚拟机预览效果
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P61_1711.jpg?sign=1739358705-wr3fJjMNdQ8Gz75LviPitYNxVCum9DAD-0-b57225d8c7bf6b99769b64d93a109b65)
图3-13 启动项目
单击启动编译完成后,选择要连接的远程机器,如图3-14所示。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P62_1717.jpg?sign=1739358705-ReRAGLRihiV0Q23kKt24m3dGJVOUGrKf-0-6b4a684d2a7bd3e485ec5c5d47d45c27)
图3-14 选择远程模拟器
图中的HUAWEI ANA-AN00就是刚才选择的P40远程机器。之后工具会把你的项目安装到远程机器并运行起来,如图3-15所示,这是单击两次按钮后的效果。
![](https://epubservercos.yuewen.com/00C4B0/23721626401016106/epubprivate/OEBPS/Images/Figure-P62_1722.jpg?sign=1739358705-fYtZCmDwZy4GlW2fNW5zBsC4YO5ZdI6s-0-4a37160f47bef0c85ce4f3a6a27cc49e)
图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=1739358705-iHdeTwty7t50aKWi8V3x7uBrbiXP9LzB-0-d4e1c9a6d3e52b7471de0d778951cc83)
上面的代码有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=1739358705-qggyc1NHzM1nPTSotEVhSm1q8JWVP47C-0-f408f928bfe84c7d8e562ac7cb63585a)
private所处的位置%{private}s,其中s是要输出的内容,输出时不显示内容。
public所处的位置%{public}d,其中d是要输出的内容,输出时正确显示。