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

相关文章

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法