安卓9与10的系统要求_代码开源!支持RISC-V架构的安卓系统终于来了!

文章来源:芯片开放社区,作者:OCC编辑

万里征途迈出第一步,基于RISC-V的安卓10系统来了。

点击链接查案演示视频:

平头哥芯片开放社区(OCC)​occ.t-head.cn

今天,平头哥完成了安卓10对RISC-V的移植并开源了全部相关代码。从视频中可以看到,安卓10系统已经可以在玄铁910芯片上流畅运行。

c6f2caad5c6db2e0e72c1b4f27c8daf0.png

平头哥基于安卓开源项目(AOSP)实现了对RISC-V架构的支持。安卓软件栈主要包括系统内核、硬件抽象、运行时、框架层、应用五个层次的近千个软件包,其中涉及到处理器架构相关移植工作主要包含本地库与ART支持、Linux内核支持、build系统支持三大部分。

本地库与ART支持:完成bionic、ART、Clang/LLVM、V8、NDK、VNDK、OpenGL等软件包的RISC-V架构支持:为bionic添加动态链接、系统调用、浮点数学库的支持;基于ART实现了RISC-V架构的DEX实时解释执行、dex2oat、JNI调用以及JIT编译优化,极大地提高了JAVA程序在RISC-V平台上执行的效率。

Linux内核支持:完善了Clang/LLVM对Linux内核的编译支持,修复了大量Clang/LLVM的问题,首次将RISC-V架构的Linux内核与安卓系统进行了适配。

Build系统支持:安卓的编译框架主要由blueprint和soong构成,平头哥整合编译框架、预编译的工具链、本地方法库、模拟器,应用和服务等模块,首次实现了RISC-V架构对安卓build系统的支持。

物联网时代更需开放多元的系统

在当下碎片化的物联网时代,单一的封闭的IP化芯片产品很难适应多场景、定制化的需求。而开源硬件则会带给行业更多想象的空间。

51acd2ec80b7c873d13131b1f8afb1dc.png

RISC-V作为一个开源处理器架构,从2011年诞生之初就为物联网时代CPU的发展提供了非常大的想象空间。近几年,主流的软件生态陆续实现了对RISC-V架构的支持,唯独在安卓生态系统方面进展缓慢,主要的原因包括:

1)移植代码量大,涉及模块多,整个工程包含727个子工程和多个预编译工程;

2)架构级优化难度大,为了让安卓可以更加流畅的运行,需要在汇编指令层面实现对本地方法库、音视频库、加解密库等的性能优化;

3)开发语言多种多样,包括C/C++,汇编,JAVA,go,RS,rust等。

基于现有的工作成果,平头哥将开源全部的相关代码并与全球开发者一起推动AOSP on RISC-V的代码完善、性能优化与应用落地。

代码开源,共建系统

安卓作为第一大移动设备操作系统,支撑了全球数十亿部手机、电视与可穿戴设备,拥有数百万应用开发者。在碎片化的物联网时代,经历了时间检验的安卓系统也将是开发者和应用解决方案商的重要解决方案之一。安卓与RISC-V的强强联合,将极大降低物联网设备和应用开发的门槛,推动百花齐放式产业发展。

目前,基于RISC-V 64 架构的安卓开源仓库已在OCC上线,点击下方链接即可查看开源仓库

https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.429d79d4RukyVY&id=3872786431139786752

开发者可以基于这个仓库进行二次开发,同时不受限于玄铁C910 CPU的限制,可对接自己的芯片进行调试。

平头哥此次代码开源,为物联网产业革命铺平了道路,使众多开发者能够专注于创新,并将创新落地,推出卓有成效地改善用户体验的产品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

trie树 mysql_Trie树详解(转)

特别声明本文只是一篇笔记类的文章,所以不存在什么抄袭之类的。以下为我研究时参考过的链接(有很多,这里我只列出我记得的):1、字典树的概念字典树,因为它的搜索快捷的特性被单词搜索系统使用,故又称单词查找树。它是一…

mysql 主键 最佳实践_设计套路:Mysql主键的选取

最近在对一些大表进行优化,发现主键和索引设计都有争议,就此从原理上分析主键设计该如何选取。Mysql的数据结构Mysql是由B树构成,搞清楚下面两个问题,就知道为什么用B树了。1.BTree是为磁盘或者其他直接存取辅助设备而设计的一种平…

mysql写下拉树_PHP+mysql实现从数据库获取下拉树功能的方法

这篇文章主要介绍了PHPmysql实现从数据库获取下拉树功能,结合实例形式分析了phpmysql数据库查询及select下拉框输出查询结果的实现技巧,需要的朋友可以参考下本文实例讲述了PHPmysql实现从数据库获取下拉树功能。分享给大家供大家参考,具体如下:include …

mysql ssh错误_通过SSH隧道连接时,MySQL访问被拒绝错误

几个月来,我一直通过SSH隧道连接到我们本地测试服务器上运行的MySQL实例,没有任何问题.突然之间,没有我能想到的任何变化,服务器已经开始拒绝来自Sequel Pro的登录尝试,但错误:Unable to connect to host 127.0.0.1 because access was denied.Double-check your us…

java tostring格式化日期_java日期格式化SimpleDateFormat的使用详解

日期和时间格式由 日期和时间模式字符串 指定。在 日期和时间模式字符串 中,未加引号的字母 A 到 Z 和 a 到 z 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 () 引起来,以免进行解释。所有其他字符均不解释&#xff1…

java pingpong_面试题。线程pingpong的输出问题

第一种情况:public class Main {public static void main(String args[]) {Thread t new Thread() {public void run() {pong();}};t.run();System.out.println("ping");}static void pong() {System.out.println("pong");}}输出:p…

java将字体输出成图片格式_JAVA IO流中,能否将一个字符串以图片的格式输出出来呢,即字符串显示在图片上...

展开全部执行成功后会在D盘根目录生成32313133353236313431303231363533e59b9ee7ad9431333332616433一张名为image的jpg格式的图片,图片上以红色Serif体写着“你好”两个字——import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.…

java hibernate 多对多_java - hibernate多对多问题

映射文件如下:sequence_stuidsequence_teaidTestpublic void testSave2() {Configuration cfg null;ServiceRegistry sr null;SessionFactory sf null;Session session null;Transaction tx null;try {cfg new Configuration().configure("hibernate.cfg…

java封装对象数组_java解析JSON对象和封装对象的示例

在本例中java解析JSON对象使用的是org.json,因此,如果各位想测试我的代码,请先确保有java.json.jar包,否则,就需要去网上下载这个jar包,然后才可以正常使用本代码。本例的功能就是对两个json对象&#xff0…

python xgboost用法_XGBoost使用教程(纯xgboost方法)一

一、导入必要的工具包# 导入必要的工具包import xgboost as xgb# 计算分类正确率from sklearn.metrics import accuracy_score二、数据读取XGBoost可以加载libsvm格式的文本数据,libsvm的文件格式(稀疏特征)如下:1 101:1.2 102:0.030 1:2.1 10001:300 …

ul 原点显示_CSS+HTML ul li列表原点如何相连

方案一:html参与考试《第一期模拟考试》3小时50分钟学习文档《LDO电路设计规范》3小时50分钟学习文档《LDO电路设计规范》3小时50分钟Css:*{margin:0;padding:0;}ul{margin:100px;padding:0;list-style: none;}ul li{position:relative;padding-left: 30px;padding-bottom: 20p…

java并发执行一个方法_JAVA的执行并发原理

VolatileVolatile关键字用于确保共享数据的可见性与有序性,但是并不能保证方法的原子性,在程序中对Volatile关键字使用得当的话,它比synchronized的使用和执行成本会更低,因为他不会引起线程的上下文切换和调度。先讲一下重排序&a…

java欧洲_java欧洲/明斯克时区问题

我写了以下程序:import sun.security.action.GetPropertyAction;import java.security.AccessController;import java.text.SimpleDateFormat;import java.util.Date;import java.util.TimeZone;public class Main {public static void main(String[] args) {System…

java.util. 什么意思_java.util中,util是什么意义

展开全部1. util包的框架常用的集合类主要636f70793231313335323631343130323136353331333431343630实现两个“super接口”而来:Collection和Map。1.1 Collection有两个子接口:List和SetList特点是元素有序,且可重复。实现的常用集合类有Arra…

算法描述怎么写伪代码java_伪代码描述算法

伪代码是自然语言和类编程语言组成的混合结构。它比自然语言更精确,描述算法很简洁;同时也可以很容易转换成计算机程序。下面就为大家介绍一下伪代码描述算法的介绍。伪代码描述算法一、算法描述是指对设计出的算法,用一种方式进行详细的描述…

java测试用例编写_TestNG测试用例编写和执行

编写TestNG用例测试基本上包括以下步骤:编写业务逻辑针对业务逻辑中涉及的方法编写测试类,在代码中插入TestNG的注解直接执行测试类或者添加一个testng.xml文件运行 TestNG.下面我们介绍一个完整的例子来测试一个逻辑类;1.创建一个pojo类Empl…

好爽 java_Intellij是进行scala开发的一个非常好用的工具,可以非常轻松查看scala源码,当然用它来开发Java也是很爽的,之前一直在用scala ide和ec...

Intellij是进行scala开发的一个非常好用的工具,可以非常轻松查看scala源码,当然用它来开发Java也是很爽的,之前一直在用scala ide和eclipse,现在换成intellij简直好用到飞起,但是有些人不知道怎么用intellij去创建一个…

java创建读取文件_Java实现文件的创建、读取、写入操作-Fun言

在日常的开发中,对文件的操作经常会有,所以今天教大家其中一种使用Java实现文件的创建、读取、写入操作创建文件String filenameTemp "D:\demo.txt";File filename new File(filenameTemp);if (!filename.exists()) {filename.createNewFile…

java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】

本文实例讲述了MongoDB增删查改操作。分享给大家供大家参考,具体如下:MongoDB自带了一个JavaScript Shell,所以在其中使用js语法是可以的。Insert操作:单条插入var single{"name":"mei","age":22}d…

java中什么是task_20171018java总结——Spring任务调度task:scheduled-tasks

从认识eclipse开始到现在,学习编程已经接近8个月的时间,从什么都不懂,到现在慢慢一点点学习编程,自己在不断地进步,要学习的地方还有很多。自己也从这个平台收获到了很多知识,我也希望在这个博客上面记录自…