当前位置: 首页 > news >正文

Flutter入门教程:从零开始的Flutter开发指南

Flutter入门教程:从环境搭建到应用发布

概述

本文提供了全面的Flutter入门教程,涵盖环境搭建、基础Widget使用、界面设计与美化,以及实战项目开发等内容。通过本教程,开发者能够快速上手Flutter开发,掌握开发跨平台应用的基本流程,包括集成第三方库和发布应用到各大应用商店。

Flutter简介

什么是Flutter

Flutter是由Google开发的一个开源UI框架,它使用Dart语言编写,并且可以用来快速构建跨平台移动应用程序,支持iOS和Android两大主流移动操作系统。Flutter的优势在于可以使用一套代码库同时开发iOS、Android和Web等不同平台的应用,同时具有较高的开发效率和灵活的定制能力。

Flutter的优势

  1. 高性能:Flutter使用Skia图形库,实现了自定义渲染引擎,保证了应用的高性能和流畅性。
  2. 快速开发:Flutter采用了热重载技术,开发者可以几乎实时看到代码修改后的效果。
  3. 自定义性强:Flutter框架提供了丰富的Widget,支持高度定制化的界面设计。
  4. 跨平台:使用一套代码库可以同时开发iOS、Android和Web等不同平台的应用。
  5. 社区支持:Flutter由于其简单易用和强大功能,吸引了大量开发者,形成了庞大的社区支持。

Flutter的生态环境

Flutter有着丰富的生态环境,不仅有大量活跃的开发者贡献代码,还有很多高质量的第三方库,如flutter_package_infoflutter_audioflutter_image_picker等。同时,由于Flutter的流行,许多免费和付费的课程、教程、书籍可以帮助开发者快速入门Flutter开发。

开发环境搭建

Flutter开发环境的搭建主要包括安装Flutter SDK、安装IDE和工具,以及创建第一个Flutter项目。

安装Flutter SDK

首先,访问Flutter官网下载适合您操作系统的Flutter安装包,解压并确保解压路径包含相关环境变量。打开命令行工具,输入以下命令来验证是否安装成功:

flutter doctor

该命令会检查您的系统是否满足Flutter开发环境的要求,并提出需要安装的工具或软件。

安装IDE和工具

为了方便开发Flutter应用,可以使用以下IDE和开发工具:

  • IDE:Android Studio 或 Visual Studio Code。推荐安装Flutter插件。
  • 工具:Flutter SDK自带的工具,包括flutter doctorflutter runflutter pub等。

创建第一个Flutter项目

使用Flutter命令行工具创建一个新的Flutter项目:

flutter create my_first_flutter_app

这将创建一个名为my_first_flutter_app的新目录,包含了一个基本的Flutter应用结构。接着,进入目录并运行应用:

cd my_first_flutter_app
flutter run

此时,您应该能在手机或模拟器上看到Flutter的启动界面"Hello World!"。

基础Widget介绍

Flutter的界面是由各种Widget组成的,每个Widget负责界面的一部分。

StatelessWidget与StatefulWidget

  • StatelessWidget:无状态Widget,一般用于界面不随数据变化而变化的场景。
  • StatefulWidget:有状态Widget,适用于界面需要响应数据变化的场景。

以下是一个简单的例子,演示StatelessWidget和StatefulWidget的使用:

import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text('StatelessWidget Example')),body: Center(child: Text('这是一个StatelessWidget')),),);}
}class MyStatefulWidget extends StatefulWidget {_MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}class _MyStatefulWidgetState extends State<MyStatefulWidget> {int _counter = 0;void _incrementCounter() {setState(() {_counter++;});}Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('StatefulWidget Example')),body: Center(child: Text('点击按钮$_counter次')),floatingActionButton: FloatingActionButton(onPressed: _incrementCounter,child: Icon(Icons.add),),);}
}

常用布局Widget

Flutter提供了各种布局Widget,如ColumnRowExpandedFlexibleAlignPadding等。

import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text('布局示例')),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[Padding(padding: EdgeInsets.all(50),child: Text('上方内容'),),Expanded(child: Container(color: Colors.grey,),),Padding(padding: EdgeInsets.all(50),child: Text('下方内容'),),],),),),);}
}

常用交互Widget

交互Widget是主要用于处理用户交互的Widget,例如按钮(Button)、输入框(TextFormField)等。

import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text('交互示例')),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[TextField(decoration: InputDecoration(labelText: '输入框',border: OutlineInputBorder(),),),SizedBox(height: 20),ElevatedButton(onPressed: () {},child: Text('确定'),),],),),),);}
}

界面设计与美化

Flutter提供了丰富的界面设计和美化工具,让开发者能够轻松地创建美观且符合功能要求的应用界面。

常见布局技巧

  • 使用AlignPositionedStack等Widget进行复杂布局。
  • 使用PaddingEdgeInsets等Widget调整Widget的边缘空间。
import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text('布局技巧示例')),body: Stack(alignment: Alignment.center,children: <Widget>[Container(width: 200,height: 200,color: Colors.blue,),Align(alignment: Alignment.topLeft,child: Container(width: 100,height: 100,color: Colors.red,),),Positioned(top: 50,left: 50,child: Container(width: 100,height: 100,color: Colors.green,),),],),),);}
}

使用主题和样式

使用主题和样式可以快速统一整个应用的外观风格。ThemeData提供了设置应用主题的方法,如颜色、字体、边距等。

import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(theme: ThemeData(primarySwatch: Colors.blue,textTheme: TextTheme(bodyText1: TextStyle(fontSize: 20),bodyText2: TextStyle(fontSize: 16),),),home: Scaffold(appBar: AppBar(title: Text('主题和样式')),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[Text('这是bodyText1'),Text('这是bodyText2'),],),),),);}
}

优化界面显示效果

  • 使用OpacityAnimatedOpacity等Widget优化显示效果。
  • 配合动画效果,如AnimatedContainerAnimatedPositioned等。
import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text('优化显示效果')),body: Center(child: Opacity(opacity: 0.5,child: Container(width: 200,height: 200,color: Colors.red,),),),),);}
}

实战项目开发

本节通过一个简单的计步器应用开发,介绍Flutter项目开发的基本流程和技巧。

开发一个简单的计步器应用

计步器应用的主要功能是记录用户的步数,并将其显示给用户。以下是实现该功能的步骤:

  1. 定义步数状态变量。
  2. 使用StatefulWidget监听用户的步数变动。
  3. 在用户界面显示步数。
import 'package:flutter/material.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(home: MyCounterApp(),);}
}class MyCounterApp extends StatefulWidget {_MyCounterAppState createState() => _MyCounterAppState();
}class _MyCounterAppState extends State<MyCounterApp> {int _counter = 0;void _incrementCounter() {setState(() {_counter++;});}Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('计步器')),body: Center(child: Text('步数: $_counter'),),floatingActionButton: FloatingActionButton(onPressed: _incrementCounter,tooltip: 'Increment',child: Icon(Icons.add),),);}
}

集成第三方库

在Flutter项目中集成第三方库可以扩展应用的功能。例如,通过集成flutter_steps_counter库来实现计步器功能。

import 'package:flutter/material.dart';
import 'package:flutter_steps_counter/flutter_steps_counter.dart';void main() {runApp(MyApp());
}class MyApp extends StatelessWidget {Widget build(BuildContext context) {return MaterialApp(home: MyCounterApp(),);}
}class MyCounterApp extends StatefulWidget {_MyCounterAppState createState() => _MyCounterAppState();
}class _MyCounterAppState extends State<MyCounterApp> {int _counter = 0;void initState() {super.initState();_startStepCount();}void _startStepCount() {StepCounter.start(callback: (int steps, bool hasError) {if (mounted) {setState(() {_counter = steps;});}});}Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('计步器')),body: Center(child: Text('步数: $_counter'),),);}
}

发布应用到App Store和Google Play

  1. 在项目根目录执行以下命令来生成Android和iOS的发布版本:
flutter build apk
flutter build ios
  1. 使用Android Studio和Xcode打开生成的工程,完成真机测试和打包。对于Android应用,确保签名并导出APK文件。对于iOS应用,确保使用Apple的开发者证书进行签名,并导出.ipa文件。

  2. 将生成的APK文件提交至Google Play,将.ipa文件提交至App Store Connect。

在iOS应用的发布过程中,使用appuploader可以大大简化上传和管理的流程。appuploader是一款专为iOS开发者设计的工具,能够帮助开发者快速上传应用包到App Store Connect,并管理证书、描述文件等。通过appuploader,开发者可以更高效地完成应用的发布流程。

总结

Flutter是一个强大的跨平台开发框架,支持从简单的UI到复杂应用的开发。通过本教程,您已经掌握了Flutter的基本开发流程,包括开发环境搭建、基础Widget使用、界面设计与美化、实战项目开发等内容。希望您能够继续深入学习Flutter,开发出更多优秀的应用。

相关文章:

Flutter入门教程:从零开始的Flutter开发指南

Flutter入门教程&#xff1a;从环境搭建到应用发布 概述 本文提供了全面的Flutter入门教程&#xff0c;涵盖环境搭建、基础Widget使用、界面设计与美化&#xff0c;以及实战项目开发等内容。通过本教程&#xff0c;开发者能够快速上手Flutter开发&#xff0c;掌握开发跨平台应…...

CentOS 7 源码安装libjsoncpp-1.9.5库

安装依赖工具 sudo yum install cmake make gcc cmake 需要升级至 3.8.0 以上可参考&#xff1a;CentOS安装CMakegcc 需要升级至9.0 以上可参考&#xff1a;CentOS 7升级gcc版本 下载源码 wget https://github.com/open-source-parsers/jsoncpp/archive/refs/tags/1.9.5.…...

调用高德天气Api,并展示对应天气图标

1、申请高德key 点击高德官网申请 必须有key才能调用高德api 小提示&#xff1a;每日/每秒调用api次数有限&#xff0c;尽量不要循环调用。 每日大概5000&#xff0c;每秒3次 2、查看文档 高德官网天气api接口文档 请求示例&#xff1a; https://restapi.amap.com/v3/weat…...

DSP开发板的JTAG接口

&#xff08;1&#xff09;普中DSP28335 &#xff08;2&#xff09;研旭DSP28388 &#xff08;3&#xff09;延华DSP28335 &#xff08;3&#xff09;M新动力28377D电机控制板...

1.25-20GHz/500ns超快跳频!盛铂SWFA300国产捷变频频率综合器模块赋能雷达/5G/电子战高频精密控制 本振/频综模块

盛铂SWFA300捷变频频率综合器模块简述&#xff1a; 盛铂科技国产SWFA300捷变频频率综合器是一款在频率范围内任意两点频率的跳频时间在500nS以内的高速跳频源&#xff0c;其输出频率范围为1.25GHz至20GHz&#xff0c;频率的最小步进为10kHz。同时它拥有优秀的相位噪声特性&…...

nestjs 多环境配置

这里使用yaml进行多环境配置&#xff0c;需要安装nestjs/config、js-yaml、types/js-yaml js-yaml、types/js-yaml 主要用来读取yaml文件以及指定类型使用 官方教程&#xff1a;Documentation | NestJS - A progressive Node.js framework 1、下载 npm i --save nestjs/confi…...

CentOS7系统更新yum源教程

由于CentOS 7 在2024年6月30号以后官方不再维护。很多yum源也陆续关掉了&#xff0c;所以我们要更换镜像源。yum是一个用于软件包管理的工具&#xff0c;它能够从特定的存储库中自动下载和安装软件包。然而&#xff0c;系统默认的yum源可能不包含所有软件包&#xff0c;因此需要…...

Python正则表达式(二)

目录 六、re.findall()函数和分组 1、0/1分组情况 2、多分组情况 七、或“|”的用法 1、作用域 2、用法 八、贪婪模式和懒惰模式 1、量词的贪婪模式 2、量词的懒惰模式 九、匹配对象 1、相关函数 六、re.findall()函数和分组 1、0/1分组情况 在正则表达式中&#x…...

MySQL中如何进行SQL调优?

SQL 调优是提高 MySQL 数据库性能的关键环节。以下是 MySQL SQL 调优的主要方法和技巧 一、使用 EXPLAIN 分析查询 EXPLAIN SELECT * FROM users WHERE user_name 张三;查看执行计划&#xff0c;了解 MySQL 如何处理查询重点关注 type、key、rows、Extra 列type 最好能达到 …...

Android15查看函数调用关系

Android15 Camera3中打印函数调用栈 1.使用CallStack跟踪函数调用 修改涉及三个内容&#xff1a; Android.bp中添加对CallStack的引用。CallStack被打包在libutilscallstack.so。代码中包含CallStack的头文件。代码中调用CallStack接口&#xff0c;打印函数调用栈。 例子&am…...

Containerd+Kubernetes搭建k8s集群

虚拟机环境设置&#xff0c;如果不是虚拟机可以忽略不看 1、安装配置containerd 1.1 添加 Kubernetes 官方仓库 安装cri-tools的时候需要用到 cat > /etc/yum.repos.d/kubernetes.repo << EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kub…...

【Spring AI】基于专属知识库的RAG智能问答小程序开发——功能优化:用户鉴权主体功能开发

系列文章目录 【Spring AI】基于专属知识库的RAG智能问答小程序开发——完整项目&#xff08;含完整前端后端代码&#xff09;【Spring AI】基于专属知识库的RAG智能问答小程序开发——代码逐行精讲&#xff1a;核心ChatClient对象相关构造函数【Spring AI】基于专属知识库的R…...

个人学习编程(3-24) 数据结构

括号的匹配&#xff1a; if((s[i]) && now() || (s[i]] && now[)){ #include <bits/stdc.h>using namespace std;int main() {char s[300];scanf("%s",&s);int i;int len strlen(s);stack <char> st;for (i 0; i < len; i){if(…...

比特币等虚拟货币实时价格使用说明,数字货币价格获取,k线获取,实时价格获取

数据截图 k线数据 websocket 实时价格数据 根据这些数据可以做出自己的产品 获取时间段内的k线数据 在开始之前&#xff0c;你需要知道的知识&#xff1a; 币种缩写英文名币种IDBTCBitcoinbitcoinETHEthereumethereumEOSEOSeosUSDTTethertetherLTCLitecoinlitecoinUSDDol…...

【漏洞修复】为了修复ARM64 Android10系统的第三方库漏洞,将ARM64 Android16的系统库直接拷贝到Android10系统如何?

直接替换系统库的风险分析 将高版本Android&#xff08;如Android 16&#xff09;的系统库直接拷贝到低版本系统&#xff08;如Android 10&#xff09;可能会导致以下问题&#xff1a; 符号与依赖不兼容 高版本库可能依赖更高版本的NDK或Bionic libc&#xff08;Android的C库&…...

【深度学习与实战】2.1、线性回归模型与梯度下降法先导

import numpy as np# 数据准备 X np.array([1, 2, 3]) y np.array([3, 5, 7])# 参数初始化 w0, w1 0, 0 alpha 0.1 n len(X)# 迭代10次 for epoch in range(10):# 计算预测值y_pred w1 * X w0# 计算梯度grad_w0 (1/n) * np.sum(y_pred - y)grad_w1 (1/n) * np.sum((y_…...

SQL Server 2008安装教程

目录 一.安装SQL Server 二.安装SQL Server Management Studio 三.使用SQL Server Management Studio 一.安装SQL Server 官网下载:SQL Server 下载 | Microsoft 1.选择安装中的全新安装如下图 2.功能选择 3.实例配置 4.后面一直下一步到数据库引擎配置 密码自己设置 系统…...

协作机械臂需要加安全墙吗? 安全墙 光栅 干涉区

安全墙是什么 文章目录 安全墙是什么简介1. 物理安全墙1.1 定义&#xff1a;1.2 作用机制&#xff1a;1.3 应用场景&#xff1a; 2. 虚拟安全墙2.2 定义&#xff1a;2.3 作用机制&#xff1a;2.3 应用场景&#xff1a; 3. 安全毛毯3.1 工作原理&#xff1a;3.2 特点3.3 应用场景…...

Android第六次面试总结(自定义 View与事件分发)

在 Android 中实现自定义 View 处理 1 万条数据的流畅滑动&#xff0c;需结合视图复用、按需绘制、硬件加速等核心技术。以下是具体实现方案&#xff1a; 一、核心优化策略 1. 视图复用机制&#xff08;类似 RecyclerView&#xff09; ViewHolder 模式&#xff1a;将每个数据…...

深度解读 AWS IAM:身份访问管理与安全的核心纽带

导语 在 AWS&#xff08;亚马逊云服务&#xff09;的生态体系中&#xff0c;AWS IAM&#xff08;Identity and Access Management&#xff09;犹如坚固的堡垒&#xff0c;守护着用户在云端的各类资源。它不仅是管理用户身份与访问权限的关键工具&#xff0c;更是维系 AWS 安全…...

Oracle相关的面试题

以下是150道Oracle相关的面试题&#xff0c;涵盖了Oracle的基础概念、架构、SQL与PL/SQL、性能调优、高可用性、备份与恢复、安全、分区与索引、存储与内存管理、网络与连接、版本与升级等方面&#xff0c;希望对你有所帮助。 Oracle基础概念 1. 什么是Oracle数据库&#xff1…...

DQL语句-distinct去重

MySQL | DQL语句-distinct去重 &#x1fa84;个人博客&#xff1a;https://vite.xingji.fun 查询工作岗位 select job from emp;mysql> select job from emp;----------- | job | ----------- | CLERK | | SALESMAN | | SALESMAN | | MANAGER | | SALESMAN …...

GroupDocs.Total for Java 摸索学习

继Aspose.Total for Java 全套组件的学习之后&#xff0c;发现了GroupDocs.Total系列产品的13款&#xff0c;也是花了许久的事件&#xff0c;逐个的学习摸索、深度分析、总结实践&#xff0c;掌握了它们的科学使用。 商业技术软件&#xff0c;作为技术广度学习探索使用&#x…...

⑦(ACG-网络配置)

网络配置是指对计算机网络的各种参数进行设置和调整&#xff0c;以实现网络正常运行和高效通信。网络配置包括多方面的内容&#xff0c;常见的配置包括&#xff1a; 1. IP地址设置&#xff1a;IP地址是设备在网络中的身份标识&#xff0c;设置IP地址是网络配置的基础&#xff…...

智能汽车图像及视频处理方案,支持视频智能包装能力

美摄科技的智能汽车图像及视频处理方案&#xff0c;通过深度学习算法与先进的色彩管理技术&#xff0c;能够自动调整图像中的亮度、对比度、饱和度等关键参数&#xff0c;确保在各种光线条件下&#xff0c;图像都能呈现出最接近人眼的自然色彩与细节层次。这不仅提升了驾驶者的…...

【电子通识】铅笔硬度简史:从石墨到工业标准

在工作中我们会发现有时要使用铅笔硬度计来测试材料的硬度。 比如说手机的液晶屏&#xff0c;我们可能要求要通过3H、4H等等。那么为什么会用铅笔来做硬度测试呢&#xff1f;这就要知道相关的历史了。 铅笔硬度简史&#xff1a;从石墨到工业标准 “一支铅笔&#xff0c;如何成…...

前端自动化测试(一):揭秘自动化测试秘诀

目录 [TOC](目录)前言自动化测试 VS 手动测试测试分类何为单元测试单元测试的优缺点优点缺点 测试案例测试代码 测试函数的封装实现 expect 方法实现 test 函数结语 正文开始 &#xff0c; 如果觉得文章对您有帮助&#xff0c;请帮我三连订阅&#xff0c;谢谢&#x1f496;&…...

《Python实战进阶》No37: 强化学习入门:Q-Learning 与 DQN-加餐版1 Q-Learning算法可视化

在《Python实战进阶》No37: 强化学习入门&#xff1a;Q-Learning 与 DQN 这篇文章中&#xff0c;我们介绍了Q-Learning算法走出迷宫的代码实践&#xff0c;本文加餐&#xff0c;把Q-Learning算法通过代码可视化呈现。我尝试了使用Matplotlib实现&#xff0c;但局限于Matplotli…...

将ZABBIX结合AI实现自动化运维

1. 执行摘要 评估将ZABBIX监控系统与人工智能&#xff08;AI&#xff09;相结合&#xff0c;以实现自动化IT运维的可行性。这种集成具有显著的潜力&#xff0c;能够提升IT运维的效率、可靠性和主动性。通过利用ZABBIX强大的监控和告警功能&#xff0c;以及AI在异常检测、根因分…...

Go 语言规范学习(2)

文章目录 VariablesTypesBoolean typesNumeric typesString typesArray typesSlice typesStruct typesPointer typesFunction typesInterface typesBasic interfacesEmbedded interfacesGeneral interfaces【泛型接口】Implementing an interface【实现一个接口】 Map typesCha…...

XCode中使用MonkeyDev开发iOS版的Comand-line Tool的daemon程序

前提条件&#xff1a;iphone手机越狱ios15&#xff0c;cydia/Sileo中安装好ssh&#xff0c;ldid等相关的常用插件 备注&#xff1a;如何iphone是ios15以下的越狱机&#xff0c;可直接看11步 1. 安装MonkeyDev sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercon…...

Nodejs上传文件的问题

操作系统&#xff1a;window和linux都会遇到 软件环境&#xff1a;v20.10.0的Nodejs 1、前端代码如下&#xff1a; 2、后端Nodejs 2.1、注册接口 2.2、上传接口 其中memoryUpload方法代码如下&#xff1a; 3、用页面上传文件 查看具体报错原因&#xff1a; TypeError: sourc…...

SpringMVC 拦截器详解与实战

在 SpringMVC 框架中&#xff0c;拦截器&#xff08;Interceptor&#xff09;是一种强大的机制&#xff0c;它允许开发者在控制器方法执行前后进行拦截&#xff0c;从而实现诸如用户权限验证、日志记录、性能监控等各种功能。本文将深入探讨 SpringMVC 拦截器的相关知识&#x…...

5.3 MVVM模型

一、MVVM的基本概念 MVVM的基本概念&#xff1a;Model、View、ViewModel 组件职责示例内容Model封装业务数据User类&#xff0c;包含姓名、年龄属性View负责UI呈现XAML界面&#xff0c;包含数据绑定ViewModel连接View和Model&#xff0c;处理视图逻辑MainViewModel包含命令和…...

6、进程理论和简单进程创建

一、了解进程推荐看这个视频&#xff0c;很详细 1、概念 进程(Process)程序的运行过程&#xff0c;是系统进行资源分配和调度的独立单元程序的运行过程&#xff1a;多个不同程序 并发&#xff0c;同一个程序同时执行多个任务。 就需要很多资源来实现这个过程。 每个进程都有一…...

python面试-基础

Python 面试题&#xff1a;解释 filter 函数的工作原理 难度: ⭐⭐ 特点: filter 函数是 Python 内置的高阶函数&#xff0c;用于过滤序列中的元素。这道题考察面试者对函数式编程概念的理解以及对 filter 函数的实际应用能力。和 map 函数类似, Python 3 中的 filter 返回一…...

全分辨率免ROOT懒人精灵-自动化编程思维-设计思路-实战训练

全分辨率免ROOT懒人精灵-自动化编程思维-设计思路-实战训练 1.2025新版懒人精灵-实战红果搜索关键词刷视频&#xff1a;https://www.bilibili.com/video/BV1eK9kY7EWV 2.懒人精灵-全分辨率节点识别&#xff08;红果看广告领金币小实战&#xff09;&#xff1a;https://www.bili…...

前后端常见模型以及相关环境配置介绍

一、前端常见框架 Vue.js 特点&#xff1a;采用数据驱动的响应式编程&#xff0c;组件化的开发模式使得代码结构清晰&#xff0c;易于维护&#xff0c;且学习成本相对较低&#xff0c;适合初学者和快速迭代的项目。应用场景&#xff1a;广泛应用于各类 Web 应用开发&#xff…...

西电考研目前缺额专业,调剂助力上岸!

注意啦&#xff01;准备调剂的兄弟们看过来&#xff1a;今天带大家梳理【西电调剂】的相关内容。助力大家上岸西安电子科技大学研究生 调剂必须在短时间内迅速做出决策&#xff0c;收集信息、筛选院校、准备复试&#xff0c;每一个环节都容不得丝毫懈怠&#xff01;现在除了关注…...

英语四六级听力考试网络广播系统建设方案:助力大学英语四六级听力考试清晰度与可靠性升级

英语四六级听力考试网络广播系统建设方案&#xff1a;助力大学英语四六级听力考试清晰度与可靠性升级 北京海特伟业科技有限公司任洪卓发布于2025年3月26日 一、建设背景&#xff1a;听力考试的重要性与现有系统的痛点 英语四六级考试听力部分作为学生英语听力能力的直接检验…...

性能比拼: Rust vs C++

本内容是对知名性能评测博主 Anton Putra 1个月前 Rust vs C Performance 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 介绍 在本视频中&#xff0c;将对比 Rust 和 C。 会使用 Axum 框架的一个稍微改进的版本&#xff0c;该框架基于 Hyper 和 Tokio 运行时&am…...

b站视频提取mp4方案

引言 对于b站视频&#xff0c;有些视频是不能提取字幕的&#xff0c;所以我们想把对应的视频下载下来&#xff0c;然后进行对应的本地处理&#xff0c;获得所需的自由处理&#xff0c;吞食视频。 整体思路 下载b站客户端 ----> 把缓存路径修改------> 下载所需视频---…...

PyQt6实例_批量下载pdf工具_exe使用方法

目录 前置&#xff1a; 工具使用方法&#xff1a; step one 获取工具 step two 安装 step three 使用 step four 卸载 链接 前置&#xff1a; 1 批量下载pdf工具是基于博文 python_巨潮年报pdf下载-CSDN博客 &#xff0c;将这个需求创建成界面应用&#xff0c;达到可…...

【java笔记】泛型、包装类、自动装箱拆箱与缓存机制

一、泛型&#xff1a;类型安全的基石 1. 泛型的本质与原理 Java 泛型&#xff08;Generics&#xff09;是 JDK 5 引入的特性&#xff0c;通过类型参数化实现代码的通用性。泛型类、接口和方法允许在定义时声明类型参数&#xff08;如 T、E、K、V&#xff09;&#xff0c;这些…...

计算机网络——传输层(TCP)

传输层 在计算机网络中&#xff0c;传输层是将数据向上向下传输的一个重要的层面&#xff0c;其中传输层中有两个协议&#xff0c;TCP&#xff0c;UDP 这两个协议。 TCP 话不多说&#xff0c;我们直接来看协议报头。 源/目的端口号&#xff1a;表示数据从哪个进程来&#xff0…...

Go 语言规范学习(1)

文章目录 IntroductionNotation示例&#xff08;Go 语言的 if 语句&#xff09;&#xff1a; Source code representationCharacters例子&#xff1a;变量名可以是中文 Letters and digits Lexical elementsCommentsTokensSemicolons例子&#xff1a;查看程序所有的token Ident…...

深入理解椭圆曲线密码学(ECC)与区块链加密

椭圆曲线密码学&#xff08;ECC&#xff09;在现代加密技术中扮演着至关重要的角色&#xff0c;广泛应用于区块链、数字货币、数字签名等领域。由于其在提供高安全性和高效率上的优势&#xff0c;椭圆曲线密码学成为了数字加密的核心技术之一。本文将详细介绍椭圆曲线的基本原理…...

nginx优化(持续更新!!!)

1.调整文件描述符 # 查看当前系统文件描述符限制 ulimit -n# 永久修改文件描述符限制 # 编辑 /etc/security/limits.conf 文件&#xff0c;添加以下内容 * soft nofile 65535 * hard nofile 65535# 编辑 /etc/sysctl.conf 文件&#xff0c;添加以下内容 fs.file-max 655352.调…...

ARCGIS PRO SDK 创建右键菜单

ArcGIS Pro SDK中的弹出式右键菜单常见的在地图视图、布局视图、文件目录等地方&#xff0c;随便右键点击某个文件、要素、要素类&#xff0c;一般都会弹出一个右键菜单。 操作对象右键菜单 refID要素图层esri_mapping_layerContextMenushp图层esri_mapping_unregisteredLaye…...

编译原理——LR分析

文章目录 LR分析概述一、LR分析概述二、LR(0)分析概述&#xff08;一&#xff09;可归前缀和子前缀&#xff08;二&#xff09;识别活前缀的有限自动机&#xff08;三&#xff09;活前缀及可归前缀的一般计算方法&#xff08;四&#xff09;LR(0)项目集规范族的构造 三、SLR(1)…...