AICore 带来了 Android 专属的 AI 能力,它要解决什么?采用什么架构思路?

前言
Google 最近发布的 Gemini 模型在全球引起了巨大反响,其在多模态领域的 Video demo 无比震撼。对于 Android 开发者而言,其中最振奋人心的消息莫过于 Gemini Nano 模型将内置到 Android 系统当中,并开放给开发者使用。
事实上,能够自研 LLM 大模型的企业屈指可数,大多数的企业或个人都是在搞基于 LLM 的应用创新。而各大模型们各自为政,提供的能力、对接方式都参差不齐,即便在应用这个维度,开发者也很难整体、高效地去开发、拓展。
要是能够将 AI 相关接口统一、能力整合封装、甚至结合端侧硬件去内置默认的 AI 模型,这将是非常高效、安全的创举!
Google 坐拥全球顶尖的 AI 技术,同时掌控着市占率最高、各领域全面开花的 Android 平台,自然非常有理由、也有实力去做这样的事情。目前已知的是 Google 将在 Android 平台提供 AICore 服务,当前还在宣传阶段、尚未完整公布 API 细节。
笔者将基于披露出来的所有信息,跟大家分享 AICore 的目的和架构思路。
AICore 解决了什么?
早在 Android 14 Beta3 发布的时候,一位开发者 Mishaal Rahman 便在 Pixel 的 /product/priv-app 目录下发现了一个名为 “Google AI Services” 的系统 App。

- 具体的包名为
"com.google.android.aicore" - 目前只是一个
stub版本

按照 Google 的描述:AICore 是运行在 Android 平台上,可以让开发者便捷访问端侧内置的 AI 模型(on-device model)的系统服务。通过 AICore 可以对类似 Gemini Nano 这种端侧模型实现模型管理、运行时调用、安全检查、多模态等能力,并保留相应的 API 给开发者进行灵活的运用。当然这需要端侧模型本身针对移动芯片等设备做专门的优化。
AI 能力
那么具体来说,AICore 可以做哪些场景的支持呢?
包括但不限如下等强大功能:
-
高质量文本摘要、问题回答、问题扩展
-
上下文智能回复
-
高级校对和语法纠正
应用场景
以 Gemini Nano 在 Pixel 8 Pro 设备上为例:
-
即使在手机网络断开的情况下,也能简明扼要地概括录音机应用中的内容,提供端侧摘要能力。

-
利用 Gemini Nano 的支持,开发者可以通过 AICore 实现在
Gboard、WhatsApp等更多的聊天 App 中实现智能回复,给出高质量的回复建议,节省用户的时间。

原理架构

这是 Google 公布的 AICore 的 high-level architecture:
- 对 App 来说,像其他 SDK 一样,暴露 API 和 OS 中的 AICore 能力对接
- 对内部来说,整体上效仿了
Private Compute Core的设计方式,通过开源 API 与网络隔离,兼具透明度和可审计性
细看内部:
- AICore 首先加载
LoRA低等级适配程序,以支持开发人员根据自己的训练数据对大模型进行微调 - 经过上个步骤可以产生所需的 LLM,比如微调 Google 内置的
Gemini Nano - 同时还构建了专门的
Safety features层,确保数据的安全
此外,AICore 支持部署在很多的机器学习芯片上,比如最新的 Google Tensor TPU、旗舰产品 Qualcomm Technologies、Samsung S.LSI 和 MediaTek 芯片中的 NPU 等更多的芯片设备。
如何使用?
目前来说,AICore 只支持 Pixel 8 Pro 设备,API 也仍在开发当中,需要的话可以在如下链接申请内测资格:
- sign up for our Early Access Program

我已经申请了内测资格,通过之后深入分析下 API 和整体链路,届时再分享给大家。
结语
每当出现新的技术,Google 总会整合这些能力,建立统一标准,集成到 Android 框架当中,供开发者便捷地封装,App 灵活地调用。从语音兴起时候的语音识别 SpeechRecognizer、语音播报 Text-to-speech 到智能助理活跃时候的语音交互 VoiceInteraction,再到增强现实、虚拟化盛行时候的 ARCore。
这次的 AICore 也是一样,将 AI 能力规范化、接口/协议统一化,方便开发者进行 LLM 的选择、调整以及应用创新。再借助数以亿计的 Android 设备的呈现,必将加速 AI 技术的发展和普及。
事实上,AICore 内置到 AOSP 当中的话,那么 Android Automotive OS 也将受益。所有从 Android、Automotive 延伸出来的车载机系统,只要芯片硬件上兼容,未来都可以利用 AICore 技术进行很多车载场景的拓展,包括但不限于:
- 记录用户的口音和表达方式进行训练,以增强本地的语音识别和语意理解,分析对话习惯、并结合多模态定制专属的对话形式和内容,提供个性化的话术内容和情感播报
- 学习车主习惯,进行车机主题、驾驶模式、导航路线、车控组合等方面的智能推荐
- 结合车机整体,进行全方位的数据收集,本地进行驾驶、乘坐的回忆统计,给车主更加贴心的总结、建议
大家总说 Android 已趋于成熟、缺乏新意,那么本次的 AICore 绝对是新颖、有趣的话题,赶紧支棱起来。
参考
- AICore Home page
- A New Foundation for AI on Android
- Introducing Gemini: our largest and most capable AI model
- Android 14’s mysterious AICore system app makes its debut on the Play Store
文章推荐
- 如何打造车载语音交互:Google Voice Interaction 给你答案
- Android 标准语音识别框架:SpeechRecognizer 的封装、调用和原理
- 直面原理:5 张图彻底了解 Android TextToSpeech 机制
相关文章:
AICore 带来了 Android 专属的 AI 能力,它要解决什么?采用什么架构思路?
前言 Google 最近发布的 Gemini 模型在全球引起了巨大反响,其在多模态领域的 Video demo 无比震撼。对于 Android 开发者而言,其中最振奋人心的消息莫过于 Gemini Nano 模型将内置到 Android 系统当中,并开放给开发者使用。 事实上…...
python学习1
大家好,这里是七七,今天开始又新开一个专栏,Python学习。这次思考了些许,准备用例子来学习,而不是只通过一大堆道理和书本来学习了。啊对,这次是从0开始学习,因此大佬不用看本文了,小…...
【SpringBoot】Spring Boot 单体应用升级 Spring Cloud 微服务
Spring Cloud 是在 Spring Boot 之上构建的一套微服务生态体系,包括服务发现、配置中心、限流降级、分布式事务、异步消息等,因此通过增加依赖、注解等简单的四步即可完成 Spring Boot 应用到 Spring Cloud 升级。 Spring Boot 应用升级为 Spring Cloud…...
el-tree搜索的使用
2023.12.11今天我学习了如何对el-tree进行搜索的功能,效果如下: 代码如下: 重点部分:给el-tree设置ref,通过监听roleName的变化过滤数据。 default-expand-all可以设置默认展开全部子节点。 check可以拿到当前节点的…...
Java使用Microsoft Entra微软 SSO 认证接入
1. Microsoft Entra Microsoft Entra ID 是基于云的标识和访问管理服务,可帮助员工访问外部资源。 示例资源包括 Microsoft 365、Azure 门户以及成千上万的其他 SaaS 应用程序。 Microsoft Entra ID 还可帮助他们访问你的企业 Intranet 上的应用等内部资源&#x…...
“华为杯”研究生数学建模竞赛2016年-【华为杯】A题:无人机在抢险救灾中的优化运用(附获奖论文及MATLAB代码实现)
目录 摘 要: 1. 问题重述 1.1. 问题背景 1.2. 需要解决的问题 1.2.1....
17--异常处理
1、异常概述 1.1 什么是异常 异常:指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。 异常指的并不是语法错误和逻辑错误。语法错了,编译不通过,不会产生字节码文件,根本运…...
数据结构 | c++编程实现求二叉树的叶节点的个数。(递归非递归)
目录 非递归 递归 非递归 #include<iostream> #include<stack> using namespace std; struct BTNode {int data;BTNode* left, * right;BTNode(int val) :data(val), left(NULL), right(NULL) {}}; //递归的方式求二叉树的叶子结点数 int countnode(BTNode* t) …...
python读取csv文件
在Python中,你可以使用pandas库来读取CSV文件。以下是一个基本的例子: import pandas as pd# 读取CSV文件data pd.read_csv(filename.csv)# 显示前几行数据print(data.head()) 这里,filename.csv应该被替换为你的CSV文件的实际路径和名称。…...
租一台服务器多少钱决定服务器的价格因素有哪些
租一台服务器多少钱决定服务器的价格因素有哪些 大家好我是艾西,服务器这个名词对于不从业网络行业的人们看说肯定还是比较陌生的。在21世纪这个时代发展迅速的年代服务器在现实生活中是不可缺少的一环,平时大家上网浏览自己想要查询的信息等都是需要服…...
深度学习(生成式模型)——ADM:Diffusion Models Beat GANs on Image Synthesis
文章目录 前言基础模型结构UNet结构Timestep Embedding关于为什么需要timestep embedding global attention layer 如何提升diffusion model生成图像的质量Classifier guidance实验结果 前言 在前几篇博文中,我们已经介绍了DDPM、DDIM、Classifier guidance等相关的…...
Ubuntu无法解析域名DNS指向127.0.0.53问题处理
用nslookup 域名.com返回127.0.0.53无法解析错误 error"Could not lookup srv records on xxx.com: lookup xxx.com on 127.0.0.53:53: no such host" #首次尝试编辑/etc/resolved.conf文件DNS为8.8.8.8 或1.1.1.1 发现reboot重启后又恢复到127.0.0.53的内容#再次尝…...
Intewell-Hyper I_V2.0.0_release版本正式发布
新型工业操作系统_Intewell-Hyper I_V2.0.0_release版本正式发布 软件发布版本信息 版本号:V2.0.0 版本发布类型:release正式版本 版本特点 1.建立Intewell-Hyper I基线版本 版本或修改说明 基于Intewell-Lin V2.3.0_release版本: 1.Devel…...
Mysql mybatis 语法示例
service package com.ruoyi.goods.service;import java.util.List; import com.ruoyi.goods.domain.GoodsProducts;/*** 商品Service接口* * author ruoyi* date 2023-08-27*/ public interface IGoodsProductsService {/*** 查询商品* * param ProductID 商品主键* return 商…...
第77讲:二进制方式搭建MySQL数据库5.7版本以及错误日志管理
二进制方式搭建MySQL数据库5.7版本 前面是使用的yum的方式安装的MySQL数据库,在企业生产环境中大多数都用二进制方式安装。 本次使用二进制方式搭建MySQL 5.7.36版本。 1.二进制安装MySQL5.7版本 1.1.下载MySQL5.7版本的二进制文件 [root@mysql ~]# wget https://downloads.…...
R语言,table()函数实现统计每个元素出现的频数+并将最终统计频数结果转换成dataframe数据框形式
在 R中,要统计dataframe数据框中每个元素出现的频数,可以使用table()函数。以下是一个示例: 目录 一、创建数据 二、统计第一列每个元素出现的频数 三、统计第二列每个元素出现的频数 四、将频数结果转换为数据框,并改列名 一…...
微信小程序uniapp记住密码
记住密码功能 在请求登录接口成功后,我们需要判断用户是否勾选记住密码,如果是,则将记住密码状态、账号信息存入本地。 下次登录时,获取本地的记住密码状态,如果为true则获取本地存储的账号信息,将信息回填…...
喜报!Coremail荣获2023信创“大比武”优秀生态融合奖
近期,2023信创“大比武”金融业务创新应用赛道(简称金融赛道)活动正式落下帷幕。经过赛程的层层考核,中泰证券股份有限公司(简称“中泰证券”)与Coremail联合组成的“中泰证券CACTER邮件安全保卫队”最终在…...
知识库SEO:提升网站内容质量与搜索引擎排名的策略
随着搜索引擎算法的不断更新和优化,单纯依靠关键词堆砌和外部链接的时代已经过去。现在的SEO(搜索引擎优化)已经转向了以提供高质量、有价值内容为核心的阶段。知识库SEO便是这个新阶段的重要策略之一。 | 一、知识库SEO的概念与意义 1.定义…...
GPIO复用时5个调试接口引脚要注意
一、JTAG引脚作为GPIO使用要注意 例如PA15引脚,它默认时JTDI引脚,但是可以复用为SPI的NSS片选信号。在初始化时,需要先开启AFIO时钟,再关闭JTAG功能,否则GPIO功能仍然不起作用。初始化代码如下: stm32f10…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
