小白学习记录-代码的移植

       从字面上理解,可移植性说的就是,在一个平台上开发的代码,通过比较少的改动就能够在另外一个平台上使用。不同的平台可以指具有不同的处理器架构,比如x86和arm;或不同的操作系统,比如windows和linux。程序语言最终会被编译器编译成处理器可以理解的指令,不同的平台编译器或有差别,因此要将代码从一个平台移植到另一个平台,有时会需要对代码做些修改。一般来说,高级的语言具有比较好的可移植性,因为没有太多依赖于处理器的约束。在开发程序的时候,需要有很好的分层思想,或者对于一些可能不好移植的代码也可以通过写成独立模块的方式,便于未来进行移植。

       对于android操作系统,不同的芯片厂商可能会有不同的底层实现,但最终会依据行业标准提供统一的接口。因此,基于c或c++开发的程序只需要利用android ndk编译成库(.so)打包进android apk,就可以在不同的平台上(x86 + android / arm + android)使用了。

      若原本的c代码是为x86 + windows平台开发的,而最终需要移植到arm + android平台上。则首先需要针对c程序进行修改以适配linux系统,比如一些多线程的操作可能在windows下的写法会和在linux下的不同。接着再利用android ndk将修改后的c代码编译成库打包进android apk...就算完成来代码的移植了。

      对于生活中的例子,比如华为和小米手机,都可以从app store上下载同一个app,因为这些app都是为android系统开发的,而华为和小米都是在android平台上,支持同一标准的;google daydream平台也将有可能会为vr移动端提供统一的标准,而华为小米htc等手机厂商也都已经加入daydream平台。

     

      

你可能感兴趣的:(学习)