2022VIVO-Android提前批一面

  • 自我介绍
    简单介绍下学校学院专业,研究生研究方向,实验室负责工作。

  • 做过什么项目
    安徽省科技重大专项 基于视频脉搏波的心血管疾病检测关键技术与系统,主要负责Android端的开发。

  • 主要负责什么部分,实现什么功能
    然后解释了下项目的原理功能和具体实现:首先采集人皮肤区域的视频,然后对采集的视频进行图像处理,提取面部表皮底下细微的颜色变化,我们叫做BVP(Blood Volume Pulse,血液容积脉搏波)信号,然后用算法对脉搏波进行处理进一步获取一些心血管的参数如心率和心律不齐的指数等参数。我主要实现的是Android端Camera的采集搭建人脸识别(人脸检测更准确),还有就是算法的提取脉搏波的降噪处理,可以使算法更鲁棒。

  • 负责的部分主要用到了什么安卓技术栈 ––进一步提示四大组件
    一开始有点懵,不知道回答什么。。。提示之后,我就说了四大组件里,除了Service没怎么设计其他全都有包括ActivityFragment等等,因为我们主要的功能都还是在一个页面实现的。

  • 实验室密研项目还是商用项目,上线之后有没有遇到什么问题
    提到我们现在还在研发阶段,但是我们实验室是想要推广开来当作商业项目运行的,我们开发的目前的版本是已经上线了华为的应用市场。
    提到上线后,目前用户量还不是很大,技术上遇到的问题还不是特别多。主要问题是实验室开发以功能为主导,可能就没有很好考虑到用户使用情况。然后举例子实验室测试流程,从来没有注意到用户在拒绝权限之后导致的app无法使用和有些控件点击后会导致app崩溃的情况。

  • 进一步用户权限没有授权你们是怎么处理的,权限是不是动态申请的
    上线的版本,首先第一个确保的是在没有授权应用权限的情况下是一定不可以崩溃的,其次我们会在拒绝权限之后,进行弹窗提示拒绝权限会导致应用无法使用。之后在使用到必须权限开启的功能时,再次进行权限申请。如果多次拒绝之后无法继续申请,则在开屏时就进行提示。
    动态申请权限的技术细节。。。

  • App的开发主要是谁在参与,团队总共有几个人,谁在里面充当产品经理角色
    团队10人左右,因为我们还有别的产品类型比方说嵌入式等等,App这方面的开发主要是我负责;(产品经理这个角色我们平时确实也没有,如果有的话可能就是导师了吧哈哈,我是真的不知道怎么回答),我就说遇到项目导向问题,我们都是项目组协商决定的。

  • 隐私政策问题,获取的数据怎么进行存储的
    很实诚就说上线需要的隐私协议,我们是基于网上的模板然后嵌套进我们可能涉及的敏感隐私,因为我们的涉及人脸,我们会特别强调本应用只涉及到面部提取颜色变化不会采集也不会拍摄用户的人脸信息。(回答完我才感觉好像回答的不是面试官想问的,估计是想问用户安全和加密方向的问题,没追问我也就没说了哈哈。)
    然后提到我们也是个前后端分离的项目,我们还有个远程服务器专门进行数据的存储。视频本地处理好之后会将获取到的BVP一维信号和其他一些参数信息转成String打包传输给服务器存储,本地只涉及一些用户信息的临时存储。
    追问:主要实现都是本地实现的是么?
    是的,主要的算法流程是本地实现的,存储和有些图表的展示的数据我门都是去服务器再去抓取该用户的一些记录进行展示。

  • 用户反馈怎么获取,测量不准等—进一步怎么不断去迭代产品
    一开始没理解意思,以为测不准我们怎么处理。我就说了我们目前会更具采集到的信息进行综合的分析比方说计算信噪比,判断当前环境是否满足检测条件或者检测结果是否可信,如果噪声比较大我们会进行弹出提示,当前环境不可以在建议他使用指尖接触时检测或者是多次检测取平均值之类的。
    其实人家想问的是有没有反馈的渠道,然后我就说了设计的有反馈,首先是每次的检测结果,用户都可以自定义备注,比方说感觉检测不准,或者那里不适等等。然后应用里还有专门一个反馈的功能,可以对检测结果和app的设计等等进行建议,然后为了保护用户的隐私,这个反馈也是匿名的,我们只保存用户的昵称不会去记录用户的具体信息,但是用户如果愿意留下自己的联系方式或者邮箱也是可以支持的。

  • 学校里除了上课,有没有学习一些额外的课程或是技术栈这个就没啥好说的,体现自己好学就行,看博客看网课看开源代码。

  • 自学的学习心得和学习方法,学活怎么做之后有没有自己去了解底层的原理
    先上手,不会再去查,比上来就死钻基础只是要快速;
    先上手,学会使用之后是有去看一些技术的实现原理的,然后举例比方说hashmap的底层实现,为什么链表转红黑树之类的。(给自己挖坑了,后面问具体Hash算法没了解过)

  • 项目组意见不一致怎么解决,会议效率很差的时候怎么解决
    这个我就说遇到的问题,比方说算法上有不同意见,我们就实际测试,用事实说话,测试出来谁的效果好就用谁的;
    估计因为我提到开会讨论,然后开始询问开会效果差怎么解决。我这个一是实际确实没碰到过,然后也没考虑过。我就开始想,怎么让大家认真对待会议,然后我提了首先开会要大家首先准备,比方说关于会议议题的想法,然后会议上依次发言避免大家你一言我一语,最后集中讨论。

  • 列举一款你觉得最成功的app,你觉得它好在那里
    当场想的,想到之前苏星河做的夸克浏览器,然后说我觉得除了功能之外,夸克的美工设计和每个入口的设计都特别符合人的直觉,符合直觉的设计才是好设计,用户学习成本低,如果一个app要通过很复杂的知道才能让用户学会使用就不是很好。

  • Hash和Hashmap区别,hash算法可逆么,Hash算法有哪些,md5算法
    Hash是算法,Hashmap是一种kV键值对维护的存储结构;
    坑来了,压根没有看过具体的hash算法有哪些,可逆么?应该是不可逆的,md5算法具体一点也不知道,然后我就提了我项目使用过,配置一个md5的密钥用来实现第三方功能但是具体实现没了解过。
    然后面试官又问可不可以破解,我觉得既然商用肯定不可以破解。然后面试官说,md5比较害怕撞库,我就说装库了解一点,说的是窃取低安全性网站上密码去尝试破解高安全性网站。(好像也不是面试官的意思,反正大概至少我知道撞库原理)

  • 文件系统里面怎么找到一个最大的文件
    这个好懵逼,不知道问的啥。是Android里面么,还是说win或者linux这种操作系统,(我也不敢问),我就默认说的在Android下,遍历文件夹文件,然后获取文件属性进行比较判断,可能效率不是很高之类的,过。

  • 多个sdk接口不一致,怎么设计兼容性
    加一层,对接协调这些接口,然后调用加的这一层来实现。

  • 反问
    目前vivo安卓端开发主要涉及的技术栈有哪些。

总结:vivo的面试还是比较简单的,感觉面试官对我的经历还是比较认可的,有好几次比方说我提到的我门遇到的资源受限的开发还有撞库的原理,面试官都比较满意。一面问的项目比较多,然后技术细节其实不是特别多,还设计一些团队合作相关的。

你可能感兴趣的:(Java,Android,总结,安卓,面试,java)