粉丝1084获赞3193

有学员问我如何开发一个 sdk, 不光你工作当中你会用到,去面试的时候可以把从零到一设计开发一个 sdk 作为一个项目的亮点和难点和面试官去探讨。首先说一下我这个代步 是以外派克五为例啊,这个是详细的一个创建外派克项目的一个步骤,不去细讲了,可以看这个文档,这个是创建好的 sdk 的一个项目。首先最重要的点是在这个外拍配置里面的阿乌特普特,这个配置就是生成了这个 sdk 的名字就是 dwsdk, 它是 umd 的,还有这个 report, 它是 default 这个 global, 这个选项就是支持这种靠面接着的写法。这一炮的地方呢,就是防止我们在 引入的时候会有一个地方的这个入口文件里面我定了一个类,其中添加了这个爱的方法,可以去打包,打包完之后会会生成这个 sdk。 键盘二里面去引入这个 sdk。 如果我们在卡拉包当中用到第三方的库怎么处理这个地方我已经用了这个第三方的库添加了这个方法。我们在 wifi 的配置里面,这个地方我不做任何更改,我去打包 看一下这个打包出来的这个 idk 文件,它已经把这个第三方的库揉到里面了, 这地方可以直接使用他的这个方法,把这两个速度进行合并 测评之后这里打印调用连接方法打印出来的,显然这种方式不是最优的。我期望这个打包出来的 dk 不应该包含第三方的库的代码,这时候我们在代码里面可以做一下这个配置,在这个配置如果你不知道什么意思啊,我们可以借助一些插件, 比如说为选中的代码生成注释,打包出来的这个 idk 就是我的纯业务代码,如果我要用的话怎么办啊?需要外练一下这个 gs 这个库, 一般的开发出来的 dk, 他支持这几种引入方式,静态资源的引入 amd 的, cmd 的,还有 es 六的,如果有需要代码的可以评论区留言。

单片机海思 z y m q 七零二零这三个板子是我们从学习庆市开发从入门啊到这个这两个就算是进阶了 啊,这两个板子没有谁好谁坏谁差之分,虽然都是 linux 的板子啊,但是他们所完成的任务所干的事情是不一样的。首先这个单片机的板子呢,就是 mcu 通常用一些常用的控制,他的这个开发周期,开发难度和这个成本都是非常低的 啊,在一些啊对速率要求高的场合用这个单品机是非常合适的,这个单品机的产品在我们日常生活中有非常非常多的应用。然后这个海思板子呢,在上一节上一个视频中,我们也介绍到了它的功能和作用,今天重点说一下这个这个板子,这个板子呢就是正面原子,然后集成开发的,然后这是嗯, 美国赛林斯公司生产的一款啊芯片。 z one n q 七零二零这个板子它有个最大特点是它一个芯片上,就是这 芯片上,就这中间这个方形芯片,这个一个芯片上它既集成了有 f p j a 盒,还有两个 m 盒,也就是说我们在这个板子上既可以进行的 b j 开发,也可以进行 m 开发,所以说这个板子是非常强大的,尤其在这个数据处理方面, 他有他优势,是其他一些板子所不能比拟的,但是也并不能说他就比我们的孩子厉害啊,这孩子在图像处理方面他也是有他非常强势的地方,所以说他们这个应用不同领域不同,所干的事情不同。

好嘞,同学们,我们开始上课了啊,这节课呢,我们继续讲从 am 到 ai 视觉啊。首先呢,非常欢迎大家来到海归博士 doctor 味的高密香, 之前说过我们为什么要用高密香啊,是在这里,我想创建一个属于自己的技术、教育、哲学与生活的自留地啊,因为之前学了很多知识,对这些知识呢,没有形成一个完整的体系。 现在呢,我通过创建自己的高密箱,对这里的所有东西都非常的熟悉,创建一个属于自己的啊,完全属于自己,自己说了算的一个一个世外桃源吧。好吧,哎,这系列的课程呢,是从 arm 到 ai 的 视觉, 具体落地的时候使用的板子是基于 r v 幺幺二六 b 的 一个嵌式 ai 的 开发板。好嘞 啊,第一节课呢,我们讲了介绍了一下什么是侵入式系统,什么是 ai, 也就是阿特菲斯 intelligence 人工智能。第二节课呢,我们主要是进行了一个开发环境的搭建,把这个虚拟机啊,什么东西先整起来, 这一步呢,我们要进行 sdk 的 翻译啊。好嘞,那首先介绍一下什么是 sdk 啊, 全程是 software development kit 翻译过来叫做软件开发工具包, sdk 这个概念有可能同学们在学五幺单面级啊,比较低级的那些,那些控制器的时候肯定是没听过的。 那 sdk 是 芯片厂商提供的一整套软件开发工具与基础代码,用来帮助开发者快速完成从系统启动、驱动适配到应用开发的全过程。 为什么?为什么需要?简单来说就是我们这个系统复杂了,复杂的东西啊,他需要一层一层的抽象出来,你不可能从最底层一点一点搭建,太浪费时间,也很难。我们就使用别人已经做好的一些东西, 有什么用呢?方便我们进行应用程序的开发。大家要记住啊,我们的,我们的角色是作为一个应用,哎,程序的开发者主要是这样来的啊,我们是拿他的东西来做我们需要的产品,所以呢,我们就需要 sdk 啊, 那 s、 d、 k 能具体有什么作用呢?有这么三个作用,第一个作用是解决能够启动的问题,就是把这个板子,把这个系统给刨起来,是能启动。 第二个解决的东西是能够驱动,驱动什么呀?驱动一些外部设备,好吧。第三层是什么?是最后做产品,就比如说比较高级的一些产品, ai 的 推理啊,视频的编辑码啊,这些东西啊,我们分别来详细的介绍一下。第一层能启动, 那有哪些东西呢?比如说 boot loader, kernel, root, fs。 第一次接触 am 的 同学有可能对这几个概念不是很了解,我们先说一下什么是 boot loader, boot loader 是 一段引导加载程序,比如说我们的系统上电了, 操作系统还没有完全运行起来,那我中间就有个东西叫做 boot loader, 你 得先运行这个 boot loader, 后面的系统才能跑起来。 boot loader 就是 设备上电后最先运行的引导程序,负责出使化硬件呀, 加载操作系统呀,并且把系统真正的启动起来啊,我们常用的一个,呃, boot loader 叫 universal boot loader 啊,是最常用的一个啊。 第二个东西是科脑,科脑翻译过来呢,叫做内核,是操作系统的核心,负责管理硬件资源,并且为上层应用呢提供运行环境,这叫科脑。第三个叫 root f s f, s f 呢,代表 file 文件, s 呢? system 文件系统,简称 fs, root 是 根的意思, root fs 就 叫做根文件系统,是 linux 启动后最基础的用户空间环境 啊。这东西,这东西最终的作用是干嘛?什么?就是让我们的开发板,让我们的系统能够跑起来,这是它的作用。 第二层呢,是叫做能驱动。驱动是什么?上节课我们讲过,所有的硬件设备都有驱动程序, 对不对?哎,之前咱也说过啊,不可能不存在,没有的啊,有的说说免驱动,那叫免驱动的安装,是你的摄像头插上去能 能好好用,他自己把这个驱动程序给安了,哎,这叫免驱动安装,但是都有驱动程序,那我们哪些东西需要驱动程序啊?比如说我们这开发版上,比如说有 l、 c、 d 液晶显示屏,有触摸屏,有的时候同学们就这不一个东西吗?怎么是两个东西啊?不对, l、 c、 d 呢?是一个输出设备,哎,它能够显示出这些图片,这像素点,让我们看那触摸屏是什么? 触摸屏是一个输入设备,它往往是透明的一层薄膜,把这个触摸屏盖在 l、 c、 d 上面, 表面上看上去它好像是一个设备,实际上是两个,一个管输出,一个管输入,是不是啊?哎,呃,摄像头啊,哎,这是一个输入设备是吧?音频啊,网卡, usb 啊,这些东西,我们要把它给驱动起来,是不是?驱动的本质要就是让内核能够认识硬件, 哎,然后驱动程序呢?能够为顶层的应用程序 application 提供一些接口,明白了吧?就如果没有驱动程序,硬件即使接上去了也是无法正常工作的。 第三步就是做产品了,更高一层了。高一层干嘛呢?为什么需要 sdk 啊?哎,如果没有的话,我们做顶层的这些 ai 程序的开发就会非常的麻烦啊,比如 ai 推理啊,音视频编码啊,编辑码,图像处理啊, isp, isp 上节课我们说过叫 image signal processor 图形信号处理器,是不是啊?这些往往是厂商最有价值也是最依赖 sdk 的 东西,这一层最接近最终产品,也是用户真正能看到的功能。前面两层解决的是这个系统能不能跑起来, 这一层解决的是什么?能够做什么?那些高高大上的东西能够做什么?做得好不好,对不对啊? 哎,那我们详细介绍一下 sdk 的 翻译到底需要哪几个过程啊?之前跟大家说过我的课程呢,不仅仅讲理论,我们是理论与实践相结合,正所谓实践是检验真理的唯一标准。现在很多人呢,都是说白了吧。呃,只会理论,不懂实践, 他一碰到实践的东西他就不敢碰,为什么他解决不了啊?真正的价值就是来自于实践,实践出真知。好吧,实践出真知,同学们一定要学会实践。 s、 d、 k 的 编辑呢?包括这几个过程,第一个是拷贝,第二个是解压,第三个是剪出原码,第四个是配置,第五个是编辑。我们分别详细说一下第一步。哎,使用一个软件叫什么呀?哦,我再回去不好意思啊。啊,在这里。 这什么使用 file z 了?这个 file z 了有什么用呢?是可以将 sdk 的 包从 windows 拷贝到 linux 里面啊。哎,第二步是什么呀? 第二步是使用 ter 指令进行解压缩啊,进行解压缩 ter 呢?有可能同学们是第一次接触啊,它是一个常用的打包与解包的工具。那 ter 进行打包的时候使用的是什么指令呢?是 t r 杠 c v f 这里的个 c 啊,表示的是创建一个打包文件 compress, 我 要对这个文件进行打包。 c, 这个 v 呢,表示的是显示打包的过程。 f 呢,后面表示跟的是文件名,后面这个 text 的 点 t r 呢,是我们打包完事之后 起的名字,叫做 test 点 t e r, 你 可以起自己的名。后面的这些文件或者目录啊,就是要被打包的那些东西,哎,这个指令就是一个常见的非常实用的打包的指令。好吧, 在这里呢,我们用的是解包的这个指令。解包是用什么呀?也是用 t e r, 只不过后面是跟的是杠叉杠 x, 杠 x 就 代代表的是解包。 哎,解这个包,把这个包给解了就完事了。这个之前的时候啊,一些老式的这系统里面还给了个 z 啊,是,后面如果是一个 j z 结尾的,我们可以用 z, 在 这是老式的,我们就不用管了啊。 下一步就要进行什么?安装一些依赖库与工具。首先要使用 apd get 指令, apd get 是 linux 里面最常用的一个软件包的管理命令, 比如说,我想对这个,呃,这些软件,呃,我更新一下把这呃,这版本啊,都更新到最近的,我们使用什么指令啊?是 a p d get update, updates 是 更新一下,上节课说过 student 呢,是 sweet 呃, super user do, 使用超级用户 的权限来执行某些命令,类似于我们的管理员权限。好吧,下一个呢,是属于用 a p d 盖的 install install 呢,就是安装安装那些包啊。哎,同学们如果看到的话,这里有些斜杠。为什么有斜杠?就同学们,呃,就比如说我要写一个那个文档的时候 会进行复制,复制的这个东西很多呀,这条指令很长,复制到 word 里面,它不就换行了吗? 换行,如果同学们直接复制的时候,啊,会出现错误啊,他中间相当于换行,他有个换行服务,你直接执行的时候,他就当成了多行指令,那是执行不成功的,所以他加了这个斜杠,相当于这些东西啊,是一条指令,明白一条指令。好了,安装了这些依赖的库和工具之后,下一步是什么?下一步是使用 这个 repository 啊,点 s h, 这是一个脚本,剪出原码。这个剪出原码是什么意思啊?是把 s d k 所有需要的源代码按正确的目录结构和正确的版本下载并展开到本地。如果举一个形象的例子的话,类似于厨房备菜, 你想编辑那是做菜,那备菜呢?哎,就是使用这个剪出原码,我把需要的东西给拿过来,这就叫剪出原码,类似于一个厨房备菜的过程。下一步呢是执行一个必要的一个脚本 launch, launch 是 选择版级的配置文件, 是给哪一块板子用哪一套系统,按哪种硬件参数去翻译。类似于点菜前先选的套餐,你选好哪个种套餐呀?是用这个。最后呢是执行 build, 点 s h 进行 s d k 的 全自动翻译,就开始做菜了,明白了吧? 啊,好了,我们下一步啊,好了,翻译的过程呢,需要大约两三个小时的时间,还是很久的啊啊,最后如果出现了 succeeded 啊,就成功了,最后什么憋 o succeeded 就 成功了。如果同学们在上一步的时候没有安装那些库啊, 没有安装一些工具啊,它会报错,报错的话呢,你就把那些库和工具安装好了之后,然后再执行一下就可以了。好吧, 那编辑完事之后,我们生成了哪些文件呢?我们看一下。第一个文件呢叫 update, 点 image, 这是一个呃全家桶啊,所有东西都包括了最终的整包的固件啊,最常用的那些烧录文件都在里面。 第二个文件呢叫做 mini loader, 这个 mini loader 相当于是在 boot loader 之前的一个文件,叫做是前机加载器,负责呢,把最前面的加载启动,类似于先进先把厨房点火,把灶台启动起来,好吧。另外一个文件呢叫做 u boot, u boot 的 image 是 u boot 的 镜像文件 universal boot loader 是 启动过程中的关键引导部分,类似于正式做菜前的关键准备环节。 bug, 点 image 呢,就是我们的内核了,内核启动镜像就是主菜啊,主菜开始下锅 root fs 前面咱讲过是根文件系统,根文件系统啊,这 parameter 呢,就是一些参数,好吧,这就是生成的一些呃,文件 sdk 进行编印生成的文件啊。 好嘞,这节课呢,我们就讲述了一下 sdk 的 翻译下一步要进行什么,就是真正的 ai 程序的侵入式开发了,我们就从系统的翻译走向模型的部署,部署什么就部署到我们的开发板上, 从开发版的启动走向视觉的推理,从学会使用 s d k 到真正做出 ai 产品啊,就同学们要慢慢的进阶啊,最后同学们会成为一个真正的切入式 ai 开发的高手。好吧,接下来呢,我就把这些东西啊给大家演示一下,好吧,咱 第一步是打开 vmware workstation 这个软件,这个叫什么来着?上节课跟大家说过,是虚拟机软件对不对啊?打开了,在这里,哎,如果同学们,哎,这个关键就行了啊,这里开启虚拟机就可以了啊, 稍等一下,因为这个启动的时候啊,他有的时候比较花时间啊,就在学校的时候好像跟大家说过,在学校的时候,那个破电脑启动花个十分钟,没那么夸张了,五分钟是有了, 好密码是一二三四回车啊,这是正点原子的,还是推荐一下,大家如果想学习的话,去正点原子的官方网站,淘宝,京东都有买他们的开发版,好吧,嗯, 好了,在这里我们第一步呢是在终端中打开,打开这个小框,然后我们想把那个呃正点原子的东西拉过来,是使用 plc 了,在这里啊, plc 了, 先连一下文件站点管理器,哎,这是它的 ip 地址,用户名密码连接就可以了,连接了之后就出现了这个框了,好吧,然后呢,我们找到正点原子,但正点原子的在这里, 哎,它这开这开发环境是我们上节课搭建了,是不是这 s d k 呢?在这里,进去之后呢,你这是一个 tr 点 g z 的 文件,你把它给拖过来就行了。把这个东西一拖,拖到这里就行了 啊。传输,有可能传输那么几几十几秒吧。多少秒啊?有六个 g, 传输的过程还需要那么一分钟吧。好吧,直接把它拖过来就行了。我这因为直接传过来了,我就不不演示了,就直接拖过来,摁着拖过来就行了。很简单啊,拖过来之后,你在这里, 这里稍微变大一点。哎,看得清楚是吧,同学们,看清楚了啊, list 一下,哎,还记的话, list, 哎,不是这个啊。 cd 一下,先回到上一层目录,这个波拉号呢,代表的是加目录啊。 加目录?我们在什么目录可以看?前面这个就是加目录下的 desktop 目录。这什么目录呢?我们用 print working directory 打印一下当前目录就看出来了。这个 home 下的 enigma 目录就是它的加目录。好吧, 然后查看与什么文件,叫做 list, 哎,这个 atk, 这个红色的,哎,大家记得啊,在 linux 操作系统下,它是用颜色来区分不同的文件类型啊。 atk, 这个红色的就是刚才我拖过来的压缩包,使用 t a r 指令杠叉 v f, 然后 atk, 哎,这个东西啊,点啊。 好嘞,你回车一下,它就把这个东西把这个压缩包进行解压缩了啊,解压缩了,只不过我已经解压缩了,我就不执行了,到时候同学们执行一下就可以了。 ok, 执行完事之后就生成的是这个红色的目录。好吧, cd, 我 们进入这个目录,类似的一下,这里面的文件是不是太大了,同学们看着是不是太大,也也也不太舒服?这么这么大,应该还可以哈。哎 哎,有这么多文件,是不是这个目录下有?这当然刚开始的时候没有啊,我这编辑完事之后生成了很多新的啊。同学们支撑是执行什么来着?第二啊,不是 点杠当前的 rappers 去点 s h 是 不是啊?当然你这个再执行一下也行啊。这个,呃,执行了它,所以就是已经是这个版本了。东它都是 successfully, 如果同学们第一次执行呢,有可能是蹦出多少行啊。这没问题啊,下一步呢是点杠 build, 然后运行 launch 是 吧。在这里呢,我们就是 选择那个配置文件,选择配置文件,同学们选择的时候直接选择一就可以了。好吧,选择一就行了。这是如果你不知道的话。这 mate 呢是摄像头的意思啊。这摄像头啊,你选择一就可以了。好吧,这是选择配置文件。 哎。完事之后最后呢就是点 build, 点 s h 啊,进行 s d k 的 编辑就行了。我这编辑过了,编了两三个小时,因为录视频嘛,我肯定提前编辑了,要不然的话在这我得等两三个小时。还得录两三个小时,那文件太大了,没必要是吧。所以呢,我就已经执行过了啊,我就在这里不执行了。最后 最后完事之后同学们就长这个样啊。这样的话就是变异完事的成功了好不好,好不好。呃,基本上这就是 sdk 的 变异了。呃,难度也不大。同学们有没有什么问题啊?好像没什么问题是吧。没什么问题啊。好嘞,我看看啊。 好嘞,那没什么问题的话。哎呀,这就不能给同学们互动哎,这是不太习惯哎,还是喜欢有有真人面坐在对面真人互动,那还是非常有意思的。好吧好嘞,那我们就讲完啦, 同学们加油哇,这些这几节课呢,都是比较基础的呃,一个环境的搭建呀, sdk 的 编一啊,难度不是很大。好吧,然后下节课呢,我们就开始步入这个真正的 ai 程序的开发了。好吧,呃,欢迎大家关注 海龟博士 doctor way 的 高密香。好吧啊,在这里哎,希望大家关注。好吧,拜拜。再见。 see you。

一天一个计算机知识,今天要讲的是 sdk, sdk 是 什么?它有什么用呢?想象你是一家游戏开发公司的老板,你想开发一款跨平台的角色扮演游戏,游戏要在手机、 电脑等多种设备上运行,但不同的设备系统,像安卓、苹果的 ios 系统,还有 windows、 mac 系统,它们的开发环境和接口都不一样。 如果让你的开发团队从头开始针对每个系统去编辑适配代码,那工作量简直是个无底洞,而且还容易出错,开发周期会变得超级长。这时候问题就来了,有没有一种办法能让开发团队更轻松高效地开发出跨平台的游戏呢?答案就是, s d k。 本地开发工具包我们先从简单的场景说起。假如你只开发一款在安卓系统上运行的小游戏, 安卓系统本身提供了很多功能,比如拍照、访问、通讯录等,但你要使用这些功能,就需要了解安卓系统底层的各种接口和编程规范。这就好比你要去一个陌生的城市, 你得知道这个城市的各种交通规则和道路信息。为了让开发者更方便地使用安卓系统的功能,安卓官方就提供了一套工具包,里面包含了各种开发所需的文档、 视力代码、调试工具等。这个工具包就像是一本详细的城市旅游指南,开发者拿着它就能快速上手调用系统的各种功能。这种针对单个系统或平台,为了方便开发者使用该平台功能而提供的工具包就是本地开发工具包。 有了本地开发工具包,开发者就不用再去深入研究系统底层的复杂细节,开发效率大大提高。通用软件开发工具包当你要开发跨平台的游戏时,本地开发工具包就不够用了, 因为不同平台的本地开发工具包是不一样的,你还是得针对每个平台去做开发,这时候就需要一个更强大的东西,那就是通用的 s d k。 通用 s d k 就 像是一个超级翻译官,它把不同平台的底层接口和功能进行了封装和统一。开发者只需要使用 s d k 提供的统一接口, s d k 就 能自动把这些接口翻译成对应平台能理解的代码。比如你在 s d k 里调用一个拍照的接口, s d k 会根据当前运行的平台, 自动调用安卓或者 ios 系统的拍照功能,这样开发者就可以用一套代码在多个平台上实现相同的功能,大大减少了开发工作量和难度。 s d k 的 功能扩展除了基本的功能封装和统一接口, s d k 还可以有很多扩展功能。 比如有些 sdk 提供了广告功能,在你的游戏里集成这个 sdk 后,它可以自动在合适的位置展示广告,为你带来收益。还有些 sdk 提 供了社交分享功能,玩家可以通过 sdk 把游戏里的精彩瞬间分享到社交媒体上,吸引更多的玩家。这些扩展功能就像是给 sdk 穿上了一层华丽的外衣,让它变得更加实用和强大。 sdk 的 维护随着技术的不断发展和平台的不断更新, s d k 也需要不断的更新和维护。就像你买了一辆车,过一段时间就需要去保养和升级, s d k 的 开发者会不断修复漏洞,优化性能,还会增加新的功能。作为使用 s d k。 的 开发者,你需要及时关注 s d k。 的 更新信, 把你的应用、你的 sdk 升级到最新版本,这样才能保证应用的稳定性和功能的完整性。 sdk 是 什么?好了,到这里我们就知道了, sdk 就是 软件开发工具包,它是一系列开 发工具、文档、势力代码等的集合,它的作用就是让开发者更轻松高效的开发软件,尤其是跨平台的软件。通过 sdk, 开发者可以不用关心底层的复杂细节, 只需要使用统一的接口就能实现各种功能。 s d k 在 很多领域都有广泛的应用,除了游戏开发,像移动应用开发、互联网开发等都离不开 s d k, 现在大家懂了吗?最后遗留一个问题, s d k 虽然好用,但在集成和使用过程中也会遇到一些问题,比如兼容性问题、安全问题等。下期我们聊聊如何解决 s d k。 集成过程中的这些问题,如果你感兴趣,记得持续关注。

各位开发者是否在为广告接入的技术选型头疼?选错方式,上线慢、填充率低,数据监控难?今天我们从开发成本、控制力、变现效率三个核心角度帮你理清 h 五、 a p i s d k 这三种主流方式。一、核心差异, 如何选择? h 五、向租摊位快,但管的少,赚的少。 a p i。 向自己开工厂,控制强,但成本极高。 s d k。 聚合 向聘请专业管家,省心高效,收益有保障,是大多数开发者的首选。二、 h 五,接入快,但天花板低是什么?在网页或 web 中嵌入广告代码,适用临时活动页,轻量。 h 五、应用。优点,接入极快, 短板收益能力弱。 e c p m。 低,数据不清晰,体验不稳定。结论,仅做补充,不适合作为 app 主变现方式。三、 api 接入高自由高门槛是什么?通过接口获取广告原材料,需自行处理所有展示逻辑。 优点,控制力极强,可深度定制。缺点,成本极高,需专门团队维护,对中小团队负担重。结论,仅适合有成熟技术中台的大厂或极端定制化场景。四、 d k。 聚合接入绝大多数开发者的优选 是什么?集成一个工具包,自动对接多家广告员,并智能进价。三大优势,一、开箱即用一次集成接入多个平台,效率高。 二、收益有保障,通过实时进价抬高价,智能缓存提升填充率。三、数据透明,后台提供完整报表,清晰直观。 注意选择时关注 sdk 包大小,避免影响 app 性能及隐私合规性。五、决策指南,根据阶段对号入座,初创验证期日活一万首选 sdk 目标是以最低成本快速跑通模型增长优化期,日活一万负五十万。深耕 sdk k, 在 此基础上做精细化运营与策略优化。成熟突破期,日活五十万,且有强技术团队, sdk 为主, rpi 为辅,用 sdk 保核心收益稳定,对极高价值场景用 api 做定制突破。最后总结 技术,因为业务服务,强烈建议从成熟的聚合 sdk 起步,先稳定跑通从零到一的变现闭环,获得真实收益与数据。待业务增长、团队能力提升后, 再考虑是否需用 api 进行更底层的从一到十的突破。

各位开发者是否在为广告接入的技术选型头疼?选错方式,上线慢、填充率低,数据监控难?今天我们从开发成本、控制、理变现效率三个核心角度帮你理清 h 五、 a p i s d k 这三种主流方式。 一、核心差异,如何选择? h 五、向租摊位快,但管的少,赚的少。 api 向自己开工厂 控制强,但成本极高。 s d k。 聚合向聘请专业管家,省心高效,收益有保障,是大多数开发者的首选。 二、 h 五,接入快,但天花板低是什么?在网页或 web view 中嵌入广告代码,适用临时活动页清亮。 h 五、应用优点, 接入极快,短板收益能力弱。 e c p m 低,数据不清晰,体验不稳定。结论,仅做补充,不适合作为 app 主变现方式。三、 api 接入 高,自由高门槛是什么?通过接口获取广告原材料去自行处理所有展示逻辑。优点, 控制力极强,可深度定制。缺点,成本极高,需专门团队维护,对中小团队负担成。结论,仅适合有成熟技术中台的大厂或极端定制化场景。 四、 s d k。 聚合接入绝大多数开发者的优选是什么?集成一个工具包,自动对接多家广告员,并智能竞价。三大优势, 一、开箱即用一次集成接入多个平台,效率高。二、收益有保障,通过实时竞价抬高价,智能缓存提升填充率。 三、数据透明,后台提供完整报表,清晰直观,注意数选择时关注 sdk 包大小,避免影响 app 性能及隐私合规性。五、决策指南,根据阶段对号入座,初创验证期日活一万。 首选 sdk 目标是以最低成本快速跑通模型增长优化期日活一万负五十万, 深耕 sdk, 在 此基础上做精细化运营与策略优化。成熟突破期,日活五十万,且有强技术团队, sdk 为主, ipi 为辅, 用 s d k 保核心收益稳定,对极高价值场景用 api 做定制突破。最后总结技术,因为业务服务,强烈建议从成熟的聚合 s d k 起步,先稳定跑通从零到一的变现闭环,获得真实收益与数据。 待业务增长、团队能力提升后,再考虑是否需用 api 进行更底层的从一到十的突破。

昨天面了一个五年经验的前端架构师简历写,精通前端工程化与构建优化。我问他一个真实项目场景,你们团队接入了三家 ai 服务商的 sdk, openai cloud, 还有国内某家, 每个 sdk 体积都超过两百 k, 但页面实际只用到了其中一个模型。用户打开页面要下载六零零 k 的 ai 代码,你怎么把这些没用过的模型适配层代码移除掉?他脱口而出,用 tree shaking 啊 wi pad 配置一下就行。我点点头,问,那如果这三个 s d k 的 实配层是通过动态导入分文件写的,但某天产品说需要支持运行时切换模型,你为了保证切换速度,提前把所有 s d k 代码都打包进 chunk, 那 tree shaking 还管用吗?他愣了一下, 那就用 code splitting 单独拆出来。我追问,拆出来就能解决问题吗?如果用户只用了 open ai cloud 的 代码,还是被下载了,你怎么做到按需加载加彻底移除未使用的实配代码配置 external? 还是用 bell selection import 的 手动干预? 他沉默了,面试到这就结束了。很遗憾,这正是 a i s d k 时代前端工程化的典型陷阱。很多人知道 tree shaking 和 co splitting, 却不知道他们在动态选择运行时切换模块副作用场景下的失效边界, 更不知道如何让打包工具真正感知哪些模型代码永远不会被执行。如果你也对这问题不了解,我整理了让大场面试官沉默的必考题库,包含 v o 灵魂拷问、 webpack 五、高频陷阱、 rust 工具链、十连问点个赞,评论区甩六六六直接爆走。 为什么这个问题能筛出高手?因为它考察的不是会不会配 optimization, 而是有没有理解静态分析 vs 运行时动态的冲突。一个能真正驾驭 asdk 按需加载的前端,必须建立三层认知。 第一层,理解 tree shaking 的 死角。 tree shaking 基于 esm 静态分析,它只能移除确定未被引用的导出。但如果你的代码里通过 u 二 l 参数拿到当前模型名称,再用一个三元表达式或对象映射去选择适配器,比如模型等于 a 就 用 a 适配器等于 b 适配器 打包工具会认为两个分支都有潜在可能全部保留,这叫不确定性引用,你配置了 used exports 也没用。第二层, code splitting 的 力度陷阱。很多人用动态导入的语法写一个模板字串路径,比如 import, 看上去很美好, 实际上 webpack 会把整个 adapters 目录打成一个异步 chunk 用户选 openai cloud 的 代码还是会被下载,因为动态路径无法静态分析。 解决方案显示地把每个模型适配器写成独立的动态导入函数,比如分别定义加载 open ai 的 函数,加载 cloud 的 函数 再配合路由或状态机按需调用其中一个。第三层,副作用与 polyfill 的 隐忧。 aisdk 通常包含大量 polyfill, 这些代码即使从未被调用,只要模块被 imported 了, tree shaking 就 不会移除,因为构建工具保守认为可能有副作用。 你需要用包配置文件里的 side effects 标记为 false, 或者手动给工具函数加上纯注示,甚至用构建工具里的模块规则来强制剔除,这就是工程化深度。同样一个问题,有人只会被 tree shaking 摇掉,未使用代码。有人能聊到动态导入的魔法注,示, side effects 的 传递机制模块联邦的远程加载持续。 最后,我问那个后人,你现在觉得自己真的精通前端工程化了吗?你面试时被问过最深刻的打包优化问题是什么?

大家可以看到这就是我们这个 nps 开发版,这个可以说是我们正点原子做过的所有版卡里面最复杂的一个版了,因为这个版卡经历了这个差不多二十个月的一个开发,才做出来,非常的艰辛啊整个过程。 那么这个是基于赛林斯的这个 user scales 的这个一个系列的高性能的这个 soc 开发版也是属于这个系列下面的哈,那么我们呢有三个版本,有二 c g, 二 e g 以及四 e v 这么三个版本, 那么他们的这个差异呢?我等下会给大家说哈。我们先来看一下,先给大家介绍一下,就是说这个赛尼斯的这个 fpj, 他的一个一个分类,首先他是分成,就我前面跟大家说了,他是这个 fpj 分成这个纯逻辑的就是纯 fpj。 还有一种就是 soc, 就是带按摩 带 f p a 的这么一种,那叫 zink, 那么 zink 下面呢,它又分成了三种,一种是 zink z 千系列, zink 七千就包括七零幺零,七零二零。我们前面给大家介绍的领航者就是这个 zink 七千系列里面的。然后我们现在要介绍的这一款呢,就是这个由斯拉 scale 系列的 mp soc 版,那么它是比这个进口更高,这个这个七零七千系列更高一个级别的。然后它这个赛林斯还有一个更牛逼的,就是这个 rfsoc, 那么那个的话呢就更贵了,那个主要是应用在一些啊,像基站上面,就移动通讯上面用的非常多,它是优化了 一些射频特性,那么我们这个通用的呢?还是这个 m p s o c 系列,那么我们这个给大家打开看一下哈,那这个板子我们开花了,这个和一年多哈,差不多二十个月,那么到底是个什 样子哈?然后同样的呢,我们这个打开以后呢,这个是一个这个配件包,那配件包里面呢?我们可以看一下有些什么东西哈,来,打开,错了啊,这边哈 啊,同样的是给大家配了一个这个仿真器,那么这是用来开发这个 f p a 必备的哈,我们给大家默认标配了。 然后呢一个梯口线,梯口线的话呢是跟我们仿真系搭配的啊,包括这个这个这个排线,这灰排线也是跟这个仿真器一起用的,他接我们的开发反用的 啊,这是一个转接板,就是把我们的这个呃小头转成大头,方便连接我们这个仿真器用的,还有一个这个短 这个小线,这个也是连接这个这个转接板用的,其他就没有了哈,这是我们的进口的一个标配,就这些东西,这边呢还有一个这个 xadc 模块,也就是用来做这个 adc 实验用的啊, 然后两根路板线,方便大家这个跳线用。那么重点我们看一下我们的板子哈,那这个里面非常的小巧精致哈,比我们前面那个 pgl 二 g 还要小,我们把它拿出来哈,里面也是 eva 包, eva 这个内托哈, 那么这个板子呢?我们放在这里切,切到这边来看一下吧。 ok, 大家可以看到我们现在这个就是我们把这个进口板子拿出来了哈,因为这里加了一个风扇,大家看不到那个,看不到那个 片哈,我看能不能拔出来,应该是可以拔出来的,还不咋不太好拔,可能要把这个亚克力,亚克力拆掉。那么大家去我们的这个啊,淘宝的这个详情页可以看到它里面的这个没有风扇的这个图哈,这个风扇主要是给这个 zink 散热用的哈,因为它那个里面 他这个芯片很牛逼,但是他的功耗呢,也比较大,所以必须要有一个散热片去给他散热哈,有个风扇给他散热。那么这个这个板子我们是一个多少层板?是一个十二层板啊,非常的复杂,他这个整个板子这么小,上面 上面有很多的这个东西,所以我们这个板子这个密度啊,这个复杂都是非常高的。然后呢我们先给大家介绍一下他的资源哈,资源呢,我们看一下,这边呢就是一个 usb 转串口啊,做这个串口通讯用的哈,我们通过这个 type c 线可以接他。 好,这里是一个 d p 接口,它可以支持 d p 屏,这个 mini d p。 然后呢这四个就是这个 usb 三点零的这个接口,注意哈,这是 usb 三点零的哈,我们前面说的那个呃, zink 是 usb 二点零的,这个就是 usb 三点零了,而这个同样是两个千兆网卡,一个 pl 端,一个 ps 端。 然后呢这边又是一个 usb 转串口,它这两个为什么有两个 usb 转串口呢?因为它一个是给我们的 f p g a 用的,一个是给我们的这个呃, minix 用的,所以它有两个, 他这两边呢是个外扩的排针,外扩的排针。然后的话呢,这里是一个 h d m i 接口,这里呢有个这个,这里有一个这个呃 r g b 屏接口,这个是个 r g b 屏接, 竖着放的哈,竖着接,然后这个是个电源开关,这里是我们的无线模块接口,这是 a t k model 接口,那么这里呢有个这个 mipi csr 接口,也就可以支持我们这种 mipi 摄像头, 它支持 mep 摄像头,大家可以看到它上面没有这个 dvp 接口了,所以它的摄像头呢,必须接这种 mep 摄像头才行。那么我们正点原则也给大家提供了这个三幺五啊,四幺五,这种 mep 摄像头,八百万的呀,这个四 k 的都有啊, 啊,这个是个仿真器接口,然后四个按键啊,这里是一个迷你 pci 接口,所以这个接口也是非常的丰富的。然后呢他的资源这一块呢,他那个有 有四片滴滴啊,四片滴滴啊,反光是吧?现在,现在 ok 吗? 咳咳, 他有四片 ddr, 每一片是五百一十二兆,组成了一个两居自觉的这个 ddr, 那么这个 ddr 呢,是给 ps 端,也就是给我们的妮妮口子这一块用的, 而这个下面还有一片滴滴哈,那么也是五百一十二兆的,它是给我们的这个 p l 端,也就是 f p g a 用的 啊,还有一个八 gb 的 emc, 可以用来存我们的这个操作系统。还有一个三十二兆的 flash 啊,这个看不到了,都在这个下面哈,我就不去看了,大家去看我们的这个宝贝详情页的这个图片就可以了, 然后背面呢啊,也是有很多的东西的哈,看到我们的 s d 卡放在背面,这里有一个呃,这个 q s b f les 用来存我们这个 f p 代码的,所以这个整个板子的这个复杂度是非常的高的哈,然后的话呢,他的这个 我看一下哈,它的那个跟这个 m p s o c 跟我们的七千到底有什么区别?这里给大家简单说一下哈,那么 m p s o c 呢?它里面的这个 a p u 就是我们的这个 linus 这一块呢,它是由双核或者四核的这个 a 五三组成的,那我们的 zink 系列呢,一般是由单核或者双核的 a 九组成的,那么 a 九跟 a 五三呢?这个差距是相当的大的哈, 然后呢,这个 m p s o c, 它还带 g p u 啊,带这个 r p u, r p u 是一个双核的 r 五 g p u 的是个 arm male t m 的四百,这个 m p two 这么一个 g p u, 然后呢还带 v c u, 像我们最高端这个四 四一 v 系列,它带这个 h 点二六四, h 点二六五的这么一个 v c u, 那么 d d r 控制器方面呢?它是 d d r 四的,然后我们的这个 zing 七千系列呢,是 d d r 三的制成的话呢,这个七千系列是这个呃,二十八纳米,这个是十六纳米的分 f 一体 工艺,所以它的工艺制成啊,各个方面来说呢,它都是会呃更加的有优势。然后它的这个性能,这个 m p s o c 的性能非常的彪悍,那因为它里面有个四核的 a 五三加双核的这个 r 五 f 这个处理器,再加 g p u, 在 g p u, 它里面有一百九十二 k 的这个逻辑单元啊,逻辑资源,加上这个,加上这个一十八点五兆的这个 b ran 哈,所以它整个这个本身那个芯片它的配置是相当的高的哈,然后, 然后我们看一下那个,然后再跟大家说一下这个二 c g, 二 e g 以及这个 四一 v 他们几个的一个简要区别啊,那么详细的区别呢?大家可以去看我们的表妹描述宝贝描述哈。那么简要区别的话呢,就是这个二 c g 跟二一 g 呢,它是一个双核的这个 a 五三,那么四一 v 呢?是一个四核的 a 五三,那么二 c g 跟二一 g 来比的话呢?二 c g 它呃 没有这个 gpu, 二一 g 的话呢跟四一 v 的话呢就有 gpu, 那么这是它们的一个主要区别。然后呢 四一微独有的就是这个 vcu, 也就是 h 二六四 h 二六五的一个硬件编辑码,这个只有四一微才有,那么我们的这个,呃二一 g 啊或者二十一 g 啊是没有的。大家可以看到我们这个板子,因为这个芯片贴了,大家不知道他到底是什么 版本哈,我们在这个网卡上面贴了一个 npsoc 四一 v 版,所以我们这个版其实我们最高端这个版就是一个四一 v 版,那么我们同样还有这个二 cg 二一 vg 的一个版本啊,那么其他的一些逻辑资源的一些差异呢,这里就不给大家详细去介绍了哈。

上期我们装好了大恒相机的驱动,这期直接进入二次开发,先带大家跑一下厂家自带的官方 c 语言原声历程。第一步,找到 sdk 和官方的 demo, 我 们可以打开这个桌面的快捷方式, 然后右键打开文件所在的位置就可以找到。如果没有快捷方式,可以在开始菜单栏找到 galaxy devices, 点到这个文件夹 documents 里面, development dock 里面就是我们需要的开发说明书, 再往回退一个就是 samples 里面就是我们的例子。 vc sdk 就是 c 语言引入的头文件和 lib 儿, c 加加 sdk 就是 c 加加对应的头文件和 lib 儿。我们今天主要讲看这个 simple grab, 这个是单相机的 dq buffer 取图零拷贝的一种取图方式,我们直接点进来这个点 sln 项目建议用管理员权限打开,因为有的电脑如果没有管理员权限,它可能打不开。 然后我们需要的,嗯,取图流程就在这个 simple grab 点 c p p 里面,它包含了头文件以及需要的一些, 它有获取错误信息,有一个取图的现成用的 dq buffer 取图,首先它进行了初步化,然后美举相机, 然后没举完呢去打开,通过 index 引脚来打开的,然后做了一次加载默认参数,防止之前的参数干扰,然后再打印相机的相关的参数, 然后就进行开始采集,根据你的选择开始采集,它就创建县城,采集完成之后,如果点到了那个 x, 它就会关闭县城,然后停止采集,关闭相机,关闭库, 整个流程就是这样子的。然后我们在运行之前一定要看一下 这个 windows 的 平台是不是跟你对应,就是以及工具平台要改成你 vs 对 应的 头文件,这个是已经配置好了的,你们自己建的时候也要配置,以及立本所在的目录以及它需要的头文件都已经配置好了,我重新生成一次, 生成完成之后点这个本地 windows 调试器,然后他就会打开控制台程序。还有需要注意的是我们这个选的是叉六四平台,那我们引用的库一定要是六十四位的,不然到时候会报错。运行我刚刚不小心点出来了, 如果有相机的话,它就会直接美举到相机,然后点开始采集,它就会进行取图,然后关闭输入 x 就 关闭了。 我们在运行这个程序之前,可以先用 galaxy view 看一下有没有相机连上,先跑一下相机是不是正常的,不然你开发的时候假如说相机不出图,你都不知道是什么原因。先确认相机是正常的。 这期我们先完整跑通了厂家原声 c 语言历程,先看懂官方标准写法,打好基础,下一期我会完整拆解大横相机从零开始的完整开发流程,手把手教大家新建空项目,手动配置 sdk, 一 步步手写取图的。

给大家演示一下蒲志 z u 四七 d 二、开发版裸机射频收发的上板实测验证。我们先将 dc 电源线和 usb 线依次连接到对应的接口,然后通过回环射频线将 t x 和 r x 进行回环连接,全部接好之后给板卡上电。软件设计部分,我们使用 y t s 进行程序下载,下载完成后,应用程序会把测试日记通过串口打印输出,这里可以看到串口的打印信息。 等待日制输出完毕后,我们就可以通过 i l a 查看射频回环的实测结果, 可以看到信号是对齐的,说明 m t s 正常运行,大家可以放心使用我们这款开发版进行后续射频收发软件、无线电等项目开发。欢迎访问普智官网了解更多产品信息。