简介
c-ares是异步解析器库,适用于需要无阻塞地执行 DNS 查询或需要并行执行多个 DNS 查询的应用程序。
下载安装
直接在OpenHarmony-SIG仓中搜索c-ares并下载。
使用说明
以OpenHarmony 3.1 Beta的rk3568版本为例
- 将下载的c-ares库代码存在以下路径:./third_party/c-ares
- 修改添加依赖的编译脚本,路径:/developtools/bytrace_standard/ohos.build
{
"subsystem": "developtools",
"parts": {
"bytrace_standard": {
"module_list": [
"//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core",
"//developtools/bytrace_standard/bin:bytrace_target",
"//developtools/bytrace_standard/bin:bytrace.cfg",
"//developtools/bytrace_standard/interfaces/kits/js/napi:bytrace",
"//third_party/c_ares:c_ares_target"
],
"inner_kits": [
{
"type": "so",
"name": "//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core",
"header": {
"header_files": [
"bytrace.h"
],
"header_base": "//developtools/bytrace_standard/interfaces/innerkits/native/include"
}
}
],
"test_list": [
"//developtools/bytrace_standard/bin/test:unittest"
]
}
}
}
- 编译:./build.sh --product-name rk3568 --ccache
- 生成库文件和一些可执行测试文件,路径:out/rk3568/developtools/profiler
接口说明
- ares对channel进行初始化:
ares_init()
- 销毁channel,释放内存,关闭打开的socket:
ares_destroy(self.channel)
- 初始化channel,options,optmask:
ares_init_options(&channel, &options, optmask)
- 设置dns请求服务器,设置完成需要free掉c_servers的内存空间:
ares_set_servers(self.channel, cares.ares_addr_node* c_servers)
- ares处理完成,返回DNS解析的信息:
dns_callback()
- 获取ares channel使用的FD:
ares_fds()
- 有事件发生,交由ares处理:
ares_process()
- 传递给c-ares channal和回调:
ares_gethostbyaddr()
约束与限制
支持OpenHarmony API version 8 。
目录结构
|---- c-ares
| |---- ci
| |---- docs #资源文件
| |---- include #头文件
| |---- m4 #预处理文件
| |---- src
| |---- lib
| |---- ares__close_sockets.c #关闭TCP和UDP连接
| |---- ares__get_hostent.c #获取area hostent
| |---- ares__read_line.c #将文件中的一行读取到动态分配的缓冲区
| |---- ares__readaddrinfo.c #读取地址信息
| |---- ares__sortaddrinfo.c #对地址进行排序,并重新排列链表
| |---- ares_cancel.c #取消请求
| |---- ares_fds.c #获取使用的FD
| |---- ares_search.c #area搜索
| |---- test #单元测试文件
| |---- README.md #安装使用方法
经常有很多小伙伴抱怨说:不知道学习鸿蒙开发哪些技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?
为了能够帮助到大家能够有规划的学习,这里特别整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线,包含了鸿蒙开发必掌握的核心知识要点,内容有(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、WebGL、元服务、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、系统定制移植等等)鸿蒙(HarmonyOS NEXT)技术知识点。
《鸿蒙 (Harmony OS)开发学习手册》(共计892页)
如何快速入门?
1.基本概念
2.构建第一个ArkTS应用
3.……
1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……
基于ArkTS 开发
1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……
OpenHarmony 开发环境搭建
《OpenHarmony源码解析》
- 搭建开发环境
- Windows 开发环境的搭建
- Ubuntu 开发环境搭建
- Linux 与 Windows 之间的文件共享
- ……
- 系统架构分析
- 构建子系统
- 启动流程
- 子系统
- 分布式任务调度子系统
- 分布式通信子系统
- 驱动子系统
- ……
OpenHarmony 设备开发学习手册