RK3399平台Android7系统编译及问题解决

目录

【Android系统编译】

平台:

Android编译:

烧写固件路径:

【android版本号查看】

【RK3399开发环境搭建】

4.1 JDK 安装

4.2 Linux 服务器开发环境搭建

4.2.1 发布包使用 Linux 服务器系统版本

4.2.2 网络环境搭建

4.2.3 软件包安装

4.2.4 交叉编译工具链介绍

4.3 编译模式

【代码编译】

4.4.1挖掘机编译

uboot 编译步骤:

kernel 编译步骤:

android 编译步骤:

android 升级包:

一键编译命令:

【编译问题汇总】

解决如下:

(1)修改/root/.jack-settings文件

(2)修改/root/.jack-server/config.properties文件

(3)注释文件”...TLSv1, TLSv1.1...”行,重启jack服务。

查看jack启动是失败日志:

【Android7源码编译】

【编译c程序】

【刷机或烧写固件说明】


【Android系统编译】

平台:

系统android7.1 硬件平台:RK3399

裁剪剩余App路径:

android7\out\target\product\rk3399_xxx\system\app

Android编译:

  #  source build/envsetup.sh

  #  lunch rk3399_xxx-userdebug   

  #  make clean

  #  make -j20

烧写固件路径:

~android7\out\target\product\rk3399_xxx\

【android版本号查看】

>adb shell "getprop ro.build.version.sdk"

adb server version (31) doesn't match this client (41); killing...

* daemon started successfully

【RK3399开发环境搭建】

4.1 JDK 安装

Android7.1 系统编译依赖于 JAVA 8。编译之前需安装 OpenJDK。

安装命令如下。

sudo apt-get install openjdk-8-jdk

配置 JAVA 环境变量,例如,安装路径为/usr/lib/jvm/java-8-openjdk-amd64,可在终

端执行如下命令配置环境变量。

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

4.2 Linux 服务器开发环境搭建

Rockchip Buildroot Linux SDK 是在 Ubuntu 16.04 上开发测试的。因此,我们推荐使用

Ubuntu 16.04 的系统进行编译。其他版本没有具体测试,可能需要对软件包做相应调整。

除了系统要求外,还有其他软硬方面的要求。

l 硬件要求:64 位系统,硬盘空间大于 40G。如果您进行多个构建,将需要更大的硬盘空间。

l 软件包依赖:除了 python 2.7,make 3.8,git 1.7 之外,还需要安装一些额外的软件

包,将在软件包安装章节中列出。

4.2.1 发布包使用 Linux 服务器系统版本

本 SDK 开发环境安装如下版本 Linux 系统,SDK 默认均以此 Linux 系统进行编译:Rockchip Buildroot Linux 软件开发指南 4 开发环境搭建

Copyright 2019 @Fuzhou Rockchip Electronics Co., Ltd. 4-2

Ubuntu 16.04.2 LTS

Linux version 4.4.0-62-generic (buildd@lcy01-30) (gcc version 5.4.0 20160609

(Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017

4.2.2 网络环境搭建

请用户自行配置网络,并安装 nfs,samba,ssh 等网络组件。

4.2.3 软件包安装

操作系统安装好后,且用户已自行配置好网络环境,则可继续如下步骤完成相关软件包的安装。

1. apt-get update

$ sudo apt-get update

2. 安装 Kernel 及 U-Boot 编译需要依赖的软件包

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl

zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev

x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils

xsltproc unzip device-tree-compiler liblz4-tool

3. 安装 Buildroot 编译需要依赖的软件包

sudo apt-get install libfile-which-perl sed make binutils gcc g++ bash patch gzip

bzip2 perl tar cpio python unzip rsync file bc libmpc3 git repo texinfo pkg-config cmake

tree texinfo

若编译遇到报错,可以视报错信息,安装对应的软件包。

4.2.4 交叉编译工具链介绍

鉴于 Rockchip Buildroot SDK 目前只在 Linux 下编译,我们也仅提供了 Linux 下的交叉编译

工具链。其中 U-Boot 及 Kernel 使用的编译工具链预置目录在 prebuilt/gcc 下,buildroot 使用

该开源软件中编译出来的工具链。

U-Boot 及 Kernel 编译工具链

prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux

-gnu/bin/aarch64-linux-gnu对应版本

gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)

Buildroot 编译工具链

buildroot/output/rockchip_rk3308_release/host/bin/aarch64-rockchip-linux-gnu对应版本

gcc version 6.4.0 (Buildroot 2018.02-rc3-00017-g9c68ede

如果需要其他平台或版本的工具链,需自行编译。

上述环境准备好后,Linux 服务器开发环境搭建已完成,可以下载编译源代码了。

4.3 编译模式

SDK 默认以 userdebug 模式编译。

使用 adb 时,需要先执行 adb root ,adb disable-verity 关闭 system 分区的 verity

特性,重启后再执行 adb root, adb remount,进而进行 push 操作来 debug。

代码编译

4.4.1挖掘机编译
uboot 编译步骤:

# cd u-boot

# make rk3399_defconfig

# make ARCHV=aarch64

kernel 编译步骤:

# cd kernel

# make ARCH=arm64 rockchip_defconfig -j8

# make ARCH=arm64 rk3399-sapphire-excavator-edp.img -j12

android 编译步骤:

# source build/envsetup.sh

# lunch rk3399_xxx-userdebug

# make -j20 

# ./mkimage.sh

完成编译后,执行 SDK 根目录下的 mkimage.sh 后在 rockdev/Image-xxx/目录生成完整

的固件包(xxx 是具体 lunch 的产品名)。

android 升级包:

# make otapackage -j20

# ./mkimage.sh ota -j20

一键编译命令:

一键编译前删除多余app:

#rm -rf out/target/product/rk3399_xxx/system/priv-app/*

#rm -rf out/target/product/rk3399_xxx/system/app/*

./build-rk3399-xxx.sh -o -u -v 0.0.0.4

编译输出路径:T:\xxx\android7\IMAGE\RK3399-SAPPHIRE-EXCAVATOR-EDP_7.1.2_20211008.1630_1.0.0.1\IMAGES

【编译问题汇总】

# make rk3399_defconfig

:~/xxx/android7/u-boot$ make rk3399_defconfig

  HOSTCC  scripts/basic/fixdep

/bin/sh: 1: cc: not found

scripts/Makefile.host:118: recipe for target 'scripts/basic/fixdep' failed

make[1]: *** [scripts/basic/fixdep] Error 127

Makefile:416: recipe for target 'scripts_basic' failed

make: *** [scripts_basic] Error 2

# make -j12

Jack server already installed in "/root/.jack-server"

Communication error with Jack server (35), try 'jack-diagnose' or see Jack server log

SSL error when connecting to the Jack server. Try 'jack-diagnose'

SSL error when connecting to the Jack server. Try 'jack-diagnose'

[  0% 21/29024] target  C++: libskia_static ...external/skia/src/core/SkBitmapProcState.cpp

ninja: build stopped: subcommand failed.

build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed

make: *** [ninja_wrapper] Error 1

#### make failed to build some targets (59 seconds) ####

解决如下:

(1)修改/root/.jack-settings文件

$/root/.jack-settings

# Server settings

SERVER_HOST=127.0.0.1

# (修改) //默认8076

SERVER_PORT_SERVICE=8016

# (修改) //默认8077

SERVER_PORT_ADMIN=8017 

# Internal, do not touch

SETTING_VERSION=4

继续报错:

Jack server failed to (re)start, try 'jack-diagnose' or see Jack server log

SSL error when connecting to the Jack server. Try 'jack-diagnose'

SSL error when connecting to the Jack server. Try 'jack-diagnose'

[ 46% 23797/50840] target Prebuilt: webview (o...01/obj/APPS/webview_intermediates/package.apk

Archive:  out/target/product/rk3399_xxx/obj/APPS/webview_intermediates/package.apk

  inflating: out/target/product/rk3399_xxx/obj/APPS/webview_intermediates/uncompressedlibs/lib/arm64-v8a/libwebviewchromium.so  

  inflating: out/target/product/rk3399_xxx/obj/APPS/webview_intermediates/uncompressedlibs/lib/armeabi-v7a/libwebviewchromium.so  

deleting: lib/arm64-v8a/libwebviewchromium.so

deleting: lib/armeabi-v7a/libwebviewchromium.so

  adding: lib/arm64-v8a/libwebviewchromium.so (stored 0%)

  adding: lib/armeabi-v7a/libwebviewchromium.so (stored 0%)

ninja: build stopped: subcommand failed.

build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed

make: *** [ninja_wrapper] Error 1

#### make failed to build some targets (16:26 (mm:ss)) ####

(2)修改/root/.jack-server/config.properties文件

$vim /root/.jack-server/config.properties

#

#Wed Dec 08 07:43:36 UTC 2021

jack.server.max-jars-size=104857600

jack.server.max-service=6

jack.server.service.port=8016

jack.server.max-service.by-mem=1\=2147483648\:2\=3221225472\:3\=4294967296

jack.server.admin.port=8017

jack.server.config.version=2

jack.server.time-out=7200

继续报错:

hardware/rockchip/camera/CameraHal/CameraHal.cpp:747:63: warning: unused parameter 'arg2' [-Wunused-parameter]

int CameraHal::sendCommand(int32_t cmd, int32_t arg1, int32_t arg2)

                                                              ^

hardware/rockchip/camera/CameraHal/CameraHal.cpp:783:25: warning: unused parameter 'fd' [-Wunused-parameter]

int CameraHal::dump(int fd)

                        ^

13 warnings generated.

[ 37% 7943/21396] target StaticLib: libv8_32...TATIC_LIBRARIES/libv8_intermediates/libv8.a)

ninja: build stopped: subcommand failed.

build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed

make: *** [ninja_wrapper] Error 1

#### make failed to build some targets (06:48 (mm:ss)) ####

(3)注释文件...TLSv1, TLSv1.1...行,重启jack服务。

$vim /etc/java-8-openjdk/security/java.security

# Example:

#   jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048

#   jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \

#    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \

#    include jdk.disabled.namedCurves

# Legacy algorithms for Secure Socket Layer/Transport Layer Security (SSL/TLS)

  1. Remove TLSv1, TLSv1.1 from jdk.tls.disabledAlgorithms in /etc/java-8-openjdk/security/java.security file
  2. Restart the jack server: cd /prebuilts/sdk/tools/ ./jack-admin kill-server ./jack-admin start-server

#cd /prebuilts/sdk/tools/

#./jack-admin kill-server

#./jack-admin start-server

#make -j20

#./mkimage.sh

编译完成:

system/core/libpixelflinger/tests/codegen/../../codeflinger/ARMAssemblerProxy.h:42:21: note: hidden overloaded virtual function 'android::ARMAssemblerProxy::reset' declared here: different number of parameters (0 vs 1)

    virtual void    reset();

                    ^

1 warning generated.

[ 93% 9921/10637] host Java: ahat-tests (out/host/common/obj/JAVA_LIBRARIES/ahat-tests_intermediates/classes)

Note: art/tools/ahat/test/SortTest.java uses unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.

[ 97% 10342/10637] host Java: android-icu4j-host (out/host/common/obj/JAVA_LIBRARIES/android-icu4j-host_intermediates/classes)

Note: Some input files use or override a deprecated API.

Note: Recompile with -Xlint:deprecation for details.

Note: external/icu/android_icu4j/src/main/java/android/icu/impl/Relation.java uses unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.

[ 99% 10629/10637] host Java: android-icu4j-tests-host (out/host/common/obj/JAVA_LIBRARIES/android-icu4j-tests-host_intermediates/classes)

Note: Some input files use or override a deprecated API.

Note: Recompile with -Xlint:deprecation for details.

Note: Some input files use unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.

[100% 10637/10637] Checking build with Jack: out/host/common/obj/JAVA_LIBRARIES/ahat-test-dump_intermediates/jack.check.timestamp

查看jack启动是失败日志:

#cat /root/.jack-server/logs/jack-server-0-0.log

02:06:47.635: SEVERE: com.android.jack.launcher.ServerLauncher: Server 1 Exception

com.android.jack.server.api.v01.ServerException: './config.properties' must have permission rw------- but have rw-rwxrwx

        at com.android.jack.server.JackServerImpl.run(JackServerImpl.java:65)

        at com.android.jack.launcher.ServerLauncher$3.run(ServerLauncher.java:391)

        at java.lang.Thread.run(Thread.java:748)

Caused by: java.io.IOException: './config.properties' must have permission rw------- but have rw-rwxrwx

        at com.android.jack.server.JackHttpServer.checkAccess(JackHttpServer.java:696)

        at com.android.jack.server.JackHttpServer.loadConfig(JackHttpServer.java:513)

        at com.android.jack.server.JackHttpServer.<init>(JackHttpServer.java:379)

        at com.android.jack.server.JackServerImpl.run(JackServerImpl.java:61)

        ... 2 more

解决办法:

# chmod 600 /root/.jack-server/config.properties

问题:

out/target/common/obj/PACKAGING/system-api.txt:47262: error 4: Added public method android.view.WindowManager.registerPointerEventListener(MPointerEventListener) out/target/common/obj/PACKAGING/system-api.txt:47264: error 4: Added public method android.view.WindowManager.unregisterPointerEventListener(MPointerEventListener) out/target/common/obj/PACKAGING/system-api.txt:47419: error 3: Added class WindowManager.MPointerEventListener to package android.view ****************************** You have tried to change the API from what has been previously approved. To make these errors go away, you have two choices: 1) You can add "@hide" javadoc comments to the methods, etc. listed in the errors above. 2) You can update current.txt by executing the following command: make update-api To submit the revised current.txt to the main Android repository, you will need approval. ******************************

解决办法:

make update-api 

【Android7源码编译】

u-boot编译步骤

$  cd u-boot

$  make rk3399_defconfig

$  make ARCHV=aarch64

kernel编译步骤

$  cd kernel

$  make ARCH=arm64 rockchip_defconfig -j20         

$  make ARCH=arm64 rk3399-sapphire-excavator-edp.img -j20

android编译步骤

$ source build/envsetup.sh

$ lunch rk3399_xxx-userdebug

$ make -j20

$ ./mkimage.sh

U盘、SD卡启动盘烧写镜像制作

一键编译前删除多余app(暂时发现没有作用)

$rm -rf out/target/product/rk3399_xxx/system/priv-app/*

$rm -rf out/target/product/rk3399_xxx/system/app/*

$./build-rk3399-xxx.sh -o -u -v 1.0.1.19-cangjie2

【编译c程序】

source build/envsetup.sh

lunch rk3399_xxx-userdebug

mmm splash/

Android.mk文件:

LOCAL_PATH := $(call my-dir)

################################################################################

include $(CLEAR_VARS)

LOCAL_MODULE_PATH := splash

LOCAL_SHARED_LIBRARIES :=  libc libutils libcutils liblog

# LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES:= splash.c

LOCAL_MODULE := splash

include $(BUILD_EXECUTABLE)

################################################################################

编译完成后bin文件位置:

splash/splash

【刷机或烧写固件说明

以上编译完毕,线刷固件生成路径Android_source/android7/rockdev/Image-rk3399_xxx

U盘刷机包:

M:xxx\android7\IMAGE\RK3399-SAPPHIRE-EXCAVATOR-EDP_7.1.2_20220315.0132_0.0.0.4\IMAGES\rk3399_xxx-target_files-eng.root.zip改名为update.zip放置U盘根目录即可。

SD卡刷机包:

M:xxx\android7\IMAGE\RK3399-SAPPHIRE-EXCAVATOR-EDP_7.1.2_20220315.0132_0.0.0.4\IMAGES\update.img改名为sdupdate.img放置SD卡根目录即可。

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

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

相关文章

【树——数据结构】

文章目录 1.基本概念2.基本术语1.结点之间的关系描述2.结点&#xff0c;树的属性描述3.有序树&#xff0c;无序树4.森林 3.树的性质考点1考点2考点3考点4 4.树的存储结构5.树和森林的遍历 1.基本概念 结点&#xff0c;根节点&#xff0c;分支结点&#xff0c;叶子结点&#xf…

Redis系列-1 Redis介绍

背景&#xff1a; 本文介绍Redis相关知识&#xff0c;包括Redis的使用、单线程机制、事务、内存过期和淘汰机制。后续将在《三方件-3 Redis持久化机制》中介绍Redis基于RDB和AOF的持久化机制&#xff1b;在《三方件-4 Redis集群》介绍主从、哨兵和Cluster集群相关的内容&#…

python 11Pandas数据可视化实验

实验目的&#xff1a; 学会使用Pandas操作数据集&#xff0c;并进行可视化。 数据集描述&#xff1a; 该数据集是CNKI中与“中药毒理反应”相关的文献信息&#xff0c;包含文章题目、作者、来源&#xff08;出版社&#xff09;、摘要、发表时间等信息。 实验要求&#xff1…

Element对象

Element对象 Element是一个通用性非常强的基类&#xff0c;所有Document对象下的对象都继承自它&#xff0c;这个对象描述了所有相同种类的元素所普遍具有的方法和属性&#xff0c;一些接口继承自Element并且增加了一些额外功能的接口描述了具体的行为&#xff0c;例如HTMLEle…

QT-QTCreator环境配置

准备工作&#xff1a; 下载QT: 链接&#xff1a;https://pan.baidu.com/s/1prJcsC4DGqhKiXvLuPQFVA?pwd60b3 提取码&#xff1a;60b3下载WindowsKits&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1QNiS3HpbH5M5kXx5AhkqnQ?pwde2h8 提取码&#xff1a;e2h8安装的…

Windows环境下基于CMake构建Lua

Windows环境下基于CMake构建Lua 环境&#xff01;&#xff01;&#xff01;注意&#xff1a; lua-5.4.6.tar.gz压缩包中&#xff0c;并未提供luac.c文件&#xff0c;无法构建luac.exe&#xff0c;可以从lua-5.4.5.tar.gz压缩包中拷贝使用 一、搭建基于CMake构建的Lua环境二、构…

Python-快速搭建一个管理平台

目录 &#x1f4dc; 准备工作 一、项目介绍 ✨ 二、制作数据库表 添加信息 ⚒️ 三、运行client.exe &#x1f680; 1、连接数据库&#xff0c;选择对应表&#xff0c;生成代码 2、把后端代码依次复制到项目中 3、把前端代码依次复制到前端项目中 4、添加路由 四、运行后端项目…

python生成随机字符串

随机字符的场景大致有以下场景&#xff1a; 1.产生随机字符串 无数字 2.产生随机长度的字符串 无数字、有数字 3.产生随机手机号 4.产生随机n位的数字 5.产生随机n以内的数字 随机使用的两种思路如下&#xff1a; 一&#xff1a;使用random.randint(0,n) 我们有一个包含…

《21天学通C++》(第十三章) 类型转换运算符

1.为什么需要类型转换&#xff1f; ①兼容不同类型&#xff1a; 在C中不同类型的数据不能直接进行运算&#xff0c;如需要则要进行类型转换 ②指针转换&#xff1a; 在处理指针时&#xff0c;经常需要把一个类型的指针转化为另一个类型的指针 ③与C语言兼容&#xff1a; C兼…

[1678]旅游景点信息Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 旅游景点信息管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql…

【信息系统项目管理师知识点速记】进度管理:排列活动顺序

10.5 排列活动顺序 排列活动顺序是识别和记录项目活动之间关系的过程,主要作用是定义工作之间的逻辑顺序,以在既定的所有项目制约因素下获得最高的效率。本过程需要在整个项目期间开展。 10.5.1 输入 项目管理计划: 进度管理计划:规定了排列活动顺序的方法、准确度和其他…

数据结构:图

数据结构&#xff1a;图 前言 在自动化程序分析中&#xff0c;图和树的一些算法起到了至关重要的作用&#xff0c;所以在开始自动化程序分析的研究前&#xff0c;我用了两天复习了一遍数据结构中的图。本章主要内容有图的基本概念&#xff0c;图的存储和图相关的经典算法&…

OpenCV(二)—— 车牌定位

从本篇文章开始我们进入 OpenCV 的 Demo 实战。首先&#xff0c;我们会用接下来的三篇文章介绍车牌识别 Demo。 1、概述 识别图片中的车牌号码需要经过三步&#xff1a; 车牌定位&#xff1a;从整张图片中识别出牌照&#xff0c;主要操作包括对原图进行预处理、把车牌从整图…

数据结构--顺序表经典OJ题

例1&#xff1a;合并有序顺序表 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff…

测试开发工具开发 -JMeter 函数二次开发

在JMeter中开发自定义函数是一个常见的需求&#xff0c;允许我们扩展JMeter的功能以适应特定的测试需求。自定义函数可以用来处理数据&#xff0c;生成输出&#xff0c;或者执行特定的运算。通过JMeter函数二次开发可以帮我们解决实际测试过程中造数难的问题 用过JMeter的同学…

JAVASE->数据结构|顺序表底层逻辑

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;再无B&#xff5e;U&#xff5e;G-CSDN博客 目标&#xff1a; 1. 什么是 List 2. List 常见接口介绍 3. …

java并发编程-AQS介绍及源码详解

介绍 AQS 的全称为 AbstractQueuedSynchronizer &#xff0c;就是抽象队列同步器。 从源码上可以看到AQS 就是一个抽象类&#xff0c;它继承了AbstractOwnableSynchronizer&#xff0c;实现了java.io.Serializable接口。 public abstract class AbstractQueuedSynchronizere…

信号与线性系统 1绪论

信号 信号是随时间变化的某种物理量&#xff08;狭义&#xff09; 本课程中&#xff0c;信号用 函数&#xff08;而且是一维函数&#xff09;表示 连续 离散 信号分类 确定与随机&#xff1a;是否能以确定的时间函数表示离散与连续&#xff1a;是用全体实数还是特定整数来描述…

普乐蛙景区vr体验馆VR游乐场设备身历其境体验

小编给大家推荐一款gao坪效产品【暗黑战车】&#xff0c;一次6人同乘&#xff0c;炫酷外观、强大性能和丰富内容适合各个年龄层客群&#xff0c;紧张刺激的VR体验让玩家沉浸在元宇宙的魅力中&#xff0c;无论是节假日还是平日&#xff0c;景区商场助力门店提高客流量和营收~ ◆…

苹果和OpenAI再续前缘,iOS 18会是颠覆级的吗?|TodayAI

据彭博社最新报道&#xff0c;苹果公司已经与人工智能领域的先锋企业OpenAI重启了对话&#xff0c;双方目前正在讨论一项可能的合作&#xff0c;以将OpenAI的生成式人工智能技术整合到苹果即将推出的iOS 18操作系统中。这一举措表明&#xff0c;苹果正加速其在人工智能技术上的…