鸿蒙面试题-某迈-2024年11月22日

news2024/11/26 12:11:21

某迈-2024年11月22日

1. 自我介绍

2. 鸿蒙中地图功能如何实现,申请流程是什么样的

  1. 主要通过 集成 Map Kit 的功能来实现
  2. Map Kit 功能很强大,比如有
    1. 创建地图:呈现内容包括建筑、道路、水系等。
    2. 地图交互:控制地图的交互手势和交互按钮。
    3. 在地图上绘制:添加位置标记、覆盖物以及各种形状等。
    4. 位置搜索:多种查询Poi信息的能力。
    5. 路径规划:提供驾车、步行、骑行路径规划能力。
    6. 静态图:获取一张地图图片。
    7. 地图Picker:提供地点详情展示控件、地点选取控件、区划选择控件
    8. 通过Petal 地图应用实现导航等能力:查看位置详情、查看路径规划、发起导航、发起内容搜索。
    9. 地图计算工具:华为地图涉及的2种坐标系及其使用区域和转换
  3. 在编码之前需要
    1. 完成证书的申请和公钥指纹的一些配置
    2. 还要在AGC平台上开通地图服务应用
    3. 代码中使用 项目的 client_id
    4. 最后开始编码

3. 一多开发是如何实现的

  1. 一多开发是一次开发多端部署
  2. 主要分成三个核心部分
    1. 工程级一多
    2. 界面级一多
    3. 能力级一多
  3. 工程级一多主要指的是使用华为鸿蒙推荐的三层架构来搭建项目,比如
    1. 第一层,最底层是 common-公共能力层,用于存放公共基础能力集合(如工具库、公共配置等),一般是使用HSP包(动态共享包),这样它被项目中多个模块引入的话,也只会保留一个备份。
    2. 第二层,是features-基础特性层,用于存放基础特性集合(如应用中相对独立的各个功能的UI及业务逻辑实现等)
    3. 顶层是,products-产品定制层,用于针对不同设备形态进行功能和特性集成
  4. 界面级一多指的是一套代码可以适配不同尺寸、形态的设备,主要通过以下这些技术来实现
    1. 自适应布局 等比拉伸缩放等等相关技术
    2. 响应式布局 通过断点、媒体查询、栅格布局来实现
  5. 能力级一多主要指的是不同硬件设备支持能力不一样,如蓝牙、摄像头、传感器等等。这些主要通过判断当前设置是否支持该能力来决定是否调用相关的api功能。如利用编辑器工具的智能提示、和代码中使用的caniuse或者try-catch进行判断使用。

4. 录音有做过吗?avrecoder有几种状态?

录音可以通过AVRecorder和AudioCapturer来实现。两者区别主要在支持录制声音的格式不同和控制录音文件的细小粒度不同上。AVRecorder会简单一些,AudioCapturer会复杂一些-还可以搭配ai语音功能使用

AVRecorder主要有以下这些状态:

image-20241124081207334

类型说明
‘idle’闲置状态。
‘prepared’参数设置完成
‘started’正在录制。
‘paused’录制暂停。
‘stopped’录制停止。
‘released’录制资源释放。
‘error’错误状态。

5. 图片上传有做过吗?图片处理,旋转、缩放、图片保存有做过吗?

做过相册图片的上传(如果是沙箱内的图片只需要1个步骤即可,直接上传),流程主要有3个步骤,基于photoAccessHelper 、CoreFileKit、NetworkKit来实现的

  1. photoAccessHelper 用来实现选择要上传的相册的图片
  2. CoreFileKit 将相册图片拷贝到沙箱目录
  3. NetworkKit 负责将沙箱目录内的图片上传到服务器上

图片处理,旋转、缩放、图片保存主要基于Image Kit来实现。它提供有

  • 图片解码

    指将所支持格式的存档图片解码成统一的PixelMap,以便在应用或系统中进行图片显示或图片处理。

  • PixelMap

    指图片解码后无压缩的位图,用于图片显示或图片处理。

  • 图片处理

    指对PixelMap进行相关的操作,如旋转、缩放、设置透明度、获取图片信息、读写像素数据等。

  • 图片编码

    指将PixelMap编码成不同格式的存档图片,用于后续处理,如保存、传输等。

其中压缩图片是通过 一个ImageKit的packing函数,传入压缩比例(0-100)来是实现的。值越小体积越小

6. 视频有做过吗?

  1. 如果是普通的视频播放直接使用 Video组件来播放即可。功能相对弱一些
  2. 如果是对视频播放进行神帝的一些处理,如流媒体、本地资源解析、媒体资源解封装、视频解码和自定义渲染的这些功能,可以使用AVPlayer来实现。
  3. 如果类似做一个编辑视频的软件,那么就需要使用到对应的CAPI接口来实现了(调用底层c++的能力)

7. 同事发给你代码,你怎么知道它的bundlename

一般直接看AppScope中的字段就行

8. 鸿蒙如何和网页端通信?

  1. 如果是应用的话,使用web组件和对应的controller的一些接口,如 runJavaScript()和runJavaScriptExt()
  2. 如果是元服务的话,使用AtomicServiceWeb来实现,因为2025年1月22日后不支持使用web。还有AtomicServiceWeb没有了web中的如 runJavaScript()和runJavaScriptExt()接口,但是它一样可以通过页面的url进行参数的传递和鸿蒙端提供了js sdk,也可以很方便的让h5端调用鸿蒙端的功能

9. 跨域是怎么处理的?

跨域存在于不同源的浏览器和服务器的网络通信中,因为鸿蒙端嵌套了web组件,理解成就是一个浏览器,因此也会存在跨域

为了提高安全性,ArkWeb内核不允许file协议或者resource协议访问URL上下文中来自跨域的请求。因此,在使用Web组件加载本地离线

资源的时候,Web组件会拦截file协议和resource协议的跨域访问。

主要有两种解决方案

  1. 将本地资源替换成网络资源,也就是file协议访问的是本地的资源,我们将本地资源放在网络上,通过http请求的方式来加载,然后在后端设置cors跨域即可。同时,开发者需利用Web组件的onInterceptRequest方法,对本地资源进行拦截和相应的替换
  2. 通过setPathAllowingUniversalAccess 白名单设置一个路径列表。当使用file协议访问该列表中的资源时,允许进行跨域访问本地文件

10. 录音过程中息屏怎么处理?

可以通过申请长时任务,实现在后台长时间运行。长时任务支持的类型,包含数据传输、音视频播放、录制、定位导航、蓝牙相关、多设备互联、WLAN相关、音视频通话和计算任务

开发步骤如下:

  1. 需要申请ohos.permission.KEEP_BACKGROUND_RUNNING权限
  2. 声明后台模式类型(录音等)
  3. 通过 @ohos.resourceschedule.backgroundTaskManager和@ohos.app.ability.wantAgent 进行编码处理

11. 有做过华为支付吗?

需要企业资质、需要在AGC平台上开通服务。

image-20241124085051765

  1. 商户客户端请求商户服务器创建商品订单。
  2. 商户服务器按照商户模型调用Payment Kit服务端直连商户预下单或平台类商户/服务商预下单接口。
  3. 华为支付服务端返回预支付ID(prepayId)。
  4. 商户服务端组建订单信息参数orderStr返回给商户客户端。
  5. 商户客户端调用requestPayment接口调起Payment Kit支付收银台。
  6. Payment Kit客户端展示收银台。
  7. 用户通过收银台完成支付,Payment Kit客户端会收到支付结果信息并请求Payment Kit服务端处理支付。
  8. Payment Kit服务端成功受理支付订单并异步处理支付。
  9. Payment Kit服务端将支付结果返回给Payment Kit客户端。
  10. Payment Kit客户端展示支付结果页。
  11. 用户关闭支付结果页后Payment Kit客户端会返回支付状态给商户客户端。
  12. 支付处理完成后,Payment Kit服务端会调用回调接口返回支付结果信息给商户服务端。
  13. 商户服务端收到支付结果回调响应后,使用SM2验签方式对支付结果进行验签。

12. 说一下多线程

参考

image-20241124085159121

13. 你最擅长的是哪个功能哪个模块?

14. 有些功能鸿蒙尚未适配,华为那边回复慢,你会怎么处理?

  1. 商量是否替换解决方案或者砍功能、延期实现功能

15. 在客户那边遇到一些困难,只有你一个人在驻场,如何解决?

  1. 先分析问题的边界,判断是否在自己的能力范围之内,或者开发团队能力范围之内。比如是华为鸿蒙那边的问题还是我们开发团队的问题
  2. 如果不能及时判断出来,随机先安抚客户、然后自己项目团队汇报,随即给出客户对应的解决方案。
  3. 执行解决方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2247831.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微软要求 Windows Insider 用户试用备受争议的召回功能

拥有搭载 Qualcomm Snapdragon 处理器的 Copilot PC 的 Windows Insider 计划参与者现在可以试用 Recall,这是一项臭名昭著的快照拍摄 AI 功能,在今年早些时候推出时受到了很多批评。 Windows 营销高级总监 Melissa Grant 上周表示:“我们听…

【Android】静态广播接收不到问题分析思路

参考资料: Android 静态广播注册流程(广播2)-CSDN博客 Android广播发送流程(广播3)_android 发送广播-CSDN博客 https://zhuanlan.zhihu.com/p/347227068 在Android中,静态广播如果静态广播不能接收,我们可以从整个流程中去分析&#xff…

非递归遍历二叉树(数据结构)

我的博客主页 非递归遍历二叉树 前序遍历(迭代)中序遍历(迭代)后续遍历(迭代) 二叉树的遍历方式有:前序遍历、中序遍历、后续遍历,层序遍历,而树的大部分情况下都是通过递…

2024 java大厂面试复习总结(一)(持续更新)

10年java程序员,2024年正好35岁,2024年11月公司裁员,记录自己找工作时候复习的一些要点。 java基础 hashCode()与equals()的相关规定 如果两个对象相等,则hashcode一定也是相同的两个对象相等,对两个对象分别调用eq…

【可变参数,lambda,function,bind】

可变参数 Args模板参数包 解析参数包,使用递归和再来一个参数包。参数包传参时,会把第一个数据给前面的,剩下的数据全部传给后面的参数包,参数包就一直变小。 lambda表达式 书写格式:[capture-list] (parameters)…

ArcGIS API for Javascript学习

一、ArcGIS API for Javascript 介绍 ArcGIS API for Javascript 是由美国 Esri 公司推出,跟随ArcGIS 9.3 同时发布的,是Esri 基于dojo 框架和 REST 风格实现的一套编程接口。通过 ArcGIS API for Javascript可以对ArcGIS for Server 进行访问&#xff…

JavaScript的let、var、const

这张图片主要介绍了JavaScript中的三种变量声明方式:let、var和const。 1. let 含义:let是现在实际开发中常用的变量声明方式。特点: 块级作用域:let声明的变量只在其所在的块级作用域内有效。例如:{let x 10; } co…

24.11.25 Mybatis1

1.Mybatis介绍 1.封装JDBC 减少重复性代码 2.ORM(实体关系映射框架) 通过框架 实体类 <--> 数据表 自动封装对象 3.半自动的ORM框架 还需要写sql语句 2.使用mybatis连接数据库(调通一遍 记住需要哪些文件) 1.创建全局配置文件 mybatis-config.xml <?xml ver…

【Python爬虫五十个小案例】爬取猫眼电影Top100

博客主页&#xff1a;小馒头学python 本文专栏: Python爬虫五十个小案例 专栏简介&#xff1a;分享五十个Python爬虫小案例 &#x1f40d;引言 猫眼电影是国内知名的电影票务与资讯平台&#xff0c;其中Top100榜单是影迷和电影产业观察者关注的重点。通过爬取猫眼电影Top10…

Oh-My-ZSH安装教程

1. 安装zsh sudo apt-get install zsh2.安装on-my-zsh wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh上面方式很大可能因为网络连接问题而失败&#xff0c;可以通过以下方式&#xff1a; git clone gitgithub.com:ohmyzsh/ohmyzsh…

三六零[601360]行情数据接口

1、三六零&#xff1a;实时行情 Restful API # 测试接口&#xff1a;可以复制到浏览器打开 https://tsanghi.com/api/fin/stock/XSHG/realtime?tokendemo&ticker601360获取股票实时行情&#xff08;开、高、低、收、量&#xff09;。 请求方式&#xff1a;GET。 Python示例…

用 OceanBase 4.3.3,搭建《黑神话:悟空》的专属游戏AI助手

本文分享了如何基于 OceanBase 4.3.3 bp1 社区版的向量检索能力&#xff0c;通过几条简单的命令&#xff0c;快速搭建一个定制化的专属游戏助手的过程。 背景 在 OceanBase 最新推出 V 4.3.3 免费试用的同时&#xff0c;也同时发布了几个基于OB Cloud 的向量能力&#xff0c;搭…

tableau练习-制作30个图表

一、导入数据 1、导入数据 -添加-添加连接-到文件-excel格式用第一个excel导入&#xff0c;csv格式用第二个文本格式导入 2、连接数据 -从旁边这里直接拖到中间 标头连接 -日期若不一致需调节日期格式 3、保存数据 点击数据提取-再保存数据&#xff0c;保存为twbx格式 二、设计…

QT QHorizontalSpacer控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…

第六届智能控制、测量与信号处理国际学术会议 (ICMSP 2024)

重要信息 2024年11月29日-12月1日 中国陕西西安石油大学雁塔校区 大会官网&#xff1a;www.icmsp.net 大会简介 第六届智能控制、测量与信号处理国际学术会议&#xff08;ICMSP 2024&#xff09;由西安石油大学、中海油田服务股份有限公司、浙江水利水电学院与中国石油装备…

Qt中2D绘制系统

目录 一、Qt绘制系统 1.1Qt绘制基本概念 1.2 绘制代码举例 1.3画家 1.3.1 QPainter的工作原理&#xff1a; 1.3.2 自定义绘制饼状图&#xff1a; 1.4画笔和画刷 1.4.1画笔 1.4.2 画刷填充样式 1.5 反走样和渐变 1.6绘制设备 1.7坐标变换 1.8QPainterPath 1.9绘制文…

Linux——Uboot命令使用

什么是Uboot&#xff1f; 1&#xff09;Uboot是一个裸机程序&#xff0c;比较复杂。类似我们PC机的BIOS程序。 2&#xff09;Uboot就是一个bootloader&#xff0c;作用就是用于启动Linux或者其他系统&#xff0c;Uboot最主要的工作是初始化DDR&#xff0c;因为Linux的运行是运行…

2024智能机器人与自动控制国际学术会议 (IRAC 2024)

主办&#xff0c;承办&#xff0c;支持单位 会议官网 www.icirac.org 大会时间&#xff1a;2024年11月29-12月1日 大会简介 2024智能机器人与自动控制国际学术会议 &#xff08;IRAC 2024&#xff09;由华南理工大学主办&#xff0c;会议将于2024年11月29日-12月1日在中国广…

Linux网络——NAT/代理服务器

一.NAT技术 1.NAT IP转换 之前我们讨论了, IPv4 协议中, IP 地址数量不充足的问题&#xff0c;NAT 技术就是当前解决 IP 地址不够用的主要手段, 是路由器的一个重要功能。 NAT 能够将私有 IP 对外通信时转为全局 IP. 也就是一种将私有 IP 和全局IP 相互转化的技术方法: 很…

【架构】主流企业架构Zachman、ToGAF、FEA、DoDAF介绍

文章目录 前言一、Zachman架构二、ToGAF架构三、FEA架构四、DoDAF 前言 企业架构&#xff08;Enterprise Architecture&#xff0c;EA&#xff09;是指企业在信息技术和业务流程方面的整体设计和规划。 最近接触到“企业架构”这个概念&#xff0c;转念一想必定和我们软件架构…