使用Docker搭建Nacos的持久化和集群部署
创始人
2024-04-30 02:22:23
0

目录

1. 准备 

1.1 mysql安装

1.2 创建nacos需要的数据库

1.3 下载nacos镜像

1.4 创建自定义网络 (可省略)

1.5 获取nginx镜像

2. nacos集群部署

2.1 将mysql连接到mynet网络(可以省略)

2.2 nacos集群

2.3 使用nginx访问集群


1. 准备 

1.1 mysql安装

  • 下载镜像
docker pull mysql/mysql-server:5.7
  • 在宿主机中相关目录,用于挂载容器的相关数据
mkdir -p /data/mysql/{conf,data}
  • 编写my.cnf配置文件,在/data/mysql/conf目录中 (或下载 直接上传即可)

my.cnf.txt - 蓝奏云 / 需要把后面的txt扩展名删除

[client]
default-character-set=utf8[mysql]
default-character-set=utf8[mysqld]
##官方的配置
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid##下面为添加的自定义配置
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
# default: sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# modeified: 
sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet=10M
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password
  • 创建并启动mysql容器
    docker run -p 3306:3306 \--name mysql \-v /data/mysql/conf/my.cnf:/etc/my.cnf \-v /data/mysql/data:/var/lib/mysql \--privileged=true \--restart=always \-e MYSQL_ROOT_PASSWORD=123456 \-d mysql/mysql-server:5.7
    

    参数说明:

    -p 3306:3306:宿主机端口:容器端口

    --name mysql:容器名字

    -v:挂载宿主机的一个目录, 持久化存储的关键所在,将主机目录挂载到容器对应目录,分别是:配置文件、日志文件、数据文件

    -v /data/mysql/conf:/etc/mysql/conf.d

    -v /data/mysql/logs:/logs

    -v /data/mysql/data:/var/lib/mysq

    --privileged=true:使用该参数,container内的root拥有真正的root权限, 否则,container内的root只是外部的一个普通用户权限

    --restart=always:容器自动启动参数,其值可以为[no,on-failure,always]

    no为默认值,表示容器退出时,docker不自动重启容器

    on-failure表示,若容器的退出状态非0,则docker自动重启容器,还可以指定重启次数,若超过指定次数未能启动容器则放弃

    always表示,只要容器退出,则docker将自动重启容器

    -e MYSQL_ROOT_PASSWORD=123456:设置root的密码

    -d mysql/mysql-server:5.7:后台启动模式及使用的镜像

  • 修改mysql允许Navicat远程连接
    # 进入容器
    docker exec -it mysql /bin/bash# 登录
    mysql -u root -p;# 授权
    grant all privileges on *.* to root@'%' identified by '123456';# 刷新权限
    flush privileges; 
    

    1.2 创建nacos需要的数据库

  • 将3306端口加入防火墙,使用mysql客户端链接数据库
  • 创建数据库
    CREATE DATABASE IF NOT EXISTS nacos_config
    DEFAULT CHARACTER SET utf8
    DEFAULT COLLATE utf8_general_ci;
    

    数据表

    /******************************************/
    /*   数据库全名 = nacos_config   */
    /*   表名称 = config_info   */
    /******************************************/
    CREATE TABLE `config_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(255) DEFAULT NULL,`content` longtext NOT NULL COMMENT 'content',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',`app_name` varchar(128) DEFAULT NULL,`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',`c_desc` varchar(256) DEFAULT NULL,`c_use` varchar(64) DEFAULT NULL,`effect` varchar(64) DEFAULT NULL,`type` varchar(64) DEFAULT NULL,`c_schema` text,PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';/******************************************/
    /*   数据库全名 = nacos_config   */
    /*   表名称 = config_info_aggr   */
    /******************************************/
    CREATE TABLE `config_info_aggr` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(255) NOT NULL COMMENT 'group_id',`datum_id` varchar(255) NOT NULL COMMENT 'datum_id',`content` longtext NOT NULL COMMENT '内容',`gmt_modified` datetime NOT NULL COMMENT '修改时间',`app_name` varchar(128) DEFAULT NULL,`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段';/******************************************/
    /*   数据库全名 = nacos_config   */
    /*   表名称 = config_info_beta   */
    /******************************************/
    CREATE TABLE `config_info_beta` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`content` longtext NOT NULL COMMENT 'content',`beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta';/******************************************/
    /*   数据库全名 = nacos_config   */
    /*   表名称 = config_info_tag   */
    /******************************************/
    CREATE TABLE `config_info_tag` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',`tag_id` varchar(128) NOT NULL COMMENT 'tag_id',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`content` longtext NOT NULL COMMENT 'content',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(20) DEFAULT NULL COMMENT 'source ip',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag';/******************************************/
    /*   数据库全名 = nacos_config   */
    /*   表名称 = config_tags_relation   */
    /******************************************/
    CREATE TABLE `config_tags_relation` (`id` bigint(20) NOT NULL COMMENT 'id',`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',`nid` bigint(20) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`nid`),UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),KEY `idx_tenant_id` (`tenant_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation';/******************************************/
    /*   数据库全名 = nacos_config   */
    /*   表名称 = group_capacity   */
    /******************************************/
    CREATE TABLE `group_capacity` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_group_id` (`group_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表';/******************************************/
    /*   数据库全名 = nacos_config   */
    /*   表名称 = his_config_info   */
    /******************************************/
    CREATE TABLE `his_config_info` (`id` bigint(64) unsigned NOT NULL,`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`data_id` varchar(255) NOT NULL,`group_id` varchar(128) NOT NULL,`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`content` longtext NOT NULL,`md5` varchar(32) DEFAULT NULL,`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00',`src_user` text,`src_ip` varchar(20) DEFAULT NULL,`op_type` char(10) DEFAULT NULL,`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',PRIMARY KEY (`nid`),KEY `idx_gmt_create` (`gmt_create`),KEY `idx_gmt_modified` (`gmt_modified`),KEY `idx_did` (`data_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造';/******************************************/
    /*   数据库全名 = nacos_config   */
    /*   表名称 = tenant_capacity   */
    /******************************************/
    CREATE TABLE `tenant_capacity` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量',`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',`gmt_create` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT '2010-05-05 00:00:00' COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_tenant_id` (`tenant_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表';CREATE TABLE `tenant_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`kp` varchar(128) NOT NULL COMMENT 'kp',`tenant_id` varchar(128) default '' COMMENT 'tenant_id',`tenant_name` varchar(128) default '' COMMENT 'tenant_name',`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),KEY `idx_tenant_id` (`tenant_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';CREATE TABLE users (username varchar(50) NOT NULL PRIMARY KEY,password varchar(500) NOT NULL,enabled boolean NOT NULL
    );CREATE TABLE roles (username varchar(50) NOT NULL,role varchar(50) NOT NULL
    );INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
    

    导进去数据后 我们将数据库容器删除 ,重新创建外网不可访问mysql

    没有自定义网络 先设置自定义网咯

    如下使用  –subnet创建网络(用来指定ip段),–gateway(用来指定网关),my_net为创建的名字

     sudo docker network create --driver bridge --subnet 192.168.0.1/16 --gateway 192.168.0.1 mynet
    
       docker run \--name mysql \--net mynet \--ip 192.168.0.11 \-v /data/mysql/conf/my.cnf:/etc/my.cnf \-v /data/mysql/data:/var/lib/mysql \--privileged=true \--restart=always \-e MYSQL_ROOT_PASSWORD=123456 \-d mysql/mysql-server:5.7   

    1.3 下载nacos镜像

    docker pull nacos/nacos-server:1.1.4

    1.4 创建自定义网络 (可省略)

    docker network create mynet --subnet=192.168.0.0/16

    1.5 获取nginx镜像

    docker pull nginx

    2. nacos集群部署

    因为机器配置较低,本例使用两台nacos服务器演示集群,在真实环境下,为了便于主节点选举,通常集群机器通常为奇数台。

    2.1 将mysql连接到mynet网络(可以省略)

    docker network connect mynet mysql --ip 192.168.0.11

    此时可以查看mynet网络的具体配置:

    docker network inspect mynet

    注: 如果mysql容器还没有创建,也可以创建mysql容器时指定网络配置,(上面已经将mysql连接到mynet,所以不用执行此步):

    docker run \--name mysql \--net mynet \--ip 192.168.0.11 \-v /data/mysql/conf/my.cnf:/etc/my.cnf \-v /data/mysql/data:/var/lib/mysql \--privileged=true \--restart=always \-e MYSQL_ROOT_PASSWORD=123456 \-d mysql/mysql-server:5.7 
    

    2.2 nacos集群

  • 启动第一个节点nacos节点
    docker run -d \--net mynet \--ip 192.168.0.21 \-e PREFER_HOST_MODE=ip \-e MODE=cluster \-e NACOS_SERVERS="192.168.0.22:8848" \-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_MASTER_SERVICE_HOST=192.168.0.11 \-e MYSQL_MASTER_SERVICE_PORT=3306 \-e MYSQL_MASTER_SERVICE_USER=root \-e MYSQL_MASTER_SERVICE_PASSWORD=123456 \-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config \-e MYSQL_DATABASE_NUM=1 \-e NACOS_SERVER_PORT=8848 \--name nacos01 \--restart=always \nacos/nacos-server:1.1.4
    

  • 启动第二个nacos节点
    docker run -d \--net mynet \--ip 192.168.0.22 \-e PREFER_HOST_MODE=ip \-e MODE=cluster \-e NACOS_SERVERS="192.168.0.21:8848" \-e SPRING_DATASOURCE_PLATFORM=mysql \-e MYSQL_MASTER_SERVICE_HOST=192.168.0.11 \-e MYSQL_MASTER_SERVICE_PORT=3306 \-e MYSQL_MASTER_SERVICE_USER=root \-e MYSQL_MASTER_SERVICE_PASSWORD=123456 \-e MYSQL_MASTER_SERVICE_DB_NAME=nacos_config \-e MYSQL_DATABASE_NUM=1 \-e NACOS_SERVER_PORT=8848 \--name nacos02 \--restart=always \nacos/nacos-server:1.1.4
    

    2.3 使用nginx访问集群

  • 创建宿主机挂载目录
    [root@localhost data]# mkdir -p /data/nginx/{conf,log,html}

  • 上传nginx.conf配置文件(上传到/data/nginx/conf目录即可)
  • 配置文件内容如下

    worker_processes 1;events {worker_connections 1024;
    }http {include mime.types;default_type  application/octet-stream;sendfile on;keepalive_timeout 65;gzip on;#服务器的集群#upstream  tomcats {  #服务器集群名字#TODO:172.17.0.3是docker容器的IP #server    172.17.0.3:8080  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。#server    172.17.0.4:8080  weight=2;#}#新增1:nacos集群upstream  nacoses {server    192.168.0.21:8848  weight=1;server    192.168.0.22:8848  weight=1;}  #当前的Nginx的配置server {listen       80;#监听80端口,可以改成其他端口server_name  localhost;#当前服务的域名,没有域名可随便填写#新增2:用于重定向至nacos集群location /nacos {proxy_pass http://nacoses;}location / {root         /usr/share/nginx/html/dist;#将要访问的网站的目录try_files $uri $uri/  /index.html;#该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍}#location  ^~/api/ {#^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除api#proxy_pass http://tomcats/;#}}}
    

  • 启动nginx容器:
    docker run \--name mynginx \--net mynet \-d -p 80:80 \-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /data/nginx/log:/var/log/nginx \-v /data/nginx/html:/usr/share/nginx/html \nginx:latest
    

  • 将mynginx同时连接到bridge网络,用于与宿主机通讯
    [root@localhost ~]# docker network connect bridge mynginx
    

  • 访问控制台确认部署:
  • http://192.168.229.130/nacos

    出现如下界面说明集群正常:

相关内容

热门资讯

安卓双系统添加应用,轻松实现多... 你有没有想过,你的安卓手机里可以同时运行两个系统呢?听起来是不是很酷?想象一边是熟悉的安卓系统,一边...
pipo安卓进系统慢,探究pi... 最近是不是发现你的Pipo安卓系统更新或者运行起来特别慢?别急,今天就来给你好好分析分析这个问题,让...
怎样使用安卓手机系统,安卓手机... 你有没有发现,安卓手机已经成为我们生活中不可或缺的一部分呢?从早晨闹钟响起,到晚上睡前刷剧,安卓手机...
双系统安卓安装caj,轻松实现... 你有没有想过,你的安卓手机里装上双系统,是不是就能同时享受安卓和Windows系统的乐趣呢?没错,这...
安卓使用ios系统教程,安卓用... 你是不是也和我一样,对安卓手机上的iOS系统充满了好奇?想要体验一下苹果的优雅和流畅?别急,今天我就...
安卓系统gps快速定位,畅享便... 你有没有遇到过这样的情况:手机里装了各种地图导航软件,但每次出门前都要等上好几分钟才能定位成功,急得...
安卓手机系统更新原理,原理与流... 你有没有发现,你的安卓手机最近是不是总在提醒你更新系统呢?别急,别急,让我来给你揭秘一下安卓手机系统...
安卓系统通知管理,全面解析与优... 你有没有发现,手机里的通知就像是一群调皮的小精灵,时不时地跳出来和你互动?没错,说的就是安卓系统的通...
安卓系统手机哪买,揭秘哪里购买... 你有没有想过,拥有一部安卓系统手机是多么酷的事情呢?想象你可以自由安装各种应用,不受限制地探索各种功...
安卓系统 ipv4,基于安卓系... 你知道吗?在智能手机的世界里,有一个系统可是无人不知、无人不晓,那就是安卓系统。而在这个庞大的安卓家...
目前安卓是什么系统,探索安卓系... 亲爱的读者,你是否曾好奇过,如今安卓系统究竟是什么模样?在这个科技飞速发展的时代,操作系统如同人体的...
安卓6.0系统比5.0,从5.... 你有没有发现,自从手机更新了安卓6.0系统,感觉整个人都清爽了不少呢?没错,今天咱们就来聊聊这个话题...
安卓2.36系统升级,功能革新... 你知道吗?最近安卓系统又来了一次大变身,那就是安卓2.36系统升级!这可不是一个小打小闹的更新,而是...
安卓系统源码怎么打开,并可能需... 你有没有想过,安卓系统的源码就像是一扇神秘的门,隐藏着无数的技术秘密?想要打开这扇门,你得掌握一些小...
安卓8.0系统体验视频,智能革... 你有没有听说安卓8.0系统最近可是火得一塌糊涂啊!作为一个紧跟科技潮流的数码达人,我当然要来给你好好...
宣传系统漫画app安卓,探索安... 亲爱的读者们,你是否曾在某个午后,百无聊赖地打开手机,想要寻找一些轻松愉悦的读物?今天,我要给你介绍...
鸿蒙替换安卓系统吗,开启智能生... 你知道吗?最近科技圈里可是炸开了锅,因为华为的新操作系统鸿蒙系统,据说要大举进军手机市场,替换掉安卓...
手机安卓系统深度清理,解锁手机... 手机里的东西是不是越来越多,感觉就像一个装满了杂物的储物柜?别急,今天就来教你一招——手机安卓系统深...
安卓上的windows系统,融... 你有没有想过,在安卓手机上也能体验到Windows系统的魅力呢?没错,这就是今天我要跟你分享的神奇故...
安卓系统焦点变化事件,Andr... 你知道吗?在安卓系统的世界里,最近发生了一件超级有趣的事情——焦点变化事件。这可不是什么小打小闹,它...