0 碎碎念
之前写博客都是为了复习基础知识,不过好像也忘得很快hh。
以后估计会写点感兴趣的自己碎碎念,缓解下emo的心情。(不像之前的博客,这些博客不准备复现也不贴代码所以不一定对, 仅供个人参考 )
现在秋招也基本上安卓和java基础选择性忘,操作系统和计网轮流忘,算法经常忘的状态。
更emo的是之前一直用kotlin刷题,然后好多公司笔试不让用。
1 前言
其实不是第一次见到CPU架构了,早在我最初接触Android的时候;就发现一些开源的AI模型部署Android的so库会提供arm-v8以及arm-v7架构两种。当时没太了解,自己虽然也尝试了并生成自己模型的so库但是也没过多关注。后来,在参与实际工作中发现发包时也会针对不同厂商的cpu架构发不同的包。
2 概述
目前主流应该是arm-v8,少数arm-v7;一些老机器或者老车机会x86或armeabi。我猜应用场景是根据定制平板、手机或车机来调整so库。
- ABI – 应用程序二进制接口,定义应用和操作系统之间二进制接口规范。
- ABI 兼容性 – 运行64位ARM(如v8)上可以运行32位ARM(v7)。
- v8 64位,v7 、armeabi 32 位。
平常方案一般只适配arm-v7或v8,要么更兼容要么性能最佳。
3 使用
本来还想找以前编译so库的工程代码做个大小比较的,结果找不到了。
大概是需要模型的推理文件以及opencv辅助,在cmakelist.txt文件里面仿写相应的方法进行给java调用,好像是要cmake配置执行啥的。。但是印象里编译就行了,在build目录下可以找到相应生成的so库。