参考前文,用 yolov5 的 pytorch torchscript lite 模型开发了一个多物体检测的 Android APP。
调试完成之后,进行编译打包 Generate Signed Bundle/APK。
然而,编译后的 APK 文件大小让我大吃一惊,足足有 240M。
使用 Android Studio 自带的 Build - Analyze APK 功能的分析结果:
好在不是面向 C 端的产品,否则估计没有几个人愿意下载这么大的 App,仅仅为了一个图像识别功能。
巨大的 apk 文件
- torchscript lite 模型 model 文件大小:23M
- libpytorch_jni_lite.so 这个是大头,每个 cpu 架构一份,共 4 份,接近 200M
优化 apk 文件大小的一些策略
- 分离 CPU 架构:Android 系统支持多个 CPU 架构,但是如果只支持一种 CPU 架构,那么可以减少 APK 的大小并且加快应用程序的启动速度。
- 使用 TensorFlow Lite 模型,这样就可以依赖 Google Play 服务自带的功能,不需要额外引入依赖文件。但是这个仅限于海外用户,国内的阉割版 Android 不支持。
- 将图片识别功能做成服务端接口,由 APP 调用服务器端的接口实现,如果模型很大,比如 ChatGPT 这种庞大的模型,肯定是放在了服务端。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式