当前位置:   article > 正文

350道Android面试真题分享,轻松玩转移动AI(1),来一份全面的面试宝典练练手

350道Android面试真题分享,轻松玩转移动AI(1),来一份全面的面试宝典练练手

MLX 的架构如图 3-1-1 所示:

  • Base Infra:提供了诸多基础设施能力支撑上层功能。

  • ML:提供对各类机器学习框架的支持,主要分为 Scheduler、Model Training、Model Serving 三部分,是模型训练和转换的核心能力。

  • Core:开发人员直接接触的主要功能,在算法开发环节 MLX 提供 Notebook、Web Studio 等在线 IDE 编辑环境,支持 DAG Designer 的拖拽模式的工作流控制,更加简单易用。在模型产品化的流程中,覆盖了训练、任务管理、导出、发布等整个链路环节。

  • Scene:在以上基础能力的支撑下,MLX 平台上可以搭建不同的智能场景任务,例如:NLP、CV、GDBT,而 Pitaya 就是其中的新成员。

2. Pitaya

2.1 算法包

Pitaya 将自身的工作流与 MLX 平台特性进行了深度的整合,如下图所示。在传统的端智能开发流程中,云端仅负责模型的输出,能够动态部署下模型。而在 Pitaya 工作流中,“算法包”是一个完整资源的集合。“算法包”包括推理过程中使用到的模型,也包括算法逻辑及其依赖库信息,这些所有的内容被统一打包成为“算法包”。如果客户端同步了算法包内容,且具备算法包运行所需的各项能力,那么就可以在运行该算法包,实现一个完整的推理流程。

图 3-2-1 Pitaya 与 MLX 协同工作示意图

2.2 开发与调试

算法包的开发过程中,可以临时生成测试算法包。通过扫码将宿主 App 与 Pitaya-MLX 平台建立数据通道,推送测试算法包到客户端,通过真机运行和调试算法包,输出的日志信息也会在 MLX 的 IDE 环境展示,从而实现云端调试的完整体验。得益于 Pitaya 与 MLX 深度融合,算法工程师不再依赖客户端工程师进行任何开发,就可以独立完成算法在端上的运行与调试,极大的提升了算法开发的效率。

图 3-2-2 Pitaya-MLX 平台调试流程示意图

2.3 动态部署

当算法工程师完成算法包的调试后就可以将当前项目打包成一个算法包。每个业务场景都有一个当前 App 下的唯一 Business 标识,算法包与 Business 绑定。在 Pitaya-MLX 发布平台可针对某一 Business 业务,从 App、App 版本、OS 版本、渠道等多个维度对算法包的下发进行配置与管理。发布平台还与 A/B 平台实现了数据打通,可以实现无缝的线上实验对比,大大加快业务线上效果的验证。

除了上面提到的常规配置能力,Pitaya-MLX 发布平台还支持对当前设备机型进行性能打分,根据打分的结果来进行算法包的差异化下发。这种部署方式可以更加细粒度的对线上设备性能进行划分,针对高性能或支持某些 AI 加速的设备下发精度更高的模型,而针对性能较弱的设备为了追求更好的使用体验,则部署相对精简的模型。

2.4 特征工程

Pitaya 中一个核心能力就是“特征工程”。端上推理一般需要从原始数据生成输入到模型中的特征,再由模型推理得到结果。如果需要业务方自行收集和保存原始数据,其工作量是巨大的。特征工程的作用就是帮助业务方无侵入式的收集端上的用户特征数据,用于后续的推理预测。Pitaya 特征工程与 Applog SDK(事件统计 SDK)打通,支持在算法包中对推理过程中需要使用到的的 Applog Event 进行配置,当算法包在本地生效时,Pitaya 就可以根据算法包的配置收集数据。同时,Pitaya 也提供定制化的接口,用于关联用户行为上下文,例如:点击、曝光、滑动等。在算法包运行过程中,可以通过特征工程的能力获取用户的原始数据,通过数据的处理生成模型需要的输入数据。这种数据收集的方式较传统链路具备更好的动态性和灵活性,让业务方从繁重的数据处理工作中解放了出来。

此外,特征工程还支持上传指定的数据至 MLX 平台,用于云端的模型训练,形成一个完整的数据闭环,如图 3-2-1。

2.5 算法包的运行

当一个算法包同步到了终端设备后,触发算法包的运行可以有两种方式。

  1. Applog Event 触发:通过算法包配置可以触发运行的 Applog Event,当有监控到有对应 Applog Event 事件时,则会间接触发该算法包的运行。该触发方式是提供给业务方一个通过 Applog Event 触发算法包执行的时机,可在算法包中进行特征数据的提取与预处理等操作。

  2. 主动触发:业务方在合适的场景和时机下主动调用 Pitaya 的接口(下图所示为 Objective-C 上的调用接口),可自定义输入数据和任务配置,在回调中获取推理结果。

- (void)runBusiness:(NSString *)business

input:(PTYInput *_Nullable)input

config:(PTYTaskConfig *_Nullable)config

taskCallback:(PTYTaskCallback _Nullable)taskCallback;

每触发一个算法包的运行实际上就相当于创建了一个任务(Task),Pitaya 内部的任务管理模块会对任务进行统一的接管与处理。算法包是在 Pitaya 的运行容器中执行的,该容器为每一个任务提供独立的运行环境,并通过 Pitaya 提供的接口来进行特征工程数据的存取和模型推理等。Pitaya 对推理流程和接口进行了高度的抽象,支持不同类型的推理引擎的集成(ByteNN、ByteDT、TFLite),最大程度上的满足了不同业务方的使用需求,降低项目迁移到 Pitaya 框架的成本。

2.6 任务监控

为了实现一键集成的使用体验,Pitaya 内部打造了一套对任务进行全面、细致的监控体系。监控内容涵盖以下几个方面:

  • 指标监控:任务 PV/UV、成功/失败、算法包下载成功率/覆盖率

  • 性能监控:内存、各个链路阶段耗时、初始化耗时

  • 异常监控:任务卡死、失败原因、网络请求失败

Pitaya SDK 将以上指标进行了分类整理,依托于 Slardar 平台的数据展现能力,每个集成业务方都可以一键复制模板,在宿主 App 内建立完善的数据看板,真正做到开箱即用。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

总结

【Android 详细知识点思维脑图(技能树)】

image

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号