最近测试京东阅读app,读书引擎这一块是用c++代码写的,上层调用引擎库实现特定功能。总是听底层(c++)开发人员说打一个so包。what?so包是什么东东?马上问了下度娘,在幕客上搜索到了以下内容:
Android 为什么要使用.so文件呢?
由于Android基于Linux Kernl的,也继承了Linux中所有so相关的设计。除了系统方面的原因,Android开发者还要知道以下几点:
so机制让开发者最大化利用已有的C和C++代码,达到重用的效果,利用软件世界积累了几十年的优秀代码
so是二进制,没有解释编译的开消,用so实现的功能比纯java实现的功能要快
so内存分配不受Dalivik/ART的单个应用限制,减少OOM
另外,在c++层报错后,用logcat抓的日志有如下名词ABI,
08-27 14:35:07.082 11267 11267 F DEBUG : ABI: 'arm'
解释如下:
关于ABI:(英语:application binary interface,缩写为 ABI)描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口。
网友评论