在适配软总线时 的过程中,可能部分设备不需一些功能,可以做一些功能裁剪。

wifi 模块解耦

在编译配置文件dsoftbus.gni 中,有 wifi 模块是否编译的配置,当产品的rich.json 中去掉了wifi 模块后,softbus_communication_wifi_feature 值为fasle,后续软总线中wifi 模块不会参加编译。

// foundation/communication/dsoftbus/dsoftbus.gni
declare_args() {
  dsoftbus_get_devicename = true
  softbus_communication_wifi_feature = true
  softbus_os_account = true
}

if (defined(global_parts_info) &&
    !defined(global_parts_info.communication_wifi)) {
  softbus_communication_wifi_feature = false
}

有wifi 模块但是无p2p 功能
可以将 bundle.json 中的 dsoftbus_feature_conn_p2p 去掉,同时保证 dsoftbus.gni dsoftbus_feature_conn_p2p 的值设置为fasle。

蓝牙 模块解耦

如果产品形态没有适配ble ,软总线中可以选择不集成ble模块,将 bundle.json 中的dsoftbus_feature_disc_ble,dsoftbus_feature_conn_br,dsoftbus_feature_conn_ble配置去掉即可,同时保证dsoftbus.gni dsoftbus_feature_disc_ble,dsoftbus_feature_conn_br,dsoftbus_feature_conn_ble 的值设置为fasle。

crypto_shared 模块解耦

如果无需crypto_shared 加密,可以将 dsoftbus_feature_encrypt 设置为0 //third_party/openssl:libcrypto_shared 就不会参加编译了

其他配置

可以选择去掉 bundle.json features配置,不编译对应模块

"dsoftbus_feature_conn_p2p",
"dsoftbus_feature_disc_ble",
"dsoftbus_feature_conn_br",
"dsoftbus_feature_conn_ble",
"dsoftbus_feature_lnn_net",
"dsoftbus_feature_trans_udp_stream",
"dsoftbus_feature_trans_udp_file",
"dsoftbus_get_devicename",
"dsoftbus_feature_product_config_path",
"dsoftbus_feature_ifname_prefix",
"dsoftbus_feature_lnn_wifiservice_dependence",
"dsoftbus_standard_feature_dfinder_support_multi_nif",
"dsoftbus_feature_protocol_newip"

子系统依赖

有的对其他子系统的依赖没有在 bundle.json features配置中没有体现,当去掉对应的子系统后,该模块不会被软总线依赖。
例如对 account_os_account的依赖,当系统没有编译account_os_account,软总线不会依赖account_os_account模块,可以将softbus_os_account 设置为false,不去依赖account_os_account。

declare_args() {
  softbus_os_account = true
}

if (defined(global_parts_info) &&
    !defined(global_parts_info.account_os_account)) {
  softbus_os_account = false
}
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐