Android 命名规范 (提高代码可以读性)

Android开发规范:资源文件命名规范 小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!资料⬅专栏获取。 阅读详情

先初略介绍下当前主要的标识符命名法和英文缩写规则:(这段别人那边借鉴的)

在讲解命名规范前,先初略介绍下当前主要的标识符命名法和英文缩写规则。

标识符命名法
标识符命名法最要有四种:

1 
驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。

2 
帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写

3 
下划线命名法:单词与单词间用下划线做间隔。

4 
匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型。 量的取名方式为:<scope_> + <prefix_> + <qualifier>范围前缀,类型前缀,限定词。

个人觉得标识符命名原则:尽可能的用最少的字符而又能完整的表达标识符的含义。

英文缩写原则:
1 
较短的单词可通过去掉“元音”形成缩写
2 
较长的单词可取单词的头几个字母形成缩写
3 
此外还有一些约定成俗的英文单词缩写.

下面为常见的英文单词缩写:

名称

缩写

icon  

ic (主要用在app的图标)

color  

cl(主要用于颜色值)

divider

di(主要用于分隔线,不仅包括Listview中的divider,还包括普通布局中的线)

selector

sl(主要用于某一view多种状态,不仅包括Listview中的selector,还包括按钮的selector)

average

avg

background  

Bg(主要用于布局和子布局的背景)

buffer

buf

control

ctrl

delete

del

document 

doc

error

err

escape

esc

increment

inc

infomation

info

initial 

init

image

img

Internationalization

I18N

length

len

library

lib

message

msg

password-

pwd

position

pos

server

srv

string

str

temp

tmp

window

wnd(win)


程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。


命名规范:

1  
包(packages): 采用反域名命名规则,全部使用小写字母。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名

包名

此包中包含

com.xx.应用名称缩写.activities

 页面用到的Activity类 (activities层级名用户界面层)

 com.xx.应用名称缩写.base

 页面中每个Activity类共享的可以写成一个i额BaseActivity类 (基础共享的类)

com.xx.应用名称缩写.adapter  

 页面用到的Adapter类 (适配器的类)

com.xx.应用名称缩写.tools

 此包中包含:公共工具方法类(tools模块名)

com.xx.应用名称缩写.bean

(或则 com.xx.应用名称缩写.unity )

 此包中包含:元素类

com.xx.应用名称缩写.db

 数据库操作类

com.xx.应用名称缩写.view

(或则 com.xx.应用名称缩写.ui )

 自定义的View类等

com.xx.应用名称缩写.service    

 Service服务

com.xx.应用名称缩写.broadcast  

 Broadcast服务



2  
类(classes):名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的,  比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。

类

描述

例如

activity 类

 Aty或者Activity为后缀标识

 欢迎页面类WelcomeAty.或者WelcomeActivity

Adapter类

  Adp或者Adapte 为后缀标识

 新闻详情适配器NewtDetailAdp或则直接  NewDetailAdapter

解析类 

 Hlr为后缀标识

 首页解析类HomePosterHlr

公共方法类

  Tools或Manager为后缀标识

 线程池管理类:ThreadPoolManager
           
 日志工具类:LogTools

数据库类

 以DBHelper后缀标识

 新闻数据库:NewDBHelper

Service类

 以Service为后缀标识

 时间服务TimeService

BroadcastReceive类

  以Broadcast为后缀标识

 时间通知TimeBroadcast

ContentProvider  

 以Provider为后缀标识

 

直接写的共享基础类

 以Base开头

BaseActivity,BaseFragment


3  接口(interface):命名规则与类一样采用大驼峰命名法,多以able或ible结尾,如interface Runna ble ;
                    
 interface Accessible 。

4  
方法(methods):动词或动名词,采用小驼峰命名法例如:onCreate(),run()

方法

说明

initXX()

 初始化相关方法,使用init为前缀标识,如初始化布局initView()

isXX()

 checkXX()方法返回值为boolean型的请使用is或check为前缀标识

getXX()

 返回某个值的方法,使用get为前缀标识

processXX() 

 对数据进行处理的方法,尽量使用process为前缀标识

displayXX()

 弹出提示框和提示信息,使用display为前缀标识

saveXX()

 与保存数据相关的,使用sav为e前缀标识

resetXX()

 对数据重组的,使用reset前缀标识

clearXX()

 清除数据相关的

removeXXX() 

 清除数据相关的

drawXXX()

 绘制数据或效果相关的,使用draw前缀标识



5  变量(variables)采用小驼峰命名法。类中控件名称必须与xml布局id保持一致。

用统一的量词通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。
量词列表:量词后缀说明
First 
 一组变量中的第一个
Last  
 一组变量中的最后一个
Next  
 一组变量中的下一个变量
Prev  
 一组变量中的上一个
Cur   
 一组变量中的当前变量
 
6  
常量(Constants)全部大写,采用下划线命名法.例如:MIN_WIDTH


7  
资源文件(图片drawable文件夹下):全部小写,采用下划线命名法,加前缀区分

命名模式:activity名称_逻辑名称/common_逻辑名称

如果有多种形态如按钮等除外如btn_xx.xml(selector)

名称

功能

btn_xx

 按钮图片使用btn_整体效果(selector)

btn_xx_normal

 按钮图片使用btn_正常情况效果

btn_xx_press

 按钮图片使用btn_点击时候效果

bg_head

 背景图片使用bg_功能_说明

def_search_cell

 默认图片使用def_功能_说明

icon_more_help

 图标图片使用icon_功能_说明

seg_list_line

 具有分隔特征的图片使用seg_功能_说明

sel_ok

 选择图标使用sel_功能_说明

命名后缀:

后缀

说明

unit

 在使用xml的tilemode来配图片时,element图片使用此后缀

nor

 图片的状态,代表普通状态

hl

 图片的状态,代表高亮状态

press

 图片的状态,代表按下状态

select

 图片的状态,代表其所占的view被选中

unselect

 图片的状态,代表其所占的view没有被选中

 

 

 

 

 

 

 

 

 

 


8     资源布局文件(XML文件(layout布局文件)):

 全部小写,采用下划线命名法

1).contentview命名, Activity默认布局,以去掉后缀的Activity类进行命名。不加后缀:

       功能模块.xml

       例如:main.xml、more.xml、settings.xml

        或则:activity_功能模块.xml

        例如:activity_main.xml、activity_more.xml

2).Dialog命名:dialog_描述.xml

       例如:dlg_hint.xml

2).PopupWindow命名:ppw_描述.xml

       例如:ppw _info.xml

3). 列表项命名listitem_描述.xml

       例如:listitem_city.xml

4).包含项:include_模块.xml

       例如:include_head.xml、include_bottom.xml

5).adapter的子布局:功能模块_item.xml

       例如:main_item.xml、


9   动画文件(anim文件夹下):全部小写,采用下划线命名法,加前缀区分。

 

//前面为动画的类型,后面为方向

动画命名例子

规范写法

备注

fade_in

淡入

 

fade_out

淡出

 

push_down_in

从下方推入

 

push_down_out

从下方推出

 

push_left

推像左方

 

slide_in_from_top

从头部滑动进入

 

zoom_enter

变形进入

 

slide_in

滑动进入

 

shrink_to_middle

中间缩小

 


10    资源ID(resourcesid):大小写规范与方法名一致,采用小驼峰命名法。命名规范为“资源控件的缩写  名”+“变量名”。注意:页面控件名称应该和控件id名保持一致

 strings.xml,colors.xml等中的id命名:

命名模式:activity名称_功能模块名称_逻辑名称/activity名称_逻辑名称/common_逻辑名称

strings.xml中,使用activity名称注释,将文件内容区分开来


11   layout中的id命名

命名模式为:view缩写_模块名称_view的逻辑名称

view的缩写详情如下:

控件

缩写

LayoutView

lv

RelativeView

rv

TextView

tv

Button

btn

ImageButton        

imgBtn

ImageView         

mgView 或则 iv

CheckBox           

chk

RadioButton        

rdoBtn

analogClock        

anaClk

DigtalClock        

dgtClk

DatePicker         

dtPk

EditText           

edtTxt

TimePicker         

tmPk

toggleButton       

tglBtn

ProgressBar 

proBar

SeekBar                            

skBar

AutoCompleteTextView

autoTxt

ZoomControls       

zmCtl

VideoView          

vdoVi

WdbView            

webVi

RantingBar         

ratBar

Tab                

tab

Spinner            

spn

Chronometer        

cmt

ScollView          

sclVi

TextSwitch         

txtSwt

ImageSwitch        

imgSwt

listView           

lVi 或则lv

ExpandableList     

epdLt

MapView            

mapVi

 

 

 





































12.activity中的view变量命名

命名模式为:逻辑名称+view缩写

建议:如果layout文件很复杂,建议将layout分成多个模块,每个模块定义一个moduleViewHolder,其成员变量包含所属view

13.styles.xml:将layout中不断重现的style提炼出通用的style通用组件,放到styles.xml中;

14.使用layer-list和selector


Android编码规范建议(别人弄的觉得蛮有道理)

1.java代码中不出现中文,最多注释中可以出现中文

2.局部变量命名、静态成员变量命名

只能包含字母,单词首字母除第一个外,都为大写,其他字母都为小写

3.常量命名

只能包含字母和_,字母全部大写,单词之间用_隔开

4.图片尽量分拆成多个可重用的图片

5.服务端可以实现的,就不要放在客户端

6.引用第三方库要慎重,避免应用大容量的第三方库,导致客户端包非常大

7.处理应用全局异常和错误,将错误以邮件的形式发送给服务端

8.图片的.9处理

9.使用静态变量方式实现界面间共享要慎重

10.Log(系统名称模块名称接口名称,详细描述)

11.单元测试(逻辑测试、界面测试)

12.不要重用父类的handler,对应一个类的handler也不应该让其子类用到,否则会导致message.what冲突

13.activity中在一个View.OnClickListener中处理所有的逻辑

14.strings.xml中使用%1$s实现字符串的通配

15.如果多个Activity中包含共同的UI处理,那么可以提炼一个CommonActivity,把通用部分叫由它来处理,其他activity只要继承它即可

16.使用button+activitgroup实现tab效果时,使用Button.setSelected(true),确保按钮处于选择状态,并使activitygroup的当前activity与该button对应

17.如果所开发的为通用组件,为避免冲突,将drawable/layout/menu/values目录下的文件名增加前缀

18.数据一定要效验,例如

字符型转数字型,如果转换失败一定要有缺省值;

服务端响应数据是否有效判断


android编码规范 一、Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名、静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能包含字母和_,字母全部大写,单词之间用_隔开 4.layout中的id命名 命名模式为:view缩写_模块名称_view的逻辑名称 view的缩写详情如下 LayoutView:lv 阅读详情

相关推荐

Ollama部署本地大模型详细教程

创建ModelfilePARAMETER num_gpu 50 # GPU 层卸载比例(0~100)场景是否推荐本地开发/测试 Agent✅ 强烈推荐内部知识库问答(RAG)✅ 推荐(配合 Pgvector)生产环境高并发服务⚠️ 谨慎(建议评估 vLLM / Triton)需要 Function Calling 的 Agent❌ 不推荐(改用 DashScope API)🔑核心价值Ollama 是“本地大模型的 Docker”——让开源模型像容器一样 easy to run。

我们的征途是星辰大海 2617

Android包名的含义与命名规范

在创建应用程序时,我们需要在Android Studio或其他开发工具中指定一个合适的包名,以确保与其他应用程序的命名冲突。然而,需要注意的是确保新的包名仍然满足规范和要求,应该确保这个包名要确保和别的应用没有命名冲突。前缀通常表示商业组织的类型,如com表示商业组织,net表示网络组织,org表示非营利组织等。另外,包名不会影响我们程序的内容,它只是用于唯一标识我们的程序,就好像控件的id一样。域名部分是商业组织的域名或名称,用于确保包名的全局唯一性。appname:应用名,这是我们应用程序的特定标识。

充满智慧的博客 9877

YOLOv11 改进策略 | HWD:引入 Haar 小波变换,减少信息丢失

在卷积神经网络(CNN)中,下采样(Downsampling)是降低特征图分辨率、扩大感受野的关键操作,通常通过最大池化(MaxPool)或步长为 2 的卷积(Strided Convolution)实现。然而,这些方法在降低分辨率的同时,往往会丢失图像中的高频细节信息(如边缘、纹理)和精确的空间位置信息,这可能对后续特征提取和目标检测精度产生不利影响,尤其是对于小目标和需要精细定位的任务。

走向CTO的路上... 1788

Android 命名规范

一、包名 包名命名规范:包名一律小写,采用如下规则:【com】.【公司名/组织名】.【项目名称】.【模块名】,例如:com.foreverstar.xxx 1.com.xx.应用名称缩写.模块.activity 页面用到的Activity类 (activitie层级名用户界面层) 2.com.xx.应用名称缩写.模块.fragment 页面用到的fragment 3.com.xx.应用名称缩写.模块.adapter 页面用到的Adapter类 (适配器的类) 4.com.xx.应用名称缩写.

分享Android开发知识 7032

电商平台大数据分析指标

一、五大关键数据分析指标 1.1活跃用户量 活跃用户量是一个基本的指标,有 DAU(日活跃用户)、WAU(周活跃用户)和 MAU(月活跃用户)三个层次; 1.2转化 转化是一个非常重要的指标,电商运营需要关注主路径、次路径甚至精细到每一个品类 / SKU 的转化率; 1.3留存 留存要从不同的时间周期上研究,包括次日留存率、3 日、7 日、30 日留存; 1.4复购 复购则要从 3 个角度去看,复购用户量、复购率和复购金额比; 1.5GMV GMV 是最重要的指标,我们的运营最终是围绕这

默主归沙的博客 4818

模仿学习与强化学习结合(IL+RL)有没有代表性论文?未来发展趋势如何?

IL与RL的结合正成为AI研究热点,尤其在机器人控制、复杂博弈等需要边学边练的场景。经典方法如Dagger(2010)和GAIL(2016)开创了先用模仿学习预热、再用强化学习微调的模式。近期工作如IN-RIL(2024)提出交替训练策略,显著提升样本效率。开源项目RoboSchool和StableBaselines3为相关研究提供支持。未来趋势包括:1)混合式智能体结合人类经验与自主探索;2)突破小样本学习、自然语言交互等方向;3)提升安全性、样本效率和可解释性。

CyberSoma的博客 2248

Android --- 命名规范

selector sl(主要用于某一view多种状态,不仅包括Listview中的selector,还包括按钮的selector)sel_ok 选择图标使用sel_功能_说明。divider di(主要用于分隔线,不仅包括Listview中的divider,还包括普通布局中的线)3、 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写。5)、程序中使用单词缩写原则:不要用缩写,除非该缩写是约定俗成的。getXX(),返回某个值的方法,使用get为前缀标识。

2401_89173252的博客 1171

YOLOv11改进 | 损失函数篇 | YOLOv11引入引MPDIoU, GIoU,DIoU, CIoU, SIoU,EIoU, WIoU, LMPDIoU等损失函数

到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~1. YOLOv11中添加MPDIoU, GIoU,DIoU, CIoU, SIoU等损失函数的方式。文件中用给出的代码替换掉。

tsg6698的博客 5277

Android命名规范(重点讲解:包名)

Android命名规范(重点讲解:包名)         Android程序开发中,使用规范的命名有益于程序的开发和后期阅读。

wenzhi的博客 5万+

芒果YOLOv12改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更高效,打造新型YOLOv8检测器,精度高效涨点

芒果YOLOv12改进90:检测头篇之ShareSepHead:即插即用|原创新颖共享Sep检测头,更省参数量,更高效,打造新型YOLOv8检测器,精度高效涨点

包括YOLOv5、YOLOv7、YOLOv8等模型改进 343

2026年海能达嵌入式岗位面试题集(含参考答案)

本文总结了嵌入式系统开发中的常见面试题,涵盖项目经验、外设接口、存储系统、编程基础、操作系统等核心模块。主要内容包括:1)项目核心经历的硬件/软件架构及问题解决思路;2)SPI、I2C等接口协议的时序特点与应用要点;3)NAND Flash存储管理中的ECC校验原理和文件系统对接方案;4)USB设备枚举流程等关键知识点。这些题目针对嵌入式岗位的技术考察重点,既包含底层硬件接口细节,也涉及系统级设计与优化策略,全面考察开发者的嵌入式系统能力。

Open 358

Android开发规范

Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。人生不可能一帆风顺,有高峰自然有低谷,要相信,那些打不倒我们的,终将使我们更强大,要做自己的摆渡人。资源持续更新中,欢迎大家一起学习和探讨。《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

2401_84411776的博客 1297

【ROS2实体机械臂驱动】封装珞石ROS2驱动库ros2_rokae_driver_lib

这一篇文章将封装为,和之前一篇文章《ROS2 编译、打包、封装三方库(Knet为例)_ros插件编译成静态库-优快云博客》写的封装,区别在于优化了cmake dependencies和include等属性和宏定义,同时对于多库内部依赖的情况做了特定处理,更加方便外部调用。其中珞石的编译参考博主之前的文章rokae xCoreSDK C++测试使用,这里不再做赘述。通过这篇文章对于如何打包机械臂厂家提供的三方库做了进一步说明,方便用于不同机械臂厂家的三方库封装调用。!!

机器人梦想家 Bing Lee 1397

Caused by: org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive

Caused by: org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of ..vo.VideoVo.serialId1 问题描述: 在进行数据查询时,控制台报如上错误,但是sql在数据库可以正常查询; 解决方案: 根据控制台错误可以知道是因为在set值到serialId1这个字段时出现异常,然后到对应实体类中查找问题,原因是serialId1字段为基本

Echouuu的博客 498

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 代码命名规范 -- 提高代码可以读性

在编程中有时候需要对图片做特殊的处理,比如将图片做出黑白的,或者老照片的效果,有时候还要对图片进行变换,以拉伸,扭曲等等。 这些效果在android中有很好的支持,通过颜色矩阵(ColorMatrix)和坐标变换矩阵(Matrix)可以完美的做出上面的所说的效果。 下面将分别介绍这两个矩阵的用法和相关的函数。 颜色矩阵 android中可以通过颜色矩阵(ColorMatrix类)方面的操作

stayfish的专栏 1307

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

安卓命名规范

用统一的量词通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。一级包名为com,二级包名为xx(可以是公司或则个人的随便),三级包名根据应用进行命名,四级包名为模块名或层级名。2 类(classes):名词,采用大驼峰命名法,尽量避免缩写,除非该缩写是众所周知的, 比如HTML,URL,如果类名称中包含单词缩写,则单词缩写的每个字母均应大写。类中控件名称必须与xml布局id保持一致。1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。

G11176593的博客 1585

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Android命名规范

1.约定 onCreate(),onActivityCreated(),紧跟成员变量后,方法内部保持简单,尽量只调用initXXX()方法,如:initData(),initView()。 调用方法保持“临近原则”,被调用的方法,放在调用方法下方 单个方法体不要过长 代码任何地方不要拼错单词 2.命名2.1.布局文件中的id命名规则:使用驼峰命名,前缀+逻辑名称,类变量名和布局文件id名称保持一致,

♛ 走心。的专栏 1274

Android开发规范:包命名规范

文章目录简介PBL(Package By Layer)PBL优点PBL缺点PBF(Package By Feature)PBF优点 简介 android包目录的命名的好坏,会直接影响到整个app工程后期的开发效率和扩展性。 所以在创建项目的初期,建立一个好的包目录的命名非常重要。 一般来说android包命名的方式有两种:PBL和PBF。 我们现在分别来介绍下这两种命名规则以及各自的优缺点。 PB...

尼古拉斯的AI笔记 1682

Android开发规范:包命名规范(1)

这里需要说明的是,功能模块里面的util一般都是和这个功能模块强相关的,如果是功能模块包名外的util包名,一般放置的是跟项目相关的util类,能作用于整个或者多个功能模块的util类。这里讲的高耦合是指package之间的关联性,比如activity包内的类往往引用到了fragment或者view里面的类,package之间的关联性比较紧密。PBL的意思是:按照功能划分包名。package之间没有很强的关联性,开发此模块的功能只需要在对应的包名下面进行开发即可,除了基础类外,一般不需要引入其它包的类。

2401_84122016的博客 423

编写程序过程中命名方法的参考——Java命名规范

 定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性。 包的命名  (全部小写,由域名定义)     Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都 可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。 由于

suyong_yq的专栏 3183

android 屏幕适配资源文件夹命名规则和匹配规则

设备如何匹配:1.如果当前设备7英寸,分辨率为 1024x600横屏,密度为mdpi则实际匹配为values-sw600dp-land-xxhdpi文件夹,为啥?values-sw600dp-land-xxhdpi文件夹,于是就选择了这个文件夹,如果往高分辨率找也没有,则向低分辨率找,规则类似。values-sw600dp-land-mdpi文件夹,但是没有该文件夹,则去寻找高分辨率的代替,此时就找到了。意思就是优先匹配这三个限定都加上的文件夹,发现此时只有两个文件夹,且理论上应该匹配。

qq_17441227的博客 2146
上一篇: android drawable
下一篇: 代码汇编后的区段
cding1818
博客等级 码龄17年 963粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值