转自李易的个人空间--李易
在Linux2.6.33发布并且删除了Andriod内核代码之后,很多人问我到底发生了什么,以及接下来我们会如何对待Andriod,下面我以我的理解谈一谈这整件事。
首先我得说我很喜欢Andriod平台,我一直都在使用G1,直到上周每一天都在用。它对我还有像我一样的使用者都很好用,我对此感到很高兴。
从技术角度来说我也感到很高兴,Google选用Linux内核并在此基础上创建一个跟传统linux系统完全不同的手机操作平台是一件很让人吃惊的一件事,同时你还可以在Andriod设备上直接运行“真正的”Linux系统,并且它同Andriod系统都能在无需做出什么改变的情况下良好运行。
Andriod同时解决了手机制造商多年以来就不得不面对的一个问题,即一个免费版本的Java和一个统一的程序运行平台,在这个平台上程序员可以写出在其他任何支持Java的系统都能运行的程序,因为这所有现存的“Linux手机联盟”都将面临这瓦解的境地,大概再过不久它们就会悄无声息的关上大门,假如它们还有门可以关。
发生了什么?
那么到底是什么导致Andriod内核代码被排出Linux内核之外?简单的说,就是因为没人关心代码,所以它才会被排出Linux内核。就像我早先声明的那样,在架构树上的所有代码都应该和主分支内核相容,否则它就会被排除,但是这里有一个更大的问题是,Andriod不仅仅只是在/drivers/staging/andriod目录里多出一些“怪异的”驱动程序,假如你想要运行Andriod,你就必须先了解Google在安全模块中新写出来的锁类型,当然还有钩子类型。为了使你写出来的驱动程序能在Andriod中使用,你得把它恰当的同这个锁相容和,你有时甚至还要考虑这整个“怪异的”安全模块,天呀,这可是同Linux系统完全不同的驱动架构。
因为这些驱动只能使用在Google的内核树上,这就意味着为所有为Andriod硬件平台编写出来的驱动都不可能进入主内核树,正因为这,Google现在开始阻止这些硬件和驱动代码进入Linux主驱动树,并且积极地建立一个很多计算机销售商都依赖的内核分支。
现在Linux发行版内核源代码树的分支都被维护地很好,但假如任事态发展的话,事情也许会变得很糟糕,因为Google没有使其代码进入主内核,这些编写驱动和平台代码的公司都被排除在外而不能为内核社区做出贡献。内核社区几年以来一直都在试图说服这些公司把它们的代码加入内核,这样它们就可以使用安全更新,并自动处理应用程序接口的问题,这些公司听从了他们的建议,你可以看到越来越多的大公司出现在在每个内核版本里,可现在这个进程因为Google停滞下来了,因为Andriod的周边公司不能回报上游Linux内核,这就导致了这些公司需要在维护花费更多的资源同时增加了开发周期。
为使Andriod融入内核需要做些什么?
在早前Andriod加入架构树的时候,很多内核开发者检查了Andriod代码,并且指出了为了能被接受应该清理和改变的地方,这些改变很多影响到了Andriod内核和用户空间边界,同时如果Andriod内核发生变动,Andriod用户空间逻辑也需要做出相应改变,所以就不要指望Google员工去做这件事了。
那么,该怎么办?
我真的不知道该怎么办,Google再也没有表现出希望把它的代码加入上游的打算,一些公司试图把它们的代码加入上游,可是那样需要去做更大的工程工作,是一种本来根本就不必要的痛苦。
冀望
我真地希望Google能够修改Andriod代码库,使其重回Linux的怀抱,并停止它所造成的同很多嵌入式Linux硬件公司的隔阂,我曾私下里帮助完成这个工作,而现在预备公开地再做一次,但是为了达到这点我需要来自Google开发者的帮助,没有他们,一切都不会改善。
好消息是似乎所有对内核/用户空间应用程序接口的改变都不会影响在堆栈以上的Andriod代码(比如应用程序),所以这项工作的实施不会影响到整个系统。
我会在CE Linux Forum 2010 conference上发表一个演讲,希望在那之前事情有所改观,要知道这个年会可是有对其参与者所做的坏事进行叫喊的传统的。
分享到:
相关推荐
在Andriod开发环境中,Linux系统的安装和配置过程与Windows略有不同,主要涉及JDK、Android SDK、Eclipse以及相关工具的安装与设置。以下是详细步骤: **一、准备工作** 在Linux环境下搭建Android开发环境,首先...
### Android开发环境搭建——Linux(下) #### Linux环境下Android开发的优势 随着Linux系统的不断发展与普及,它已经成为开发者们青睐的操作系统之一。对于Android开发者来说,在Linux下进行开发具有诸多优势: ...
Andriod开发教程与笔记
Linuxdeploy是一款开源项目,主要目的是为了让用户能够在Android设备上安装并运行GNU/Linux系统。这个工具由Anton Skshidlevsky开发,并遵循GPLv3许可协议,这意味着它的源代码是公开的,允许用户自由地使用、修改和...
这个“andriod afinal框架demo”应该是一个示例项目,用于演示如何在实际应用中使用Afinal框架。 首先,Afinal的核心功能包括数据库的创建、升级、表的创建以及数据的CRUD(Create、Read、Update、Delete)操作。在...
这是一个基于andriod的阴阳历转换计算器,在这里会用到一些andriod的基础知识,可以用来练手熟悉andriod项目
用andriod实现的查询天气预报 package cn.Wongxming.weather.utils; import java.util.ArrayList; public class WeatherSet { private WeatherCurrentCondition myCurrentCondition = null; private ...
它由Google主导开发,基于Linux内核,提供了丰富的API和工具供开发者构建应用程序。Android的学习是一个深入而全面的过程,涵盖了编程语言、用户界面设计、系统架构、性能优化等多个方面。 在你提供的资源《一头扎...
这个压缩包“Andriod_SDK.zip_andriod_andriod开发”显然提供了关于Android SDK以及Android开发模式的详细讲解,非常适合那些对Android平台感兴趣或者正在学习Android编程的人。 Android SDK包括了以下关键组件: ...
《多库俄罗斯方块Andriod版本开发详解》 在移动设备上,经典游戏俄罗斯方块的Andriod版本受到了广大玩家的喜爱。本项目“多库俄罗斯方块Andriod版本”提供了一个全面的实现,其中包含了源代码及详细的注释,为...
Andriod API中英双版,基本上是最全的了.想要快拿走...
### Android与Linux Kernel版本对应关系详解 #### 一、引言 随着移动互联网的发展,Android作为全球最流行的移动操作系统之一,其发展历程与背后的Linux Kernel版本密不可分。本文旨在梳理从Android诞生至今,各...
标题中的“真正的andriod反编译软件”指的是专门用于逆向工程Android应用程序的工具,这类工具可以帮助开发者或安全研究人员查看、分析甚至修改Android应用的原始代码。Android应用通常是以APK格式打包的,其中包含...
在Linux系统中,为了使其正常工作,需要进行内核驱动的集成。下面将详细介绍这个过程以及与Android库和AT命令集相关的知识点。 1. **Linux内核驱动集成**: - **模块介绍**:华为ME909S-821模块基于标准的USB接口...
为了防止UI线程被阻塞,Android引入了Handler、Looper和Message机制来实现线程间通信,尤其是主线程(UI线程)与工作线程之间的交互。"andriod多线程通信handler方法"这个主题正是关注这一核心概念。 首先,我们...
这个名为"andriod-code.rar"的压缩包文件,显然包含了与Android编程相关的学习代码。这些代码可能是作者在学习Android开发过程中编写的示例、练习或者项目,旨在帮助理解和掌握Android应用开发的核心概念和技术。 ...
在Android开发领域,"andriod"这一主题涵盖了广泛的议题,包括但不限于操作系统内核、应用程序框架、用户界面设计以及各种开发工具的使用。下面将详细阐述Android开发中的关键知识点。 首先,Android是一个开源的...
andriod activity入门级介绍资料,对其生命周期介绍的很好
经典Andriod开发书籍...送给入门(keng)的或者计划入门(keng)的筒子们!