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

相关文章

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

关于Mybatis和JDBC的使用及区别

《关于Mybatis和JDBC的使用及区别》:本文主要介绍关于Mybatis和JDBC的使用及区别,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、JDBC1.1、流程1.2、优缺点2、MyBATis2.1、执行流程2.2、使用2.3、实现方式1、XML配置文件

ubuntu20.0.4系统中安装Anaconda的超详细图文教程

《ubuntu20.0.4系统中安装Anaconda的超详细图文教程》:本文主要介绍了在Ubuntu系统中如何下载和安装Anaconda,提供了两种方法,详细内容请阅读本文,希望能对你有所帮助... 本文介绍了在Ubuntu系统中如何下载和安装Anaconda。提供了两种方法,包括通过网页手动下载和使用wg

ubuntu系统使用官方操作命令升级Dify指南

《ubuntu系统使用官方操作命令升级Dify指南》Dify支持自动化执行、日志记录和结果管理,适用于数据处理、模型训练和部署等场景,今天我们就来看看ubuntu系统中使用官方操作命令升级Dify的方... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。

使用Python和SQLAlchemy实现高效的邮件发送系统

《使用Python和SQLAlchemy实现高效的邮件发送系统》在现代Web应用中,邮件通知是不可或缺的功能之一,无论是订单确认、文件处理结果通知,还是系统告警,邮件都是最常用的通信方式之一,本文将详... 目录引言1. 需求分析2. 数据库设计2.1 User 表(存储用户信息)2.2 CustomerO

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Linux系统调试之ltrace工具使用与调试过程

《Linux系统调试之ltrace工具使用与调试过程》:本文主要介绍Linux系统调试之ltrace工具使用与调试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、ltrace 定义与作用二、ltrace 工作原理1. 劫持进程的 PLT/GOT 表2. 重定