您现在的位置是:亿华云 > 域名
鸿蒙应用开发入门(二)开发环境搭建
亿华云2025-10-02 09:00:35【域名】5人已围观
简介想了解更多内容,请访问:和华为官方合作共建的鸿蒙技术社区https://harmonyos.51cto.com/#zz2.1 工具下载和安装:下载地址:https://developer.harmon
想了解更多内容,鸿蒙环境请访问:
和华为官方合作共建的应用鸿蒙技术社区
https://harmonyos.51cto.com/#zz
2.1 工具下载和安装:
下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio
安装下一步.....就可以,没有坑!
2.2 下载HarmonyOS SDK
DevEco Studio提供SDK Manager统一管理SDK和这个包依赖的开发开工具链。通过SDK Manager能自动下载各个语言对应的入门SDK包。SDK Manager提供多种编程语言的搭建SDK包,各SDK包的鸿蒙环境说明请参考:
1. Native:C/C++语言SDK包,默认不自动下载,应用需手动勾选下载。开发开
2. JS:JS语言SDK包,入门默认不自动下载,搭建需手动勾选下载。鸿蒙环境
3. Java:Java语言SDK包,应用首次下载SDK时默认下载。开发开
SDK对应的入门工具链(SDK Tools)和预览器:
1. Toolchains:SDK工具链,HarmonyOS应用开发必备工具集,搭建包括编译、打包、签名、数据库管理等工具的集合,首次下载SDK时默认下载。
2. Previewer:Lite Wearable预览器,在开发过程中可以动态预览Lite Wearable应用的界面呈现效果,默认不自动下载,需手动勾选下载。
2.3 安装IDE时候的坑1:一直加载gradle
1. 下载指定的云服务器提供商gadle版本
可以到 官网下载或者借助网友提供的下载好的版本,直接下载使用。
2. 关闭DevEco studio,打开DevEco studio自动生成的一个目录
默认在这个目录:C:\Users\Administrator\.gradle\wrapper\dists\gradle-6.3-all\b4awcolw...这串字符不同电脑不一样...u1obfh9i8
3. 下载好的zip文件放进去
将下载好的gradle文件复制在以上文件夹内(注意一定要放置在类似“b4awcolw...这串字符不同电脑不一样...u1obfh9i8”目录下),重启软件即可。
2.4 安装IDE时候的坑2:模拟器刷不出来
开发应用的时候需要模拟器跑效果,需要在DevEco Studio菜单栏,点击Tools > HVD Manager开发模拟器,第一次打开,会自动下载相关文件。然后要求用华为开发者账号登录认证,开发者账号要求实名认证,没有自行注册认证就好。
注意:浏览器一定要更新到最新版本,否则可能模拟器刷不出来。
2.5 推荐一个很好用的开源手机投屏工具scrcpy
1. 获取地址:https://github.com/Genymobile/scrcpy
2. scrcpy简介
简单地来说,scrcpy就是通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制手机设备。它可以通过USB连接,也可以通过Wifi连接(类似于隔空投屏),而且不需要任何root权限,不需要在手机里安装任何程序。scrcpy同时适用于Linux,亿华云计算Windows和macOS。
3. 安装和使用
1)绿色的下载到Windows某个目录,然后将目录添加到Path环境变量就可以了。
2)使用USB进行连接设备
(1)手机通过USB连接到PC上,首次连接会弹出是否信任该电脑,点击始终信任即可。
(2)运行adb devices查看是否连接成功
(3)运行“scrcpy -s 设备名称” ,只有一台设备直接scrcpy即可。
2.6 真机调试环境搭建步骤:
1)在IDE中生成签名文件,以备用
2)进入应用开发页面,进入管理中心,进入上架及推广服务
3)进入用户与访问,生成证书和管理设备(目前是受邀开发者可见),并且下载好证书已备用,添加设备需要UDID(获取UDID的命令,adb shell dumpsys DdmpDeviceMonitorService)
4)在进入我的项目,添加项目,添加应用,注意应用的包名必须和你自己的包名一样
5)在我的项目,对应的项目里,生成profile文件,下载以备用
6)cer、p12、高防服务器p7b三个文件齐了,在项目的属性,签名设置上设置上,就可以在真机上调试运行了

3.1 第一个鸿蒙应用实现需求
编写两张页面,实现在第一张页面点击按钮跳转到第二张页面。在Java UI框架中,提供了两种编写布局的方式:在XML中声明UI布局和在代码中创建布局。这两种方式创建出的布局没有本质差别,都是我们需要熟悉方式,所以我们将通过XML的方式布局第一张页面,然后再通过代码的方式布局第二张页面。
3.2 用XML布局第一张页面
1. 打开layout下面的“ability_main.xml”文件
2. 在“ability_main.xml”文件中创建一个文本和一个按钮
xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:width="match_parent" ohos:height="match_parent" ohos:background_element="#000000"> ohos:id="$+id:text" ohos:width="match_content" ohos:height="match_content" ohos:text="Hello World" ohos:text_color="white" ohos:text_size="32fp" ohos:center_in_parent="true"/> ohos:id="$+id:button" ohos:width="match_content" ohos:height="match_content" ohos:text="Next" ohos:text_size="19fp" ohos:text_color="white" ohos:top_padding="8vp" ohos:bottom_padding="8vp" ohos:right_padding="80vp" ohos:left_padding="80vp" ohos:background_element="$graphic:background_button" ohos:below="$id:text" ohos:horizontal_center="true" />3. 创建按钮的背景
按钮的背景是通过“background_button”来指定的。右键点击“graphic”文件夹,选择“New > File”,命名为“background_button.xml”。
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="oval"> <solid ohos:color="#007DFF"/> <corners ohos:radius="20"/> </shape>3.3 用编程的方式布局第二张页面
1. 创建Feature Ability
2. 代码编写界面
public class SecondAbilitySlice extends AbilitySlice { @Override public void onStart(Intent intent) { super.onStart(intent); // 声明布局 DependentLayout myLayout = new DependentLayout(this); // 设置页面布局大小和背景色 myLayout.setWidth(MATCH_PARENT); myLayout.setHeight(MATCH_PARENT); ShapeElement element = new ShapeElement(); element.setRgbColor(new RgbColor(255, 255, 255)); myLayout.setBackground(element); // 创建一个文本 Text text = new Text(this); text.setText("Nice to meet you."); text.setTextSize(55); text.setTextColor(Color.BLACK); // 设置文本的布局 DependentLayout.LayoutConfig textConfig = new DependentLayout.LayoutConfig(MATCH_CONTENT,MATCH_CONTENT); textConfig.addRule(DependentLayout.LayoutConfig.CENTER_IN_PARENT); text.setLayoutConfig(textConfig); myLayout.addComponent(text); super.setUIContent(myLayout); } @Override public void onActive() { super.onActive(); } @Override public void onForeground(Intent intent) { super.onForeground(intent); } }3.4 实现页面跳转
public class MainAbilitySlice extends AbilitySlice { @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_main); Button button = (Button) findComponentById(ResourceTable.Id_button); if (button != null) { // 为按钮设置点击回调 button.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { Intent secondIntent = new Intent(); // 指定待启动FA的bundleName和abilityName Operation operation = new Intent.OperationBuilder() .withDeviceId("") .withBundleName("com.example.myapplication") .withAbilityName("com.example.myapplication.SecondAbility") .build(); secondIntent.setOperation(operation); startAbility(secondIntent); // 通过AbilitySlice的startAbility接口实现启动另一个页面 } }); } } @Override public void onActive() { super.onActive(); } @Override public void onForeground(Intent intent) { super.onForeground(intent); } }文章配套视频课程《鸿蒙手机应用开发入门》https://edu.51cto.com/course/26133.html
©著作权归作者和HarmonyOS技术社区共同所有,如需转载,请注明出处,否则将追究法律责任
想了解更多内容,请访问:
和华为官方合作共建的鸿蒙技术社区
https://harmonyos.51cto.com/#zz
很赞哦!(42)
上一篇: 兴业银行携手超聚变推动隐私计算在金融领域的创新应用
下一篇: 数据中心的三个基本安全实践