Android,Yocto,Meego构建系统的区别

2024-01-20 08:58

本文主要是介绍Android,Yocto,Meego构建系统的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【转载自 http://www.douban.com/note/132197038/】

原来是粤语,翻译成普通话。

Android构建系统是传统商业嵌入式软件系统的做法。就是将所有代码同构建工具一齐打包,通过一个代码包同一条命令就可以完成整个系统的构建。

linux基金会的yocto,就是当前主流嵌入式linux构建系统的做法。即仅将patch、构建元数据(build meta-data)文件同构建系统打包,构建时用一条命令就可以构建整个系统,不过代码是从网上代码服务器获取的。

meego则使用linux发行版的开发方法,即开发人员将代码、patch、同软件包构建元数据文件放到构建服务器(obs),构建服务器会自动编译且生成软件包(rpm),然后开发人员可以在本地通过镜像构建工具(mic)从构建服务器下载软件包并生成镜像。

Android的做法的优点是,你可以在本地修改任意代码。缺点是你必须编译所有代码,各个开发者之间没有办法共享编译结果。而且你如何将修改提交到上游呢?或者没有这个问题,因为android不是纯粹的自由软件开发模式,没有patch提交途径,你只得自己维护一个分支。

yocto则鼓励生成patch,而不是开条分支,当然亦可以开条分支。Yocto一样没有办法共享编译结果,虽然它会生成软件包,但貌似镜像不是通过软件包构建的。

至于meego,其实可以扩展obs,自动从网上代码服务器下载代码,开发者只需要提交编译元数据文件。同时,可以将mic功能集成进obs,这样编译软件包同构建镜像就可以在一台或一组机器里边做,容易管理同使用。听上去就像一个在线yocto。

当然,没有一种构建方式占绝对优势。Android需要下载全部代码,只生成镜像,中间不生成软件包;meego要看到全部代码就比较困难;yocto要自己管理构建软件包同镜像的过程。自由软件的编译选项多,依赖关系复杂,同时又希望更多人参与合作开发,或者好难有一种完美的系统构建方案。或者rmake加上rbuilder做得算ok啦。讲到在线软件包构建系统,除了上边提到的OpenSuse的obs外,还有Fedora的koji,Ubuntu的launchpad的ppa,Arch的aur。看上去主流发行版都提供在线软件包构建系统方便开发人员构建同分享软件包。Ubuntu的launchpad更进一步连代码服务器都一并提供。 

这篇关于Android,Yocto,Meego构建系统的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625473

相关文章

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

python中getsizeof和asizeof的区别小结

《python中getsizeof和asizeof的区别小结》本文详细的介绍了getsizeof和asizeof的区别,这两个函数都用于获取对象的内存占用大小,它们来自不同的库,下面就来详细的介绍一下... 目录sys.getsizeof (python 内置)pympler.asizeof.asizeof

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可