鸿蒙南向开发实战:DeviceInfo适配说明

200 篇文章 4 订阅
126 篇文章 3 订阅

启动子系统设备信息说明

系统参数接口名描述
const.product.devicetypeconst char* GetDeviceType(void)返回当前设备类型
const.product.manufacturerconst char* GetManufacture(void)返回当前设备生产厂家信息
const.product.brandconst char* GetBrand(void)返回当前设备品牌信息
const.product.nameconst char* GetMarketName(void)返回当前设备传播名
const.build.productconst char* GetProductSeries(void)返回当前设备产品系列名
const.product.modelconst char* GetProductModel(void)返回当前设备认证型号
const.software.modelconst char* GetSoftwareModel(void)返回当前设备内部软件子型号
const.product.hardwareversionconst char* GetHardwareModel(void)返回当前设备硬件版本号
const.product.hardwareprofileconst char* GetHardwareProfile(void)返回当前设备硬件profile
ohos.boot.snconst char* GetSerial(void)返回当前设备序列号(SN号)
const.product.software.versionconst char* GetDisplayVersion(void)返回当前设备用户可见的软件版本号
const.product.bootloader.versionconst char* GetBootloaderVersion(void)返回当前设备Bootloader版本号
const.product.udidint GetDevUdid(char *udid, int size)获取设备udid(先通过参数获取,获取失败通过计算获取)
const char *AclGetSerial(void);返回当前设备序列号(SN号)(带访问权限检查)
int AclGetDevUdid(char *udid, int size);获取设备udid(带访问权限检查)

设备信息来源

OHOS 固定值参数的适配

  • OHOS 固定值参数:

    const.ohos.version.security_patch
    const.ohos.releasetype
    const.ohos.apiversion
    const.ohos.fullname
  • 适配说明:

    OHOS 固定值参数由OHOS系统填充,厂商不能也不需适配,目前这部分参数主要定义在文件中。/base/startup/init/services/etc/param/ohos_const/ohos.para

厂商固定值参数的适配:

  • 厂商固定值参数:

    const.product.devicetype
    const.product.manufacturer
    const.product.brand
    const.product.name
    const.build.product
    const.product.model
    const.software.model
    const.product.hardwareversion
    const.product.hardwareprofile
    const.product.software.version
    const.product.bootloader.version
    const.build.characteristics
    ... ...
  • 适配说明:

    由各产品根据自身情况在vendor目录下适配。

    • 标准系统以RK3568为例,在中适配,并安装到指定目录。/vendor/hihope/rk3568/etc/para/hardware_rk3568.para

      ohos_prebuilt_etc("para_for_chip_prod") {
          source = "./para/hardware_rk3568.para"
          install_images = [ chip_prod_base_dir ]
          relative_install_dir = "para"
          part_name = "product_rk3568"
      }
    • 轻量系统与小型系统在产品对应的文件中配置。例如:hals/utils/sys_param/vendor.para

      const.product.manufacturer=Talkweb
      
      const.product.brand=Talkweb
      
      const.product.name=Niobe
      
      const.build.product=Niobe
      
      const.product.model=Niobe407
      
      const.software.model="2.0.0"
      
      const.product.hardwareversion="1.0.0"
      
      const.product.hardwareprofile="RAM:192K,ROM:1M,ETH:true"
      ... ...

厂商动态参数的适配

厂商动态值参数,目前有三种获取形式:cmdline读取,编译宏定义,在BUILD.gn中定义。

  1. cmdline中读取的值有:ohos.boot.hardware、ohos.boot.bootslots、ohos.boot.sn等,其中ohos.boot.sn的获取略有不同,具体如下:

    • 标准系统的Serial从参数ohos.boot.sn读取。

      ohos.boot.sn参数值的获取方式:首先从cmdline(由uboot生成)获取,如果获取到的是sn值则直接读取,若获取的是文件路径,则从文件中读取;当获取不到时从默认的Sn文件读取,默认文件为:。/sys/block/mmcblk0/device/cid;/proc/bootdevice/cid

    • 轻量系统与小型系统的Serial各产品在实现过程中可能有自己特殊的算法,因此OpenHarmony支持在目录下hal_sys_param.c文件中通过HalGetSerial()接口自定算法来获取Serial。hals/utils/sys_param

  2. 编译宏定义的形式获取参数,目前主要在轻量系统与小型系统中用到,例如:

    defines = [
        "INCREMENTAL_VERSION=\"${ohos_version}\"",
        "BUILD_TYPE=\"${ohos_build_type}\"",
        "BUILD_USER=\"${ohos_build_user}\"",
        "BUILD_TIME=\"${ohos_build_time}\"",
        "BUILD_HOST=\"${ohos_build_host}\"",
        "BUILD_ROOTHASH=\"${ohos_build_roothash}\"",
    ]
  3. 在BUILD.gn中定义,可参考文件,例如:/base/startup/init/services/etc/BUILD.gn

    if (target_cpu == "arm64") {
        extra_paras += [ "const.product.cpu.abilist=arm64-v8a" ]
    }
    if (build_variant == "user") {
        extra_paras += [
            "const.secure=1",
            "const.debuggable=0",
        ]
    } else if (build_variant == "root") {
        extra_paras += [
            "const.secure=0",
            "const.debuggable=1",
        ]
    }
    if (device_type != "default") {
        extra_paras += [
            "const.product.devicetype=${device_type}",
            "const.build.characteristics=${device_type}",
        ]
    }
    module_install_dir = "etc/param"
    特别说明:
  4. 小型系统的产品需要在中添加vendor.para的编译,具体如下:hals/utils/sys_param/BUILD.gn

    copy("vendor.para") {
        sources = [ "./vendor.para" ]
        outputs = [ "$root_out_dir/vendor/etc/param/vendor.para" ]
    }
  5. 轻量系统的产品由于没有文件系统,在编译时会把hal_sys_param.c和vendor.para文件转化为头文件,编译时直接编译到系统中。

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

如果你是一名有经验的资深Android移动开发、Java开发、前端开发、对鸿蒙感兴趣以及转行人员,可以直接领取这份资料

 获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(HarmonyOS NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

 有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值