从字面上理解,可移植性说的就是,在一个平台上开发的代码windows代码移植linux查看linux是什么系统,通过比较少的改动就能否在另外一个平台上使用。不同的平台可以指具有不同的处理器构架linux是什么系统,例如x86和arm;或不同的操作系统,例如windows和linux。程序语言最终会被编译器编译成处理器可以理解的指令,不同的平台编译器或有差异,因而要将代码从一个平台移植到另一个平台,有时会须要对代码做些更改。通常来说,中级的语言具有比较好的可移植性,由于没有太多依赖于处理器的约束。在开发程序的时侯,须要有挺好的分层思想,或则对于一些可能不好移植的代码也可以通过写成独立模块的方法,以便未来进行移植。
对于android操作系统,不同的芯片厂商可能会有不同的底层实现,但最终会根据行业标准提供统一的插口。为此,基于c或c++开发的程序只须要借助androidndk编译成库(.so)打包进androidapk,就可以在不同的平台上(x86+android/arm+android)使用了。
若先前的c代码是为x86+windows平台开发的,而最终须要移植到arm+android平台上。则首先须要针对c程序进行更改以适配linux系统,例如一些多线程的操作可能在windows下的写法会和在linux下的不同。接着再借助androidndk将更改后的c代码编译成库打包进androidapk...即使完成来代码的移植了。
对于生活中的事例,例如华为和魅族手机,都可以从appstore上下载同一个app,由于这种app都是为android系统开发的,而华为和魅族都是在android平台上,支持同一标准的;googledaydream平台也将有可能会为vr联通端提供统一的标准windows代码移植linux,而华为魅族htc等手机厂商也都早已加入daydream平台。
本文原创地址:https://www.linuxprobe.com/srjxdmkyzxkp.html编辑:刘遄,审核员:暂无