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

移植之乱谈

 
阅读更多

昨天有一个博友回复,说他已经完成了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平台上实现自然也得考虑效率方面的问题。

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

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

分享到:
评论

相关推荐

    android内核移植之我见

    安卓内核移植,抛砖引玉! Android系统移植(一)-让android系统在目标平台上运行起来 Android系统由于用的是linux内核,因此内核移植和嵌入式linux内核移植差异不大,过程如下: (1)移植boot-loader和linux2.6内核到...

    MTK6582快捷逆向移植工具_联发科MT6582逆向移植工具_

    MTK6582快捷逆向移植工具是针对联发科MT6582处理器的固件移植开发的专用软件。联发科MT6582是一款基于ARM Cortex-A7架构的四核移动处理器,常见于中低端智能手机和平板电脑。这款处理器在2013年发布,因其性能和成本...

    W5500官网移植.zip_W5500移植_w5500_w5500 stm32移植_移植W5500驱动到STM32F215

    在本文中,我们将深入探讨如何将W5500网络接口控制器的驱动程序移植到STM32F215微控制器上。W5500是一款集成以太网MAC和PHY的硬连线TCP/IP协议栈的芯片,常用于嵌入式系统中实现网络功能。STM32F215是STM32系列的一...

    dhcp移植源码及移植方法

    在嵌入式设备、服务器或网络环境中,DHCP服务的移植对于网络管理至关重要。本文将详细介绍DHCP源码的移植过程以及相关知识点。 1. DHCP工作原理: DHCP基于客户-服务器模型,客户端请求网络配置信息,服务器则响应...

    如何移植最新版本lorawan

    Lorawan移植到STM32的Keil工程 Lorawan是一种低功耗广域网(LPWAN)技术,旨在提供低功耗、低成本、长距离的无线通信解决方案。随着Lorawan技术的不断发展,移植最新版本Lorawan到STM32的Keil工程变得越来越重要。...

    Linux系统移植.pdf

    Linux系统移植光盘将PDF文档。分为20个视频文件: 第一部分:1~7 第二部分:8~9 第三部分:10~12 第四部分:13~15 第五部分:16~17 第六部分:18~20 _Thumbs.db 1、FC6install 2、FCRinstall 3、vmtool安装 4、网络...

    13. 移植_程序移植_博图程序_博图程序移植_STEP7V13V15_

    移植_程序移植_博图程序_博图程序移植_STEP7V13V15_"这一主题主要涉及的是如何将使用旧版STEP7 V13或V15创建的程序迁移到最新版本的博图(TIA Portal)软件中。博图是西门子推出的一款集成了STEP 7、SIMATIC WinCC...

    IGH移植步骤.rar_IgH_EtherCAT_JHY_SOEM ethercat移植_ethercat移植_igh ethe

    Linux平台下EtherCAT主站移植相关操作,辅助开发测试参考

    移植NES模拟器到STM32G431 详细移植教程 CubeMX HAL库

    标题中的“移植NES模拟器到STM32G431 详细移植教程 CubeMX HAL库”揭示了本次讨论的核心内容,即如何将经典的NES(Nintendo Entertainment System)游戏模拟器移植到STM32G431微控制器上,并利用CubeMX和HAL库进行...

    uboot移植大全,全面介绍uboot移植

    【uboot移植大全,全面介绍uboot移植】 U-Boot,全称Universal Boot Loader,是嵌入式系统中广泛使用的引导加载程序。它的主要任务是在操作系统加载之前进行硬件初始化、设置环境变量,并将操作系统映像加载到内存...

    Linux移植之step by step

    天嵌科技出品的linux移植教材,讲了在TQ2440开发板上运行Linux的具体步骤。

    LINUX 移植 论文 参考 移植过程

    LINUX 移植论文参考移植过程 本文档介绍了 Linux 内核移植到 S3C2440 开发板的详细过程,涵盖了从下载最新的稳定版本的 Linux 内核到编译和配置整个移植过程。 一、下载最新的稳定版本的 Linux 内核 在下载最新的...

    ROM移植工具

    ROM移植工具是针对Android系统的一种专业软件,它主要用于将一个特定Android ROM(Read-Only Memory,只读存储器)修改或适配到不同的设备上。ROM通常包含了操作系统、应用程序和其他必要的系统组件,使得用户可以...

    blueZ-5.33移植+刘见1.rar_bluez_bluez5.33_bluez5移植详解_unitaw5_移植bluez-

    蓝牙协议栈5.33的详细移植文档及其依赖库的移植过程

    GuiLite移植之星空效果展示

    GuiLite移植之星空效果展示,平台:STM32L4R9,640K RAM,2048K FLASH RTOS:FreeRTOS UI:GuiLite,https://gitee.com/idea4good/GuiLite.git 屏幕:ST7789

    STM32F1移植到F3说明

    在讨论STM32F1系列微控制器程序向STM32F3系列微控制器移植的过程中,我们主要需要考虑以下四个方面:硬件移植、外设移植、固件移植和软件移植。 首先,硬件移植是基础。在进行硬件移植之前,需要先了解STM32F1系列...

    STM32移植LVGL源码工程 stm32移植GUI-Guider源码 LVGL移植源码

    STM32移植LVGL源码工程是将流行的开源图形库LVGL(LittlevGL)应用于STM32微控制器上的过程。STM32是一款基于ARM Cortex-M内核的微控制器,广泛用于嵌入式系统设计。LVGL是一个轻量级、高效的图形用户界面库,适合...

    pjsip 移植

    【pjsip 移植】知识点详解 pjsip是一个开源的、跨平台的多媒体通信库,它提供了SIP协议的实现,支持VoIP、视频通话、即时消息等多种功能。在移动设备或嵌入式系统中,pjsip的移植是一项重要的任务,尤其在mips架构...

    013_STM32程序移植之_DS18B20

    标题中的“013_STM32程序移植之_DS18B20”指的是一个关于STM32微控制器与DS18B20温度传感器进行程序移植的教程或项目。这个主题涵盖了嵌入式系统开发中的两个关键部分:STM32系列微控制器的使用和DS18B20数字温度...

Global site tag (gtag.js) - Google Analytics