《HelloHarmonyOS!——鸿蒙应用开发从入门到精通》[77M]百度网盘|pdf下载|亲测有效
《HelloHarmonyOS!——鸿蒙应用开发从入门到精通》[77M]百度网盘|pdf下载|亲测有效

HelloHarmonyOS!——鸿蒙应用开发从入门到精通 pdf下载

出版社 电子工业出版社京东自营官方旗舰店
出版年 2022-02
页数 390页
装帧 精装
评分 9.5(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供HelloHarmonyOS!——鸿蒙应用开发从入门到精通电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

产品特色

编辑推荐

适读人群 :本书适合移动终端应用设计、开发工程师,以及对鸿蒙应用开发感兴趣或准备从事相关行业的开发者及院校师生阅读参考。

1.本书内容丰富,针对HarmonyOS 2.0,全面地介绍了鸿蒙2.0应用开发所涉及的知识点,使用概念介绍、代码编写、代码讲解的模式,将所讲的内容通过小案例用由浅入深、分步拆解的方式进行介绍,可以给你更好的学习体验。

2.作者权威,作者是华为认证的HarmonyOS系统课程开发者、华为开发者专家


内容简介

本书是系统地介绍鸿蒙应用开发知识的图书,较全面地介绍了鸿蒙应用开发所涉及的知识点,使用概念介绍、代码编写、代码讲解的模式,将所讲的内容通过小案例用由浅入深、分步拆解的方式进行介绍,希望为你带来更好的学习体验。

本书共分为9章。第1章介绍了HarmonyOS的特性、基础知识及鸿蒙应用如何在单机和多设备上运行与调试。第2章和第8章介绍了鸿蒙应用的布局与组件。第3章~第7章介绍了鸿蒙应用开发的各项知识,包括Ability、分布式通信、数据管理、公共事件和通知、服务卡片。第9章介绍了鸿蒙应用开发过程中的线程管理。


作者简介

孙洋,华为开发者专家(HDE),华为认证的HarmonyOS系统课程开发者,华为开发者学堂认证讲师,51CTO HarmonyOS技术社区MVP,CSDN博客专家,中国农业银行总行前研发工程师


精彩书评

本书深入介绍HarmonyOS应用开发的技术细节,尤其深度剖析了HarmonyOS具有较强优势的分布式应用涉及的分布式软总线、分布式数据管理及分布式文件服务等,值得应用开发者学习和参考。

——华为OpenHarmony开源与开发者运营总监 欧建深

鸿蒙生态正经历关键性的一年。在鸿蒙生态的基座中,开发者生态建设是艰难的一环,除了需要时间建设完善的人才培养体系来支撑人才培养,还需要通过推进鸿蒙商业化进程来扩大人才市场的需求,形成良性循环。在人才培养体系中,学习资料是重要的基础设施。希望有越来越多像孙洋老师这样的鸿蒙先行者输出优质的学习资料,帮助鸿蒙生态早日繁荣。

——51CTO创始人&CEO 熊平

目前,鸿蒙生态中系统化的HarmonyOS应用开发资料仍然稀缺。孙洋老师将HarmonyOS应用开发知识抽丝剥茧,细致地讲解。基础薄弱的开发者在学习过程中不会有压力。推荐有意开设HarmonyOS应用开发课程的高校将本书作为教辅用书,也希望本书能够在鸿蒙生态的人才培养上发挥作用。

——51CTO媒体事业部总经理&HarmonyOS技术社区创始人 宋佳宸

孙洋老师作为华为认证的HarmonyOS系统课程开发者,是国内投身于鸿蒙学习和深度研究的先行者,在线上和线下为广大开发者分享了大量的典型案例和实战经验。孙洋老师在大家的期盼中已将其研究精华汇集成书,为鸿蒙生态的发展再次做出了贡献。本书使用Java编程语言,细致、深入地讲解了HarmonyOS应用开发中几大核心和常用的技术主题,提供了大量精彩的实战案例,干货满满,强烈推荐广大鸿蒙学习者仔细研读本书!

——资深HarmonyOS应用开发讲师&鸿蒙先行者 张荣超


目录

第1章 HarmonyOS开篇 | 1

1.1 HarmonyOS概述 | 1

1.1.1 HarmonyOS技术特性 | 2

1.1.2 HarmonyOS架构 | 5

1.2 HarmonyOS环境搭建 | 7

1.2.1 DevEco Studio安装 | 7

1.2.2 SDK安装 | 10

1.2.3 HDC工具配置 | 17

1.2.4 账号注册与实名认证 | 21

1.3 HarmonyOS应用程序知识 | 25

1.3.1 App与HAP | 25

1.3.2 Ability概述 | 27

1.4 第一个程序:Hello World! | 27

1.4.1 创建项目 | 28

1.4.2 项目目录 | 31

1.4.3 配置文件 | 34

1.4.4 模拟器运行 | 36

1.4.5 应用签名与真机运行 | 45

1.4.6 自动签名 | 56

1.4.7 应用程序的断点调试 | 58

1.4.8 HiLog日志 | 63

1.5 本章小结 | 68

第2章 HarmonyOS页面开发 | 69

2.1 组件与组件容器 | 69

2.1.1 Component | 69

2.1.2 ComponentContainer | 70

2.1.3 开发用户页面的方式 | 71

2.1.4 边距 | 72

2.2 常用布局 | 76

2.2.1 DirectionalLayout | 76

2.2.2 DependentLayout | 89

2.2.3 StackLayout | 95

2.2.4 TableLayout | 98

2.2.5 PositionLayout | 105

2.2.6 AdaptiveBoxLayout | 106

2.3 常用组件 | 109

2.3.1 Component | 109

2.3.2 Text和TextField | 112

2.3.3 Button | 118

2.3.4 RadioButton和RadioContainer | 121

2.3.5 Checkbox | 129

2.3.6 Image | 131

2.3.7 ProgressBar和RoundProgressBar | 135

2.3.8 ToastDialog | 140

2.4 常用的资源类型 | 143

2.4.1 资源目录 | 143

2.4.2 资源文件的使用 | 144

2.4.3 限定词目录 | 153

2.4.4 样式与样式选择 | 155

2.5 动画开发 | 160

2.5.1 帧动画 | 160

2.5.2 数值动画 | 163

2.5.3 属性动画 | 168

2.6 组件的事件监听 | 171

2.6.1 事件类别 | 171

2.6.2 事件监听的五种写法 | 174

2.7 本章小结 | 180

第3章 Ability开发 | 181

3.1 Ability概述 | 181

3.2 Page Ability | 182

3.2.1 Page Ability的创建 | 183

3.2.2 Page Ability的生命周期 | 188

3.2.3 Page Ability的导航 | 191

3.3 Service Ability | 203

3.3.1 Service Ability的创建 | 203

3.3.2 Service Ability的生命周期 | 206

3.4 Ability属性配置 | 215

3.4.1 Ability的配置文件 | 215

3.4.2 Ability的启动模式 | 218

3.5 Intent | 220

3.5.1 Intent对象的结构 | 220

3.5.2 Intent对象的操作 | 221

3.6 本章小结 | 222

第4章 分布式通信 | 224

4.1 远程启动FA | 224

4.1.1 获取远程设备的信息 | 225

4.1.2 启动FA | 231

4.2 应用迁移 | 236

4.2.1 IAbilityContinuation接口 | 236

4.2.2 应用迁移案例 | 239

4.2.3 IAbilityContinuation接口的其他回调方法 | 243

4.3 应用回迁 | 246

4.4 跨设备启动服务 | 248

4.5 跨设备连接服务 | 252

4.6 跨设备服务调用 | 256

4.7 本章小结 | 264

第5章 数据管理 | 265

5.1 本地数据管理 | 265

5.1.1 关系型数据库与SQLite | 265

5.1.2 关系型数据库的操作 | 268

5.1.3 对象关系映射数据库 | 282

5.1.4 Preferences | 298

5.2 分布式数据管理 | 309

5.2.1 分布式数据服务 | 309

5.2.2 分布式数据服务开发 | 311

5.3 分布式文件服务 | 325

5.3.1 分布式文件服务概述 | 325

5.3.2 分布式文件服务开发 | 326

5.4 Data Ability | 333

5.4.1 Data Ability概述 | 333

5.4.2 Data Ability的创建 | 334

5.4.3 Data Ability的文件访问 | 338

5.4.4 Data Ability的数据库访问 | 345

5.5 本章小节 | 355

第6章 公共事件和通知 | 356

6.1 公共事件 | 357

6.1.1 公共事件发布 | 357

6.1.2 事件订阅 | 364

6.1.3 公共事件退订 | 369

6.2 通知 | 370

6.3 IntentAgent | 382

6.3.1 IntentAgent概述 | 382

6.3.2 IntentAgent开发 | 383

6.4 本章小结 | 390

第7章 服务卡片与原子化服务 | 391

7.1 卡片 | 391

7.1.1 创建卡片 | 394

7.1.2 卡片的开发 | 400

7.2 原子化服务 | 417

7.2.1 原子化服务概述 | 417

7.2.2 原子化服务开发 | 418

7.3 本章小结 | 422

第8章 高级编程 | 423

8.1 ListContainer | 423

8.1.1 ListContainer的使用 | 423

8.1.2 ListContainer的事件方法 | 430

8.2 ScrollView | 432

8.2.1 ScrollView的使用 | 432

8.2.2 ScrollView的事件方法 | 436

8.3 PageSlider与PageSliderIndicator | 439

8.3.1 PageSlider的使用 | 439

8.3.2 PageSlider的方法 | 445

8.3.3 PageSliderIndicator的使用 | 448

8.3.4 PageSliderIndicator的事件方法 | 454

8.4 WebView | 456

8.4.1 WebView的使用 | 456

8.4.2 WebView的事件方法 | 458

8.5 Fraction | 471

8.5.1 Fraction概述 | 471

8.5.2 Fraction的使用 | 473

8.6 本章小结 | 482

第9章 线程管理 | 483

9.1 线程管理开发 | 483

9.1.1 线程优先级 | 484

9.1.2 TaskDispatcher开发 | 484

9.2 线程间通信 | 497

9.2.1 EventHandler运行机制 | 498

9.2.2 线程间通信相关的对象 | 499

9.2.3 线程间通信开发 | 502

9.3 本章小结 | 510


精彩书摘

4.4 跨设备启动服务

在HarmonyOS中,所有的功能都被抽象成Ability,服务被称作Service Ability,它不包含与用户进行交互的页面。比如,音乐播放器可以在退回到桌面后,依然播放音乐,这其实就是一种没有页面的服务。依托于HarmonyOS的分布式通信能力,开发者可以完成跨设备的服务启动,以便控制其他设备上的服务。首先来看一种最简单的使用方式:跨设备启动Service Ability。

跨设备启动服务和跨设备启动应用其实非常类似,需要申请ohos.permission.DISTRIBUTED_DATASYNC权限。当然,如果你需要查询网络中的分布式设备信息,那么还需要ohos.permission.GET_DISTRIBUTED_ DEVICE_INFO权限。

接下来完成一个跨设备启动Service Ability的案例。要完成这个案例,就需要以下几个步骤。

图4-14 创建SimpleServiceAbility

(1)权限配置。同4.2.2节的权限配置。

(2)通过DevEco Studio创建Service Ability,命名为SimpleServiceAbility,如图4-14所示。

(3)在ability_main.xml布局文件中新增一个按钮。

xmlns:ohos="http://schemas.huawei.com/res/ohos"

ohos:height="match_parent"

ohos:width="match_parent"

ohos:orientation="vertical">

......

ohos:id="$+id:start_service"

ohos:height="match_content"

ohos:width="match_parent"

ohos:text="启动远程服务"

ohos:top_margin="5vp"

ohos:background_element="#E1E1E1"

ohos:text_size="30fp"/>

(4)在MainAbilitySlice中定义它的点击事件。

Button startService = (Button)findComponentById(ResourceTable.Id_ start_service);

startService.setClickedListener(new Component.ClickedListener() {

@Override

public void onClick(Component component) {

Intent intent = new Intent();

//配置Intent参数

Operation operation = new Intent.OperationBuilder()

.withDeviceId(deviceList.get(0).getDeviceId())

.withBundleName(getBundleName())

.withAbilityName(SimpleServiceAbility.class.getName())

.withFlags(Intent.FLAG_ABILITYSLICE_MULTI_DEVICE).build();

intent.setOperation(operation);

intent.setParam("data","这是远程服务传来的消息!");

startAbility(intent);

}

});

这里的代码其实与远程启动FA是一样的,并没有区别。在上述代码中使用了deviceList.get(0).getDeviceId()方法获取设备ID,deviceList通过以下方式来获取。

List deviceList = DeviceManager.getDeviceList (DeviceInfo.FLAG_GET_ONLINE_DEVICE);

由于Service Ability是没有页面的,为了方便看到效果,在Intent对象中传递了一个字符串。当启动远程服务后,开发者可以获取这个字符串,并给出提示,这样就能看出启动远程服务的效果。具体操作是在SimpleServicAbility的onCommand()方法中获取这个字符串,使用ToastDialog组件给出提示。

Ability为开发者提供了startAbility()方法来启动另一个Ability。由于不管是Feature Ability,还是Service Ability,都属于Ability的一种,所以也可以使用startAbility()方法来启动一个Service Ability。如果远程启动设备的Ability,那么只需要通过Operation对象的withDeviceId()方法来指定要启动的是哪一台设备上的Service Ability即可。

(5)重写SimpleServiceAbilty中的onCommand()方法。获取传递过来的字符串,并进行提示。

@Override

protected void onCommand(Intent intent, boolean restart, int startId) {

super.onCommand(intent, restart, startId);

String sdata = intent.getStringParam("data");

new ToastDialog(ctx).setText(sdata).show();

}

到这里,所有的代码都准备完成了,接下来将程序运行到模拟器上观察效果。首先获取分布式设备的信息,然后点击“启动远程服务”按钮,可以看到右侧设备已经弹出了消息提示,说明启动远程服务成功,如图4-15所示。

(a) (b)

图4-15 启动远程服务

这个时候,将右侧设备返回到桌面(将程序切换到后台),再次点击“启动远程服务”按钮,也是可以接收到消息的,如图4-16所示。

图4-16 后台运行的服务

这就是启动远程服务的例子,接下来介绍连接服务。它可以让多个设备之间建立一条通路,通过这条通路,可以实现以低延时在不同设备间进行数据交换。



前言/序言

2019年10月,华为鸿蒙操作系统(HarmonyOS)正式发布1.0版本。它是一款面向万物互联的全场景分布式操作系统。经过短短两年,HarmonyOS目前已经运行在2.2亿部终端设备上,发展速度十分惊人,其巨大的商业价值逐渐被市场认可。HarmonyOS可以非常方便地连接不同的设备,打破硬件之间的物理屏障,使不同的硬件设备之间可以便捷、迅速地进行数据通信。目前,物联网正从“万物互联”阶段进入“万物智联”阶段,HarmonyOS可以作为这一阶段的“基础设施”。搭载了HarmonyOS的硬件设备,可以很自然地融入鸿蒙生态中。随着设备数量的不断增加,HarmonyOS的优势会更加明显。

鸿蒙开发分为应用开发和设备开发,本书介绍的内容是其中的应用开发,基于HarmonyOS的SDK和开发工具DevEco Studio来完成。鸿蒙应用开发主要使用的编程语言为Java和JavaScript,并支持C/C++语言来做Native开发。不同语言之间可以混合使用,满足了多种多样的开发需求。本书使用Java语言进行讲解,系统地介绍鸿蒙应用开发的基础知识,适合作为入门鸿蒙应用开发的基础教程。

本书是系统地介绍鸿蒙应用开发知识的图书,较全面地介绍了鸿蒙应用开发所涉及的知识点,使用概念介绍、代码编写、代码讲解的模式,将所讲的内容通过小案例用由浅入深、分步拆解的方式进行介绍,希望为你带来更好的学习体验。本书适合移动终端应用设计、开发工程师,以及对鸿蒙应用开发感兴趣或准备从事相关行业的开发者及院校师生阅读参考。

本书共分为9章。第1章介绍了HarmonyOS的特性、基础知识及鸿蒙应用如何在单机和多设备上运行与调试。第2章和第8章介绍了鸿蒙应用的布局与组件。通过学习第2章,你可以掌握不同布局方式适用的场景,了解应用中各个组件的摆放是如何实现的和如何给组件加上丰富的样式。第8章介绍了一些高级组件的使用方法,使用这些组件可以开发功能更为复杂的页面。第3章~第7章介绍了鸿蒙应用开发的各项知识,包括Ability、分布式通信、数据管理、公共事件和通知、服务卡片。第9章介绍了鸿蒙应用开发过程中的线程管理。

如果你是一名初学者,那么请在开始阅读本书前,学习一些Java语言的基础知识。如果你是一名有经验的资深Android移动开发人员,那么可以将本书作为案头参考资料,了解Android移动开发和鸿蒙开发的共同点与区别,从而快速上手鸿蒙应用开发。

需要说明的是,由于HarmonyOS的SDK和开发工具DevEco Studio的版本不断更新,本书中的部分内容可能与最新的软件页面不一致,请你见谅,不过这不会影响本书的阅读体验。

由于作者水平有限,编写时间仓促,虽然经过多次勘误,但是书中难免出现一些表述不准确的地方,恳请你批评指正。

感谢你的支持,其实对于一门技术来讲,需要介绍的内容有很多,但是一本书的篇幅是有限的,能讲到的重点也是有限的。我想介绍的内容不限于此,希望以后可以继续与你探讨。

在本书的写作过程中,得到了华为和51CTO鸿蒙社区的大力支持!特别感谢王雪燕、于小飞在本书写作过程中提供的支持,感谢电子工业出版社博文视点公司的石悦老师在本书出版过程中的帮助。感谢我的博士生导师鲁斌教授对我的支持。最后,感谢我的家人的陪伴和支持。

希望本书能够帮助到你,祝愿你在未来的学习道路上一切顺利,旅途愉快。

最后,借用华为消费者业务品牌主题曲《我的梦》中的一句歌词与你共勉:

“就让光芒折射泪湿的瞳孔

映出心中最想拥有的彩虹

带我奔向那片有你的天空

因为你是我的梦”