`
lijuanabc
  • 浏览: 120418 次
社区版块
存档分类
最新评论

移植之乱谈

 
阅读更多

昨天有一个博友回复,说他已经完成了android系统在windows上的移植,其中比较难的是binder系统的移植。下面是两个demo网址,我看了后倍有感触。

http://v.youku.com/v_show/id_XMzIwMDkxOTQ4.html
http://v.youku.com/v_show/id_XMzIwNzI2NTg4.html

这才是真正有技术含量的移植啊!

从做android开始,听到的最多的就是移植+merge了。但总感觉都是:

1 简单的把人家做好的,放到新的平台上,然后测试,修改。完完全全的改bug。甚至都不需要对系统,程序结构有什么深入的了解。

2 做linux驱动更是这样,到处去改参数,调板子。(个人感觉都被硬件绑架了..)。

什么后果?居然很多人一年都写不了几行代码!!!我知道google有一个美女程序员,每天都要花4个小时来写代码,没有什么别的特殊目的,就是为了保持脑子的灵活。

另外,那些刚工作的人,改改bug就完成工作,而又不写代码,让他们误以为程序员就是这样工作的,结果不去花时间研究系统(放着linux内核,android系统这种高质量,高复杂度的优秀源码不看。说实话,代码量不超过10w行以上的同志,真的怀疑能否看懂代码的真正意图,所以google校园招聘的时候,似乎对代码量有一定的要求),

【这里也请那些培训学校的老师们,稍微注重下教育质量,培训方法。】

我心目中的移植,是应该建立再对当前平台和目标平台的一个深刻认识上,再加上对要移植代码本身,程序结构得深入了解上才能做的。看看上面博友的移植,如果只会改几个bug,何年何月才能将android系统移植到windows上呢?

下面是我之前做的一份关于完成端口到linux平台上的移植的设计文档。这个设计由于各种原因,最终没有被讨论过,也没有(永远不会)被采用。

回想当时做这个移植,花了很多时间来调研完成端口的实现机制,来研究proactor和reactor的区别,来研究linx平台的特性。考虑到完成端口是Win平台最有效率的IO操作,那么在linux平台上实现自然也得考虑效率方面的问题。

虽然最终没有实现该设想,但却极大加深了对以上知识的认识,对以后的工作有非常大的帮助。

作为本篇的结尾,希望大家认真对待工作,从简单的移植工作中去发掘背后那块绝大的金矿,以提高自己的价值。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics