c++确实烂?

标题太刺眼了,我想肯定要被人骂.写这个只是做个记录,打个tag,并非要损c++,本人也并非专职的C++开发人员.
目前做的一个产品,涉及到将Linux版本的SDK(c/c++混合写的)移植到安卓平台.
做法是将c/c++的代码转换到安卓NDK,并加上一些JNI的逻辑(c/c++与java之间的互相调用).
集成完成后,功能是没问题,只是打成的aar包有2M多(4个架构平台的so文件普遍在500k左右),客户对这个aar包的大小不太满意.
原因是该SDK软件包会被装载到物联卡的芯片里,这种芯片类似于电信和移动的sim卡.
sim卡的空间资源当然是非常有限的,装载于其中的各种三方软件包越小越好,2M多可能是有些大了,客户不满意.
后来对系统代码进行了各种优化,比如去掉调试信息,非必要的日志等等..
这样优化后,包依然有900多K接近1M,还是有点大,但感觉是在没办法了,总不能改动现有的功能逻辑吧,这个风险实在太大了,毕竟百度/荣耀/小米...这些大客户已经在商用咱们的安卓SDK包了.
后面在bing上找到一篇博客,谈到so文件体积的优化问题,其中提的主要的是如何去优化c++相关的代码,我想莫非优化的重点在于c++?
我就试着把工程里的所有c++逻辑全部改成了c,结果奇迹发生了:1M不到的aar包,编译打包后的release版本居然只有173k(其中R.txt文件有31k).

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值