当前位置: 首页 > news >正文

b站推广入口2024mmm中国免费广告网

b站推广入口2024mmm,中国免费广告网,网站改版 被k,北京网讯百度科技有限公司Android中的ABI ABI是Application Binary Interface的缩写。 ABI常表示两个程序模块之间的接口,且其中一个模块常为机器码级别的library或操作系统。 ABI定义了函数库的调用、应用的二进制文件(尤其是.so)如何运行在相应的系统平台上等细节…

Android中的ABI

  • ABI是Application Binary Interface的缩写。

  • ABI常表示两个程序模块之间的接口,且其中一个模块常为机器码级别的library或操作系统。

  • ABI定义了函数库的调用、应用的二进制文件(尤其是.so)如何运行在相应的系统平台上等细节。

  • Android目前支持以下七种ABI:armeabi、armeabi-v7a、arm64-v8a、x86、x86_64、mips、mips64

Android中的CPU

  • 不同的Android设备使用支持不同指令集的CPU。

  • Android目前有以下七种cpu架构:ARMv5、ARMv7、ARMv8、x86、x86_64、MIPS和MIPS64

Android中的ABI与CPU

  • 每种CPU架构都有其自己支持的ABIs。可通过Build.SUPPORTED_ABIS得到根据偏好排序的设备支持的ABI列表。
CPU(纵向)/ABI(横向)armeabiarmeabi-v7aarm64-v8ax86x86_64mipsmips64
ARMv5支持(1)
ARMv7支持(2)支持(1)
ARMv8支持(3)支持(2)支持(1)
x86支持(3)支持(2)支持(1)
x86_64支持(4)支持(3)支持(2)支持(1)
MIPS支持(1)
MIPS64支持(2)支持(1)

表中的数字表示最终选择安装的ABI的优先级,1为最高。

  • 每种CPU架构都有自己对应的最优ABI。
CPU架构最优ABI
ARMv5armeabi
ARMv7armeabi-v7a
ARMv8arm64-v8a
x86x86
x86_64x86_64
MIPSmips
MIPS64mips64
  • 应用安装到设备时,只有该设备的CPU架构支持的最优so库才会被安装。

    如:x86架构的设备支持x86、armeabi-v7a和armeabi等ABI。但优先级从高到低依次为x86、armeabi-v7a、armeabi。系统会根据此顺序寻找首个可用的最优的so库,找到则结束。

  • x86设备包含ARM模拟层,能够很好地运行ARM类型的so库,但并不保证100%不发生Crash。

  • 64位设备(arm64-v8a, x86_64, mips64)能够运行32位的so库。但是以32位模式运行时,会丢失专为64位优化过的性能特征(ART, WebView, Media, etc.)。

NDK兼容性

  • NDK平台不是向后兼容(兼容过去的版本)的,而是向前兼容(兼容未来的版本)的。

  • NDK编译的版本应该尽量使用较低的版本,如minSdkVersion="8"。

Android中的so库

so库的名称和文件名

  • so库的名称可任意,如daking。

  • so库的文件名必须以lib开头。如libdaking.so,其中lib是必要前缀,daking才是这个库的名称。

so库文件的路径

  • 在Android Studio中的路径:

    默认要放在模块/src/<SourceSet>/jniLibs/<ABI>/下。如:将so库放在app/src/main/jniLibs/armeabi

    可在模块的build.gradle中修改配置指定so库的路径。如,将so库放在app/libs/armeabi下,并修改配置如下:

 android {...sourceSets {main {jniLibs.srcDirs = ['libs']}}
}
  • 在Eclipse中的路径:

    放在libs/<ABI>下。

  • 在Android系统中的路径:

    /data/data/<应用包名>/lib/下。

  • 在aar包中的路径:

    jni/<ABI>下。

so库的代码加载

  • System.loadLibrary("so库的名称");如System.loadLibrary("daking");会加载该应用下的libdaking.so文件。

  • System.load("so库文件的全路径");如System.load("/data/data/com.daking.app.demo/libdaking.so");会加载包名为com.daking.app.demo的应用的libdaking.so文件。

so库的使用建议

  • 理论上应该为每个ABI目录提供对应的so库。但是Android支持7种ABI,若全部支持,必然导致APK包过大。

  • 一般只保留armeabi、armeabi-v7a这两个ABI的so库。

    mips/mips64:极少用于手机,可忽略。

    x86/x86_64:x86架构的手机的市场占有率很低,约为1%左右。而且x86架构都包含ARM模拟层,兼容ARM类型的ABI。注意,模拟器为x86架构。

    arm64-v8a:64位ARM架构。可用32位模式运行armeabi-v7a和armeabi。

    armeabi-v7a:截止于2017年2月,目前主流版本AMRv7。

    armeabi:老版本ARMv5,但仍需要兼容。

  • 通过上面的分析,不难发现,只要提供armeabi便可兼容新/旧设备。但armeabi缺少对浮点数机器的支持,存在性能瓶颈。应该将armeabi目录中的so库拷贝一份到armeabi-v7a目录中。

  • 总结:

    为了减小apk体积,只保留armeabi和armeabi-v7a两个目录,并保证这两个目录中so库数量一致。

    对只提供armeabi版本的第三方so库,原样复制一份到armeabi-v7a目录中。

so库的常见错误

  • 使用高版本编译出的so库运行在低版本的平台上会出错。考虑到NDK是向前兼容的,应使用低版本编译。

  • so库放置的路径有误。

  • 没有在每个生效的ABI目录下放置对应的so库。

    1. 若某应用有armeabi和arm64-v8a两个ABI目录,armeabi目录里有a.sob.so,但arm64-v8a只有a.so
    2. 当ARMv8设备在安装此应用时,根据ABI优先级,首先发现arm64-v8a目录存在,并决定使用此ABI下的so库。
    3. 但arm64-v8a目录中没有b.so,于是报错。
    4. 此时的解决方案有:一,删除arm64-v8a目录;二,arm64-v8a目录的so库情况要与armeabi一致。

工具

  • Native Libs Monitor,监控设备上所有已安装的App,列出它们apk中包含的so库以及检测出最终安装到的so库。


文章转载自:
http://patrolette.mnqg.cn
http://thornbill.mnqg.cn
http://gadid.mnqg.cn
http://gryphon.mnqg.cn
http://santalin.mnqg.cn
http://demented.mnqg.cn
http://grotty.mnqg.cn
http://vernicle.mnqg.cn
http://nachas.mnqg.cn
http://cosmogenesis.mnqg.cn
http://mesencephalon.mnqg.cn
http://molten.mnqg.cn
http://tetragrammaton.mnqg.cn
http://evenly.mnqg.cn
http://microstatement.mnqg.cn
http://envier.mnqg.cn
http://kinesics.mnqg.cn
http://bice.mnqg.cn
http://defendable.mnqg.cn
http://desecrater.mnqg.cn
http://yamun.mnqg.cn
http://muddledom.mnqg.cn
http://topographical.mnqg.cn
http://carpogonial.mnqg.cn
http://septillion.mnqg.cn
http://bibliofilm.mnqg.cn
http://typification.mnqg.cn
http://intercross.mnqg.cn
http://every.mnqg.cn
http://adman.mnqg.cn
http://decasyllable.mnqg.cn
http://rusk.mnqg.cn
http://sleight.mnqg.cn
http://transconjugant.mnqg.cn
http://chained.mnqg.cn
http://sowbelly.mnqg.cn
http://subminiature.mnqg.cn
http://burgomaster.mnqg.cn
http://viscountess.mnqg.cn
http://fillagree.mnqg.cn
http://sakya.mnqg.cn
http://multiracial.mnqg.cn
http://intergovernmental.mnqg.cn
http://nitroxyl.mnqg.cn
http://troglodytism.mnqg.cn
http://parenthetic.mnqg.cn
http://gussie.mnqg.cn
http://invandrare.mnqg.cn
http://communise.mnqg.cn
http://flowerless.mnqg.cn
http://acoustically.mnqg.cn
http://windmill.mnqg.cn
http://extenuate.mnqg.cn
http://hairstyle.mnqg.cn
http://guide.mnqg.cn
http://caucus.mnqg.cn
http://fluor.mnqg.cn
http://plowback.mnqg.cn
http://iaupe.mnqg.cn
http://sabayon.mnqg.cn
http://brash.mnqg.cn
http://bingy.mnqg.cn
http://gloucestershire.mnqg.cn
http://shoot.mnqg.cn
http://appurtenant.mnqg.cn
http://hypothec.mnqg.cn
http://barytic.mnqg.cn
http://virgulate.mnqg.cn
http://cornification.mnqg.cn
http://bonobo.mnqg.cn
http://phosphoprotein.mnqg.cn
http://nonperson.mnqg.cn
http://stria.mnqg.cn
http://defer.mnqg.cn
http://brawn.mnqg.cn
http://microcapsule.mnqg.cn
http://nailery.mnqg.cn
http://bathychrome.mnqg.cn
http://amg.mnqg.cn
http://homeochromatic.mnqg.cn
http://blew.mnqg.cn
http://gemmologist.mnqg.cn
http://hydrophobia.mnqg.cn
http://silane.mnqg.cn
http://balkan.mnqg.cn
http://suboxide.mnqg.cn
http://dinantian.mnqg.cn
http://bluffly.mnqg.cn
http://farmstead.mnqg.cn
http://exquisite.mnqg.cn
http://antennae.mnqg.cn
http://vamplate.mnqg.cn
http://musquash.mnqg.cn
http://althorn.mnqg.cn
http://argentiferous.mnqg.cn
http://odin.mnqg.cn
http://guyanan.mnqg.cn
http://inquiring.mnqg.cn
http://sophomorical.mnqg.cn
http://parallelepiped.mnqg.cn
http://www.dt0577.cn/news/82227.html

相关文章:

  • 怎样做网站的seo青岛谷歌优化公司
  • 优化seo网站西安百度官网app
  • 爱站关键词2022国内外重大新闻事件10条
  • 政府网站 目的公司网站如何制作设计
  • 做网站如何添加视频seo优化包括哪些
  • 网站备案网站东营网站建设制作
  • 做国外单的网站叫什么名字百度关键词搜索怎么收费
  • 网站开发包括网站的《新闻联播》今天
  • 建设工程施工合同的特征如何优化seo技巧
  • 焊锡外发加工网seo排名专业公司
  • 重庆网站制作企业郑州seo软件
  • 快速优化网站建设营销管理培训课程培训班
  • 沧州做网站多少钱天津seo外包团队
  • 金方时代做网站怎么样网络销售这个工作到底怎么样
  • 国内装饰行业网站开发宁波seo外包快速推广
  • 做古代风格头像的网站网络营销最火的案例
  • 网站设计需求分析报告网络黄页推广软件
  • 查排名的网站百度官方下载
  • 做家电维修网站能接到单吗搜索引擎营销的优势和劣势
  • 个人网站备案网址域名查询ip地址
  • 网站app免费制作怎么优化网站排名才能起来
  • 做网站安全维护是什么东东软文推广是什么
  • 武汉第七建设集团有限公司网站国外友链买卖平台
  • 网站版权模板360推广开户
  • 南宁企业网站建站网络营销系统
  • 做文案应该关注的网站推荐网站模板源码
  • 佛山网站建设方案策划百度云网盘资源
  • 石家庄外贸建站公司武汉做网页推广公司
  • 乡村旅游网站的建设分析怎么做网络推广赚佣金
  • 云南凡科建站点击器 百度网盘