Android进阶之路 - res、raw、assets 资源解析、区别对比
那天遇到一个资源目录层级的问题,索性重新整理记录一下,希望能帮到如吾往昔之少年的你们,哈哈哈哈哈哈…
一脸茫然,越写越多,时间成本属实有点大,就当一起来基础扫盲吧
- res
- drawable
- mipmap
- values
- color
- assets(&res区别)
- 兴趣衍生
- res 和 asset 都是存储的静态资源吗?
- res下 raw 和 assets 有何区别?
- drawable-v24、mipmap-anydpi-v26、mipmap-anydpi-v33
新建了一个Demo,以下为初始目录,那么就从这里开始讲吧
Android
.Project(更全面、清晰)
res
主要存放静态资源,不过存储的都是资源文件,同时资源分类较多,该类文件在打包时会直接通过 aapt
(资源文件打包工具)打包res资源文件,然后映射到Android工程的R文件中,生成 R.资源文件对应的ID,通常都可通过 R + 资源类型 + 资源具体名称(R.drawable.ic_launcher_background)
访问到资源文件(注意:raw下的文件会被原封不动的打包到apk中)
常用与否,仅取决于个人定义
常用
drawable (res/drawable)
:存放图片资源,如图标、背景等mipmap (res/mipmap)
:存放应用的启动器图标资源,为不同屏幕密度提供不同版本的图标values (res/values)
:存放配置值,如字符串、样式、颜色、尺寸等layout (res/layout)
:存放XML布局文件,定义用户界面的结构(常见于Activity、Fragment、Dialog等组件的视图xml )dimens (res/dimens)
:存放尺寸资源文件,定义间距、字体大小等color (res/color)
:存放颜色资源文件menu (res/menu)
:存放菜单资源文件,定义应用的菜单项 - Android进阶之路 - BottomNavigationView的使用与问题处理方案xml (res/xml)
:存放XML文件,如网络配置、偏好设置等 - Android 9.0 兼容适配font (res/font)
:存放自定义字体文件(也支持放在 assets 目录) - Android进阶之路 - 深入浅出字体、字体库
关于动画一般放置于 anim
下,其他的更细分一些,好像尚未使用过
anim (res/anim)
:存放动画资源文件,定义视图的动画效果animator (res/animator)
:存放属性动画XML文件transition (res/transition)
:存放场景转换动画资源
raw (res/raw)
:存放原始文件,如音频、视频文件等(有些特殊,单独讲讲)
raw
与 asset
有些类似,它们存储的文件范围一般为音频、视频等,而且均在打包时不会被压缩,简单来看它们存储的位置不同,当然区别点还挺多,我在兴趣扩展中有详细介绍俩者之间的具体区别
不常用
layout-<version> (res/layout-land, res/layout-port)
:为不同布局方向或屏幕尺寸提供特定的布局
values 限制场景
values-<language> (res/values-en, res/values-fr, etc.)
:为不同语言提供特定的字符串资源(适用多语言定制,一般用于海外app)values-v21 (res/values-v21)
:为API级别21及以上版本提供特定的资源values-night (res/values-night)
:为夜间模式提供特定的资源
关于 drawable
与 mipmap
都说到了图片视频,之所以进行图片适配,主要有以下几点原因
- 一致性、适应性:保持界面的统一视觉效果,同时都足够清晰
- 性能:避免在高密度屏幕上使用过大的图像文件,从而减少内存使用和提高加载速度(相对的因为图片适配,会适当增大一些apk体积,可适当在不影响图片的效果下进行图片压缩)
drawable
存放种类比较广,兼容性较强,支持存入以下类型 - 当然还有一些其他
xml
标签,但是因为一时想不起来,或者不常用就先不总结了,若有有需要再来补充
- 支持存放 图片(JPEG、PNG、GIF、WebP 等格式),在
mipmap
目录未出现前,统一将图片放于drawable
下,同时此前图片适配也在该处
drawable
存放不区分密度的图片资源,这些资源将被所有密度级别的设备使用(假设未进行图片适配,那么有可能会加载这里的图片)
drawable-mdpi
中等密度,基准密度,大约为160dpi,Android的基准密度drawable-hdpi
高密度,大约240dpidrawable-xhdpi
超高密度,大约320dpidrawable-xxhdpi
超超高密度,大约480dpidrawable-xxxhdpi
超超超高密度,大约640dpi
- 支持
shape
、selector
、Layer-list 等
xml 标签
shape
支持实现圆角、矩形、圆形等效果 - Android入门之路 - shape保姆级手册
selector
状态选择器,支持点击、按压等状态监听后的不同实现效果 - Android进阶之路 - selector状态选择器Layer-list
视图层,涉及层级覆盖,根据场景使用(之前做阴影效果时有接触过)- Android进阶之路 - 背景阴影、阴影背景
- 支持
animation-list
帧动画 xml 标签 - Android入门之路 - Frame帧动画
mipmap
在 mipmap
出现之前,我们一般会将图片统一放置于 drawable
目录,在其出现之后我们大多将图片放于该目录下,实现了单一职责
在前端、客户端经常需要进行适配,其中图片适配必不可少,针对于手机的不同分辨率,为了用户有更好的体验,通常需要在对应目录下放置同名不同分辨率
的图片,目前使用较多的目录主要有 mipmap-xhdpi
、mipmap-xxhdpi
mipmap-mdpi
中密度屏幕(Medium Density),大约为160dpi,Android的基准密度mipmap-hdpi
高密度屏幕(High Density),大约为240dpimipmap-xhdpi
超高密度屏幕(Extra High Density),大约为240dpimipmap-xxhdpi
超超高密度屏幕(Extra Extra High Density),大约为320dpimipmap-xxxhdpi
超超超高密度屏幕(Extra Extra Extra High Density),大约为480dpi
Tip:当系统运行时一般会根据手机分辨率加载对应目录下的图片,如果该目录没有相关图片,就会就近同名的其他目录下的图片
values
values
目录下的资源也是常用的核心资源目录之一,在其内部的资源类别也比较多
从values
与 values-night
可以看出相比其他资源目录,values
提供了常规模式和夜间模式的区别 ,接下来我们看看具体有哪些常见资源文件
常用
strings.xml
:存放应用中使用的所有字符串资源styles.xml
:定义应用的样式和主题,这些样式可以应用于应用的布局和控件(共性布局抽取,主题样式声明)colors.xml
:定义应用的颜色资源,可以用于文本、背景、控件等(颜色管理)dimens.xml
:定义应用的尺寸资源,如字体大小、间距、边距等(尺寸适配)attrs.xml
:定义自定义属性,这些属性可以用于样式和主题
不常用
arrays.xml
:定义字符串数组、整数数组等integers.xml
:存放整数值,例如版本号、动画持续时间等bools.xml
:存放布尔值,用于配置开关选项plurals.xml
:用于定义复数规则,根据数量的不同显示不同的字符串themes.xml
:定义应用的主题,可以包含样式和其他主题相关的配置 - Android10.0 特性 - 暗黑模式、深色主题ids.xml
:定义资源ID,虽然通常这些ID是在XML布局文件中定义的config.xml
:定义应用的配置选项,如屏幕方向、导航键配置等preferences.xml
:定义应用的偏好设置,用于PreferenceActivitypublic.xml
:定义公共资源,这些资源可以在应用之外被其他应用访问
color
从 values
中可以看到有一个 colors.xml
文件,那么它和 res-color
目录有何区别?
values
-colors.xml
更多的是声明某个颜色的色值res-color
下的xml
文件可以提供对应事件的色值,效果更单一(区别于drawable
下的selector
标签)
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true" android:color="#FF4081"/><item android:state_focused="true" android:color="#FFA726"/><item android:color="#9E9E9E"/>
</selector>
drawable
- selector
标签
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_checked="true"><shape><solid android:color="@color/white" /></shape></item><item android:state_checked="false"><shape><solid android:color="#f9f9f9" /></shape></item><item><shape><solid android:color="#f9f9f9" /></shape></item>
</selector>
assets(&res区别)
首先说明一下 assets
和 res
属于同级关系,别放错位置
assets
也用于存放静态资源,只不过存储的是原始文件,常用于存放 文本文件、音频文件、视频文件、图像文件、HTML文件、CSS文件、JavaScript文件
等
除去对比区别特性外,额外记录俩条特性
- 不支持资源重载:当APK被安装后,assets中的文件不能被更新或重载,除非重新安装APK(未验证,按理apk更新后同文件可覆盖, 不确定重载场景的产生)
- 与NDK交互:可以与NDK代码交互,NDK可以访问assets目录下的文件(未验证,关于NDK方面经验有限,不做误导)
一般我们都会将 asset 和 res 做对比
为方便下方简介对比,简化名称
res = R
assets = A
访问方式
R:在.R文件中生成对应的资源ID,可通过 R + 资源类型 + 资源具体名称(R.drawable.ic_launcher_background·)
访问到资源文件
A:需要通过 AssetManager
来访问,不能通过资源ID直接访问
编译、压缩
R:在应用编译时会被处理,如,图片文件可以被压缩(减少APK大小),布局文件(.xml)会被转换成View对象等
A:在打包时文件不会被压缩,以原始形式在APK中存在,不经过编译处理,可以保留资源文件的原始结构和内容,便于应用程序在运行时动态地读取和使用
目录(文件)结构
R:不同类型文件被存储于不同资源目录下,如 drawable、mipmap、layout、values
等,且编译后不保留目录结构
A:可以包含文件夹和子文件夹,文件的目录结构在APK中得以保留
适用场景
R:适用于存储应用的界面资源,如图片、布局、样式、颜色定义等
A:适用于存储不希望被编译或需要保持原始目录结构的文件,如配置文件、原始数据文件、大型媒体文件等
访问效率
R:由于资源在编译时被处理,访问速度通常较快
A:访问速度可能较慢,因为需要从APK中通过I/O
操作来读取原始文件
资源可见性
R:资源默认是私有的,但可以通过特定的方式(如Content Provider
)被其他应用访问
A:资源默认是私有的,只能通过 AssetManager
访问
资源管理
R:资源管理由系统自动完成,如根据屏幕密度选择合适的图片资源
A:需要手动管理,如遍历文件夹和读取文件
资源命名
R:资源文件名不区分大小写
A:文件名区分大小写(大小写敏感)
兴趣衍生
res 和 asset 都是存储的静态资源吗?
从一定层面可以说 res 和 asset 都是存储的静态资源,但是不同点在于静态资源也有所区分, 如果你有从上自下看过的话,可以看出俩者区别
文件类型 - 它们都属于静态资源文件,俩种文件类型区别上面有也说明,可以从访问方式、存储资源类型等方面来综合考虑
res
:存放的是资源文件assets
: 存放的是原始文件
res下 raw 和 assets 有何区别?
我很诧异于res下既然都已经有了raw用于存储原始文件,为何还要再搞一个assets?
后面AI搜了搜,发现还是有一些区别的,除了上面在assets提到的区别之外,还有以下区别
适用场景
res/raw
:适合存放小到中等大小的文件
,如音频片段、视频片段、JSON配置文件等。assets
:适合存放较大的文件或需要保持原始目录结构的文件
,如整个文件夹的文档、大型数据库文件等
文件操作
res/raw
:文件操作通常通过openRawResource()
方法进行assets
:文件操作通过AssetManager的open()
方法进行
关于最终是选择使用 res/raw
还是 assets
取决于你的具体需求,如文件大小、访问速度、是否需要保持目录结构等因素
drawable-v24、mipmap-anydpi-v26、mipmap-anydpi-v33
在上方的时候有看到这里的目录吗?一起来扫个盲...
Tip: 假设 v24是限制7.0版本,那么v25、v30是不是都可以做限制?
(未尝试过,大多app为保持高兼容性,这种限制应该有一些场景局限性,具体场景具体定义吧)
drawable
目录上方已经具体解释过了,不区分 Android 版本均可正常使用drawable-v24
目录中v24
指的是API级别24,对应于Android 7.0(Nougat),也就是仅支持7.0以上的机型加载对应资源,低于这个版本的都不会访问该目录下资源
以mipmap-anydpi-v33
为例,适用于API级别33及以上的机型,对于API级别低于33的机型,系统会回退到使用传统的mipmap
目录下的图标资源(v26同理,针对于API26
机型)
mipmap
代表图片anydpi
代表任意密度v33
代表版本兼容
具体看一下 ic_launcher.xml
(标签较全)
标签解析
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"><background android:drawable="@drawable/ic_launcher_background" /><foreground android:drawable="@drawable/ic_launcher_foreground" /><monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>
adaptive-icon
:根元素,用于定义自适应图标;它包含一个命名空间声明xmlns:android
,指定了Android资源的XML命名空间background
:定义了图标的背景部分;android:drawable
属性指定了一个drawable
资源IDforeground
:定义了图标的前景部分,通常是图标的主要视觉元素;android:drawable
属性指向一个drawable
资源monochrome
:定义了一个单色版本的前景drawable
,用于在某些情况下(如深色背景上)提供更好的可见性(默认为foreground
资源)
资源指向
相关文章:
Android进阶之路 - res、raw、assets 资源解析、区别对比
那天遇到一个资源目录层级的问题,索性重新整理记录一下,希望能帮到如吾往昔之少年的你们,哈哈哈哈哈哈… 一脸茫然,越写越多,时间成本属实有点大,就当一起来基础扫盲吧 resdrawablemipmapvaluescolor asset…...
从数字化到数智化:消费零售企业如何实现门店数智化管理?
随着信息技术的飞速发展,数字化已成为企业转型的必经之路。然而,数字化本身并不是目的,而是通往数智化的桥梁。数智化,即数据智能化,是指企业通过数字化手段收集和分析数据,进而利用这些数据驱动决策和创新…...
Linux中ES的安装
文章目录 一、ES是什么1.1、ES概念介绍1.2、技术架构1.2.1、Lucene介绍 1.3、ES的工作原理1.4、ES的适用场景 二、安装前的配置2.1、创建普通用户2.2、调整文件描述符数量和虚拟内存2.3、设置shell会话的资源限制(软限制和硬限制)2.4、增加虚拟内存的设置…...
Redis远程字典服务器(5) —— hash类型详解
目录 一,hash基本情况 二,hash常用命令详解 2.1 hset,hget,hexists,hdel 2.2 hexists,hdel 2.3 hkeys,hvals 2.4 hgetall,hmget 2.5 hlen,hsetnx 2.6 hincrby&am…...
MySQL | 行锁——记录锁、间隙锁 、临键锁、插入意向锁
1、InnoDB中的行锁 行锁(Row Lock) 也称为记录锁,顾名思义,就是锁住某一行(某条记录row)。需要注意的是,MySQL服务器层并没有实现行锁机制,行级锁只在存储引擎层实现。 优点&#x…...
【网络编程】TCP通信基础模型实现
tcpSer.c #include <myhead.h> #define SER_IP "192.168.119.143" // 设置IP地址 #define SER_PORT 6666 // 设置端口号 int main(int argc, const char *argv[]) {// 1.创建socketint serfd socket(AF_INET, SOCK_STREAM, 0);// 参数1表示ipv4// 参数2表…...
css rem之2024
话题开始前 我们都知道1rem是等于html fontSize标签的字体大小的,我们主要用来做移动端网页设计稿等比例在手机上面的显示。 看到的问题 这个html fontsize的大小是通过js动态计算的,而这个js的运行时晚于html渲染的,所以会导致一个问题&am…...
python自动化笔记:pytest框架
目录 一、pytest介绍二、测试用例命名规则2.1、pytest命名规则2.2、python命名规范 三、pytest运行方式3.1、主函数方式3.2、命令行方式3.3、通过pytest.ini的配置文件运行(常用) 四、跳过测试用例4.1 无条件跳过4.2 有条件跳过 五、用例的前后置&#x…...
wpf 路径动画 举例
先,我们需要在XAML中定义一个Path,这个Path将定义动画的路线。然后,我们将使用DoubleAnimationUsingPath来沿着这个路径移动一个元素(比如一个矩形)。 <Window x:Class"WpfApp.MainWindow" xmlns"…...
【C++】classes and object 2.8 取地址及const取地址操作符重载
这两个默认成员函数一般不用重新定义 ,编译器默认会生成。 #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; class Date { public:Date* operator&(){return this;}const Date* operator&()const{return this;} privat…...
milvus helm k8s开启监控
https://milvus.io/docs/monitor.md 文章写的很清晰 ,我这边做一下个人补充,初版可能只是配置,具体的grafana 监控报表后期补一下。 架构如下: values.yaml 配置 enabled: true 改为true metrics:enabled: trueserviceMonitor:…...
牛奶饮用学习笔记
1. 常见牛奶类型 1.1 蒙牛-每日鲜语-0脂肪鲜牛奶 项目每100mL NRV%能量146kJ 能量计算 250 mL 146 kJ / 100 mL 365 kJ 250\text{mL}\times146\text{kJ}/100\text{mL} 365\text{kJ} 250mL146kJ/100mL365kJ 1.2 伊利-舒化-高钙型无乳糖牛奶 项目每100mL NRV%能量269kJ …...
php防止页面重复刷新或者重复提交
2.核心代码 显示的逻辑: //获取防止刷新的唯一标识符,start $intFlag substr(md5(time()),6); $strFlag BAOXIAOSS_.$my_user_id.$intFlag; $smarty->assign(check_is_agin_post, $strFlag); //获取防止刷新的唯一标识符,end注意:前端页面提交加入…...
Springboot3 配置sql打印到控制台
一、pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId><version>3.1.2</version></dependency> 二、application.yml com.lingyang.system # log4j2配…...
深入理解 GO 语言并发
1. 使用并发 在深入了解 Go 如何处理并发之前,先查看并发的概念。在计算机发展的早期阶段,计算机系统只有一个处理器负责执行所有指令。由于这种体系结构,计算机程序被编写成以串行的方式运行,在这种方式下,程序按照预定义的顺序逐个指令地执行。 随着计算机程序变得越来越…...
leetcode39组合总和
题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被选…...
【JPCS独立出版,EI稳定检索】2024年工业机器人与先进制造技术国际学术会议(IRAMT 2024,9月27-29)
2024年工业机器人与先进制造技术国际学术会议(IRAMT 2024)将于2024年9月27-29日在中国成都举办。 此次会议将围绕工业机器人、机电技术、机械及制造等领域的最新研究成果展开讨论,并广泛邀请了国内外领域内的著名专家与学者。会议旨在搭建一个…...
Fal.ai Flux 1-Pro/Viva.ai/哩布哩布AI:AI绘图部分免费工具+原图提示词Prompt
目录 #1 找软件 #2 懂提示词 #3 更难的一步,会英文 我个人认为,想要玩文生图,你要会3个步骤: #1 找软件 主流文生图软件:Midjourney、Stable Diffusion、Dall-E 3 巧了,我用的都是小众、免费的画笔工…...
C++学习笔记----2、使用C++进行优雅编程(十)---- 格式化
许多人因为编程风格的问题被搞得焦头烂额,就因为对于在if中使用几个空格争论不休,导致友谊的小船说翻就翻。如果公司有相应的编程规范,只能说你比较幸运。因为有可能你不喜欢这些规范,但做为一个正常人来讲,至少有规范…...
双指针| Java | (hot100) 力扣283, 11, 15, 42做题总结
leetcode 11 盛最多水的容器 双层for循环暴力 超出时间限制 class Solution {public int maxArea(int[] height) {int h0;int v0;for(int i0; i<height.length; i) {for(int ji1; j<height.length; j) {h Math.min(height[i],height[j]);v Math.max(v, h*(j-i));}}…...
matlab求解方程
【MATLAB】求解含有三角函数的方程_matlab求解三角函数方程-CSDN博客 Matlab求解方程或函数的根,root,fzero,solve,fsolve的区别_matlab root-CSDN博客 非线性方程(组):MATLAB内置函数 solve, vpasolve, fsolve, fzero, roots [MATLAB] - GentleMin - …...
MySQL基础--视图,存储过程
介绍 视图是一种虚拟存在的表,视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图只保存了查询的 SQL 逻辑,不保存查询结果,所以我…...
学习记录第二十六天
进程运行 1,子进程和父进程做相同的事----创建子进程 执行任务 2,子进程做与父进程不同的事 ----fork exec exec族 l VS v :主要是第二个参数的传参方式不同 p :表示寻找可执行文件 是通过PATA环境变量 e : 表示可以给…...
Polars简明基础教程十一:可视化(一)
到本次讲座结束时,你将能够: 使用Polars的内部plot方法从Polars创建图表使用外部绘图库从Polars创建图表了解这些库如何支持Polars 通常,需要可视化库的最新版本来实现最大程度的兼容性 import polars as plimport hvplot as hv import ma…...
实战项目:贪吃蛇游戏的实现(上)
前言 Hello, 今天我们来一起完成一个实战项目:贪吃蛇。 相信大家都不会对这个游戏感到陌生,贪吃蛇游戏是久负盛名的游戏,他和俄罗斯方块,扫雷游戏等游戏位列世界经典游戏之列。这次我们旨在通过实战项目贪吃蛇的实现,…...
SHT30温湿度传感器全解析——概况,性能,MCU连接,样例代码
常见温湿度传感器测量范围:(价格仅供参考,具体性能要看折线图) 型号DHT11DHT20AHT10AHT20AHT30SHT20价格¥ 2.49¥3.04¥ 1.9¥1.4¥ 1.3¥5.5温度测量范围20—90%RH0—100%RH0—100%RH0—…...
SQL server 同环比计算模板
1、计算 月 年 季度的环比和同比 计算公式如下: 环比增长率 (本期数 - 上期数) / |上期数| 100% 同比增长率 (本期数 - 同期数) / |同期数| * 100% --- dbo.ads_erp_finance_gross_profit_actual_invoice_yoy_m…...
python发送外部请求
在Python中,服务器发送外部请求是一个常见的操作,尤其是在需要集成不同服务或API时。有多种库可以帮助你完成这项任务,但最流行和广泛使用的库之一是requests。以下是如何使用requests库在Python服务器中发送外部请求的基本步骤: …...
c++并发编程面试题
1. C中lock_guard和unique_lock的区别? 在C中,lock_guard和unique_lock都是用于管理互斥锁的类,它们提供了一种 RAII(Resource Acquisition Is Initialization)机制来确保锁在作用域结束时自动释放。尽管它们的目的相…...
K8S上安装LongHorn(分布式块存储) --use
要在 Kubernetes上安装 LongHorn,您可以按照以下步骤进行操作: 准备工作 参考 官网教程将LongHorn只部署在k8s-worker5节点上。https://github.com/longhorn/longhorn 安装要求 Each node in the Kubernetes cluster where Longhorn is installed must f…...
页面设计计划/北京seo业务员
LinkIt_for_RTOS_Firmware_Update_Developers_Guide--用于实时操作系统固件更新开发指南的MediaTek Linkit™开发平台 MediaTek Linkit™SDK v4支持固件空中更新(FOTA)更新,这是一种广泛采用的成本和时间高效的解决方案,用于更新连接设备上的固件。开发…...
经济型网站建设/百度收录技巧
在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要…...
做网站优化多少钱/如何优化培训方式
项目管理工具Maven安装与配置 1.Maven简介 Maven 是 Apache 软件基金会的一个开源的项目管理工具,它用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、测试、打包和发布等工作。 2.Maven中的概念 2.1Pom(Project Object Model)项目对象模型 Mave…...
做网站开发找哪家公司/排名优化公司口碑哪家好
tcp是流式传输 假设A给B通过TCP发了200字节, 然后又发了300字节, 此时B调用recv(设置预期接受1000个字节),那么请问B实际接受到多少字节? 根据tcp粘包特性,可知, B端调用一次recv&am…...
win7搭建wordpress/百度信息流平台
设计模式是重复发生的问题的解决方案。 一个模式一般包含如下几部分: 名称:隐含了模式要解决的问题、方案、效果等 问题:描述了模式的应用场景。准确的理解模式对应的问题,是理解模式的关键,也是实践中应用模式的关键 …...
网站建设评审/免费的网站域名查询565wcc
在贴代码之前,首先需要给QQ邮箱开服务IMAP/SMTP服务,详细开通方法见 "开通方法"(可能需要发送收费短信,所以只要开通这一个服务就好了)。 这边主要就是为了一个服务的授权码,如下图: 服务开好之后࿰…...