一 lib和libs
放在lib中的是被reference的,放在libs中的是被include的。
放在libs中的文件会自动被编辑器所include。所以不要把API放到libs里去。
lib的内容是不会被打包到APK中,libs中的内容是会被打包进APK中
二 so库
NDK编译出来的动态链接库。
一些重要的加密算法或者核心协议一般都用c写然后给java调用。这样可以避免反编译后查看到应用的源码。
三 so库该如何存放
放置 so 文件的正确姿势其实就两句话:
• 为了减小 apk 体积,只保留 armeabi 和 armeabi-v7a 两个文件夹,并保证这两个文件夹中 so 数量一致
• 对只提供 armeabi 版本的第三方 so,原样复制一份到 armeabi-v7a 文件夹
存放so的规则:
你应该尽可能的提供专为每个ABI优化过的so文件,但要么全部支持,要么都不支持:你不应该混合着使用。你应该为每个ABI目录提供对应的so文件。
四 libs下armeabi等的作用是什么
存放so库,主要针对不同的设备兼容,也可以说是专门针对不同Android手机下CPU架构的兼容。
Android 设备的CPU类型(通常称为”ABIs”)
早期的Android系统几乎只支持ARMv5的CPU架构,后面发展到支持七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI。
应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤其是so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。在Android 系统上,每一个CPU架构对应一个ABI:armeabi,armeabi-v7a,x86,mips,arm64- v8a,mips64,x86_64。
armeabi-v7a: 第7代及以上的 ARM 处理器。2011年以后生产的大部分Android设备都使用它
arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
x86: 平板、模拟器用得比较多。
x86_64: 64位的平板。
如果项目只包含了 armeabi,那么在所有Android设备都可以运行;
如果项目只包含了 armeabi-v7a,除armeabi架构的设备外都可以运行;
如果项目只包含了 x86,那么armeabi架构和armeabi-v7a的Android设备是无法运行的; 如果同时包含了 armeabi, armeabi-v7a和x86,所有设备都可以运行,程序在运行的时候去加载不同平台对应的so,这是较为完美的一种解决方案,同时也会导致包变大。
最后,如果我们只想支持armeabi-v7a,那么需要在gradle中配置
因为默认情况下,打包后会自动生成armeabi 到 x86的所有文件夹。这就有可能导致一些x86的设备因为在x86文件夹下找不到so文件而崩溃。
1、应用不同:X86主要用于PC领域如笔记本、台式机、小型服务器;ARM主要用于移动领域如手机、平板。
2、功耗不同:X86的功耗比较高比如我们常用的台式机的CPU的TDP可达65W甚至更高;ARM的功耗很低只有个位数。
3、特点不同:ARM构架最大的特点就是体积小、低功耗、低成本和高性能,ARM构架被广泛的应用于嵌入式的系统当中;相比ARM和Power架构,X86在高性能通用处理器方面务无比巨大。
手机在介绍的时候,会说他是用的哪家公司的mcu,目前主流的就高通、联发科、海思(华为系)、展讯等。你再去看一下这类芯片的属性就可以知道了,高通不是用的arm的内核,是他自己的内核,联发科、海思、展讯都是用的arm内核。用x86内核的很少,基本没有。用marwell的倒是有一些,现在也基本被淘汰了。
X86 ARM分别对应了复杂指令集和精简指令集。
X86 的CPU与ARM的CPU区别简单地说一下:
X86主要用于PC领域如笔记本、台式机、小型服务器;ARM主要用于移动领域如手机、平板
X86的功耗比较高比如我们常用的台式机的CPU的TDP可达65W甚至更高;ARM的功耗很低只有个位数
X86性能很强,比如我们可以单只利用1颗i5就能够编辑转换视频;ARM性能较弱多数在对性能要求不算高的移动领域工作
X86发热量比较大,需要主动散热;ARM发热量小,不需要主动散热
X86通用性很好,ARM的通用性不太好
一、两者的概述不同:
1、ARM系统的概述:ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。
2、android X86的概述:Android x86 即运行于 x86 PC上的Android操作系统,目前已经支持大部分安卓程序。Android X86平台是由Beyounn和Cwhuang主持设计的。
二、两者的作用不同:
1、ARM系统的作用:ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。
2、android X86的作用:项目的主要目的在于为X86平台提供一套完整的Android 系统解决方案。这个项目提供了一套完整的可行源代码树,配套文档以及Live CD与Live USB。
三、两者的特点不同:
1、ARM系统的特点:耗电少,功能强;16位/32位双指令集;合作伙伴众多。
2、android X86的特点:具有更完善的安装程序和多重启动系统;支持鼠标及部分键盘;支持待机功能;支持部分触摸屏;支持压缩档案格式。
-ARM(ARM处理器)
-android x86
“cpu架构”有标准定义和民间常用定义之分,标准定义更全面,包含了民间常用定义。
(1)标准完整的定义
参考词条“处理器架构”:
http://baikebaiducom/view/2656836htm
那么想了解cpu总体架构,只需分清cpu的品牌即可,比如Intel、AMD的CPU是X86架构的,而IBM公司的CPU是PowerPC架构,ARM公司是ARM架构。而我们生活中最常见两类——台式机桌面cpu几乎全是X86架构的,安卓、苹果手机cpu几乎全是ARM架构的。
(2)民间硬件爱好者常讨论的“架构”
实际上指的是处理器的微架构或者说核心代号,查看方法很多,最简单的是借助第三方软件比如“CPU-Z”查看。
①下载CPU-Z
②打开CPU-Z,软件第一选项卡里就可以看到“代号”,即“核心代号”,即我们常说的“cpu架构”。这是有规律可循的,一家公司出的每一代cpu都是新架构,即使只是微调,也会改代号。比如英特尔酷睿i三代是ivy,四代是haswell,五代是broadwell……
查看电脑的架构的方法:
现在的电脑都是x86架构了,只有一些工业用的单片机的处理器芯片还是i386。如果想查看CPU的具体信息,方法如下:
1、右键“计算机”,选择“属性”,在左上角选择“设备管理器”。
2、打开设备管理器。在其中选择处理器。如图:
3、上网查询,即可得到该处理器的性质,具体如下:
AMD Sempron X2 180是一款低端入门级双核处理器,它是AMD闪龙系列中规格最高的一款CPU。实际上AMD Sempron X2 180看起来更像是更低端的Athlon2 X2速龙2双核系列,而非Sempron闪龙系列。AMD Sempron X2 180处理器基于45纳米K10架构研发,它采用AM3接口规格,拥有24GHz主频,2x512K二级缓存,是目前唯一一款45纳米工艺AMD闪龙处理器。
欢迎分享,转载请注明来源:品搜搜测评网