X86 Android与ARM Android在应用上的兼容
2016-08-01 00:46
232 查看
供稿:阿普奇科技股份有限公司
2015/6/17 11:47:14
星级:
关键词:
X86
Android
ARM
摘要:Android本是Google联合开放手机联盟针对移动设备开发的一种其于Linux的开源代码操作系统。发行至今,在全球的市场份额跃居首位。在2011年,近几年致力移动端的Intel也宣布在其移动系列ATOM上支持Android系统。至此,就出现了X86Android和ARM Android。相对于ARM来说,Intel进入手机和平板市场的时间要晚一点。很多人担心其无法执行针对ARM优化的应用程序。
Android本是Google联合开放手机联盟针对移动设备开发的一种其于Linux的开源代码操作系统。发行至今,在全球的市场份额跃居首位。在2011年,近几年致力移动端的Intel也宣布在其移动系列ATOM上支持Android系统。至此,就出现了X86Android和ARM Android。相对于ARM来说,Intel进入手机和平板市场的时间要晚一点。很多人担心其无法执行针对ARM优化的应用程序。
首先,不管是Google还是Intel,从系统还是硬件架构,都为了扩大市场占有额,传统老牌的PC界霸主与当下主流的移动OS强强联手,也是一种大势所趁。尤其是Windows在向ARM渗透,ARM在向服务器及个人PC侵蚀的格局中。经过多次的磨合,Intel在发布Baytrail平台时宣称完美支持Android,后续Sofia 和Cherry Trail都会支持Android。并于2014年在中国成功销售4000万台搭载Android系统的平板电脑。与此同时,阿普奇公司也在一年多时间内,成功向某公司的物联网行业售出2.2万台X86
android平板电脑,并稳定运行至今。
其次,关于应用在两个平台上的兼容与移植问题。
实际上ARM也存在兼容问题,只是大家一直没有注意:因为ARM采用授权方式,因此各家处理器集成的GPU并不相同。例如高通使用自家的Adreno、Nvidia使用GeForce ULP、三星使用ARM的Mali或PowerVR的SGX,由于GPU的规格不同(如封装格式),导致App在不同处理器中的表现差异很大。而Intel自己生产,在GPU等相关硬件上就非常统一。
我们先来了解一下Android程序是怎么运行的
最初Android程序都采用Eclipse开发环境和Android SDK,代码用Java语言写成,经过封装转换成Bytecode后加入到Android设备中,在Dalvik虚拟机中运行。不过稍微了解程序运行的人都知道,虚拟机虽然能够带来跨平台、不限硬件规格的好处,但同时也会因为代码转换降低执行效率。因此后来Android除了SDK(Software Development Kit)以外,又推出了NDK(Native Development Kit),让开发人员能够避免Dalvik转译造成的性能损失,还可以使用Java之外的程序语言编写(如C/C++)。
由于经过NDK编译之后的程序是硬件能够直接执行的机器代码,所以执行效率比较高,但同时带来了兼容性问题——编译给ARM处理器的机器代码和给x86处理器的不一样。
X86 Android与ARM Android本身都是一样Android系统,只是硬件平台不一样。从上面的Android软件运行来看,如果是用SDK编译的应用,可以在两个平台上随意切换。目前阿普奇出货给某公司的2.2万台X86Android平板电脑上所使用的APP也可在ARM平台使用。而如果是使用NDK编译的并使用了SO库,只需要编个X86版本的库就可以了。
而且针对上述的这一兼容性问题,Intel开发了Binary Translation,用来兼容针对ARM优化的应用程序。可以转换那些使用ARM NDK的应用,让它们能够在Intel处理器上正确执行。Intel官方估计约90%专为ARM编写的程序都能够在Atom上执行,也就是说整个Google Play里面只剩下少部分程序不能使用。
2015/6/17 11:47:14
星级:
人气:1036
关键词:X86
Android
ARM
摘要:Android本是Google联合开放手机联盟针对移动设备开发的一种其于Linux的开源代码操作系统。发行至今,在全球的市场份额跃居首位。在2011年,近几年致力移动端的Intel也宣布在其移动系列ATOM上支持Android系统。至此,就出现了X86Android和ARM Android。相对于ARM来说,Intel进入手机和平板市场的时间要晚一点。很多人担心其无法执行针对ARM优化的应用程序。
Android本是Google联合开放手机联盟针对移动设备开发的一种其于Linux的开源代码操作系统。发行至今,在全球的市场份额跃居首位。在2011年,近几年致力移动端的Intel也宣布在其移动系列ATOM上支持Android系统。至此,就出现了X86Android和ARM Android。相对于ARM来说,Intel进入手机和平板市场的时间要晚一点。很多人担心其无法执行针对ARM优化的应用程序。
首先,不管是Google还是Intel,从系统还是硬件架构,都为了扩大市场占有额,传统老牌的PC界霸主与当下主流的移动OS强强联手,也是一种大势所趁。尤其是Windows在向ARM渗透,ARM在向服务器及个人PC侵蚀的格局中。经过多次的磨合,Intel在发布Baytrail平台时宣称完美支持Android,后续Sofia 和Cherry Trail都会支持Android。并于2014年在中国成功销售4000万台搭载Android系统的平板电脑。与此同时,阿普奇公司也在一年多时间内,成功向某公司的物联网行业售出2.2万台X86
android平板电脑,并稳定运行至今。
其次,关于应用在两个平台上的兼容与移植问题。
实际上ARM也存在兼容问题,只是大家一直没有注意:因为ARM采用授权方式,因此各家处理器集成的GPU并不相同。例如高通使用自家的Adreno、Nvidia使用GeForce ULP、三星使用ARM的Mali或PowerVR的SGX,由于GPU的规格不同(如封装格式),导致App在不同处理器中的表现差异很大。而Intel自己生产,在GPU等相关硬件上就非常统一。
我们先来了解一下Android程序是怎么运行的
最初Android程序都采用Eclipse开发环境和Android SDK,代码用Java语言写成,经过封装转换成Bytecode后加入到Android设备中,在Dalvik虚拟机中运行。不过稍微了解程序运行的人都知道,虚拟机虽然能够带来跨平台、不限硬件规格的好处,但同时也会因为代码转换降低执行效率。因此后来Android除了SDK(Software Development Kit)以外,又推出了NDK(Native Development Kit),让开发人员能够避免Dalvik转译造成的性能损失,还可以使用Java之外的程序语言编写(如C/C++)。
由于经过NDK编译之后的程序是硬件能够直接执行的机器代码,所以执行效率比较高,但同时带来了兼容性问题——编译给ARM处理器的机器代码和给x86处理器的不一样。
X86 Android与ARM Android本身都是一样Android系统,只是硬件平台不一样。从上面的Android软件运行来看,如果是用SDK编译的应用,可以在两个平台上随意切换。目前阿普奇出货给某公司的2.2万台X86Android平板电脑上所使用的APP也可在ARM平台使用。而如果是使用NDK编译的并使用了SO库,只需要编个X86版本的库就可以了。
而且针对上述的这一兼容性问题,Intel开发了Binary Translation,用来兼容针对ARM优化的应用程序。可以转换那些使用ARM NDK的应用,让它们能够在Intel处理器上正确执行。Intel官方估计约90%专为ARM编写的程序都能够在Atom上执行,也就是说整个Google Play里面只剩下少部分程序不能使用。
相关文章推荐
- 在Android X86上执行Native ARM 代码---Android X86应用兼容的探讨
- 在Android X86上执行Native ARM 代码---Android X86应用兼容的探讨
- 我的Android进阶之旅------>Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- 我的Android进阶之旅------>Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- 移植linux x86 C库 到android arm平台【交叉编译实现应用增量更新】
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86、x86_64下的so文件兼容问题
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- Android 开发打包时我们应该如何注意平台的兼容(x86,arm,arm-v7a)
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- 我的Android进阶之旅------>Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- 【转】Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- 【转载】Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- 我的Android进阶之旅------>Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- >Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题