android 阿里 插件,堪比阿里插件的Android Studio插件集合(IDE通用)(上)

502c7f55e1b6bee3db190d9e42cceb5e.png

点击上方蓝字关注码个蛋

c4a916809234f974eeacceac15531bc1.png

除阿里插件之外这些好用的插件你知道吗?

作者博客

http://www.jianshu.com/u/f408bdadacce

文章目录

生成java文件,xml布局和生成资源文件

SmartFindViewById

GenerateFindViewById(很完美的一个插件)

LayoutCreator

Android Code Generator

Android Studio Prettify

AndroidAccessors

Android Layout ID Converter

BorePlugin

Exynap

MVPHelper

InnerBuilder

资源文件的管理和自动生成:

svgtoandroid

Android Holo Colors Generator

Android Drawable Importer(36M,有点大) 快速批量导入不同大小的drawable文件

Android Material Design Icon Generator 是一个可以生成【Material Design图标】的插件。

Android Styler 根据xml自动生成style样式(有点复杂,不实用)

android-strings-search-plugin

color-manager

AndroidPixelDimenGenerator

android-selector-intellij-plugin

下面这几个不常用,作为了解:

DimenGenerator 命令行生成dimen

android-selector-chapek

Strings-xml-tools

格式化xml布局工具:

LayoutFormatter

LayoutFormat

权限:

PermissionsDispatcher plugin

序列化工具:

Android Parcelable code generator自动生成Parcelable序列化

Android Parcelable code generator(for kotlin)使用kotlin开发时自动生成Parcelable序列化。

GenerateSerialVersionUID自动生成Serializable序列化。

SerializableParcelable Generator自动生成Serializable序列化

翻译有关:

ECTranslation

AndroidLocalizationer

TranslationPlugin

ReciteWords

0

说明:

俗话说得好,工欲善其事,必先利其器。做开发时间长了,总想找一些快捷方法,只有拥有好用的工具,才能节省开发时间,提高工作效率。我就是一个 追(喜)求(欢)高(偷)效(懒) 的开发人员,正好趁着国庆假期,把平日用到的一些 Android Studio开发插件 整理了一下,分享给大家。

有人会问了,网上也有很多博客在讲Android Studio的插件总结,为什么你还要弄一篇博客呢?我可以告诉大家,网上讲的那些很多都是文字,要么就是给你一个链接,有些还是过时的,有些博客讲的比较全面,可是并没有分门别类去区分,很杂乱;有的博客做了分类,但是都是文字和链接,打开某些链接只是一些简单的图片,很简单。简单看几个图就知道网上的博客写的大概是什么样的(我并没有针对谁,只是说我们写博客给别人看一定要注意一目了然):

有这样的:标题是链接,介绍就一句话,没有具体用法,图片看不到。

deebd09e5920b31b2a38b2661ac6f42b.png

有这样的

有这样的:介绍就一句话,没有具体用法,但是有下载地址和文档地址(我还要去打开文档去看,有些是英文的,还需要去翻译)。

fb2862a374362d6cbfc0384242143d1d.png

有这样的

有这样的:标题是链接,点进去有的链接已经失效,介绍用法是全英文的,我还要去翻译。

6f3ecdeebffc3ea0ecc02d6889cc19ea.png

有这样的

有这样的:这个稍好一些,标题是链接,有介绍,没有图片讲解,需要点击标题链接进去。

6c96f12e069179dba8e709f2bc500723.png

有这样的

有这样的:全部是文字,没图片,杂乱,类型不知道,哪个好用也不知道,还要自己一个一个的去下载试试看。

8839dfd9c8a9cc05fc44ac4dafc4af9c.png

有这样的

我是一个 追(自)求(娱)极(自)致(乐) 的技术宅,那些博客看的我想砸了电脑,为啥不讲清楚一些,让人可以知道是干嘛用的?这也是我整理这篇博客的原因。

首先,我分门别类,按类型把功能类似的的都放在一起。

其次,我对每一个插件做了一个很精确的讲解,图文并茂。另外把一些注意事项,以及优缺点都写的清清楚楚,这是我自己使用中总结出来的(极个别的除外)。

再次,制作对比图片,以及截图补充说明。网上的有些动图要么太模糊,要么版本太旧,要么就是速度太快看不清。所以我把很多插件的用法自己做了一个录屏,做成gif动图。另外自己也做了一些图片对比图,方便别人查看插件使用前后的区别。(有些图片用的是网上的或者官方的,在此感到抱歉,因为那些图片能够解决问题,也没什么大的问题,所以暂时借用了。)

1

生成java文件,xml布局和生成资源文件:

1.SmartFindViewById

作用: 重构了GenerateFindViewById 项目的所有代码,使得在一定程度上可以更方便地进行后期扩展。并在GenerateFindViewById 项目基础上新增了智能查找布局文件,优化了展示界面,增加了 I18N 国际化支持等功能。SmartFindViewById插件github地址(https://github.com/Khande/SmartFindViewById)

说明:

该插件可以依次通过以下6种方式来逐一尝试获取目标布局文件名,优先级从高到低,一旦有一个方法获取到了有效的布局文件名, 就会展示对应布局文件的所有拥有 id 的 View 控件,然后可以选择生成对应的 findViewById 和 onClick 点击事件代码。

1.选中布局文件名,如选中代码段 setContentView(R.layout.activity_main); 中的 activity_main

2.检测当前光标所在行是否包含布局文件名(通过 R.layout. 前缀判断)

3.Activity setContentView(R.layout.xxx) 方法布局文件参数4.Fragment(包括 support_v

4.fragment) 中 onCreateView 方法中 inflate(R.layout.xxx... 布局参数

5.RecyclerViewAdapter 中 onCreateViewHolder 方法中 inflate(R.layout.xxx... 布局参数

6.弹输入框提示手动输入

注意事项:如果是Activity,必须要有oncreate方法,如果是fragment,必须要有onCreateView方法,如果是适配器里面的布局,必须要有onCreateViewHolder 方法。也就说,必须要有布局参数。

快捷键: Ctrl + Alt + S

用法:

1.在一个 Activity, Fragment, RecyclerViewAdapter(包含直接或间接子类)甚至一个一般的类文件中,如果对应代码中已存在布局文件名, 可以对着类文件右键选择Generate,选择 SmartFindViewById 菜单(或是 Ctrl + Alt + S, 或者 点击菜单栏Code 选择 SmartFindViewById ), 这时就会自动查找布局文件,然后弹出一个展示目标布局 文件下的所有有 id 的 View 控件列表,如果你的布局文件不是写在 setContentView(R.layout.xxx) 等常见代码中, 你可以手动选定目标布局文件名或将光标定位到目标布局文件名所在的代码行, 最后还可以手动输入。

2.在弹出的 View 控件列表弹框中,默认选中还没有编写 findViewById 代码的 View 控件,当然也可以手动选中或取消。

3.可以根据 View 控件是否有 android:clickable=true 属性或是 Button 类控件,自动勾选自动生成 onClick 点击事件代码。

4.可以编辑 View 控件生成类成员变量的变量名,View 成员变量名生成默认规则类似于: android:id="@+id/btn_submit_info" 对应的成员变量名为 mSubmitInfoBtn

5.对于 Fragment 等需要 rootView.findViewById, 可以勾选 RootView 选项,同时可以设置该 RootView 的变量名,默认为 itemView, 对于非 Activity 类该选项默认勾选

6.点击确认生成

演示图如下:

这是无布局参数生成的效果(看看有多麻烦就知道了):

cabc62f6e5386f2a41b4ab5749021f15.png

SmartFindViewById 使用_无布局参数

这是有布局参数生成的效果:

3c828e42d6f4e28c0c099c80d804c819.png

SmartFindViewById 使用_有布局参数

2.GenerateFindViewById(很完美的一个插件)

快捷键:Ctrl+Alt+E

作用:

1)可输入布局字段、可选中布局文件字段,自动生成有id控件相应的代码(如果鼠标只是放在布局上,按下快捷键,会弹出输入框,提示输入布局; 鼠标双击布局,就不会有弹窗让你输入布局了)2)自动生成onCreate/onCreateView方法3)可编辑变量名4)可选择是否生成OnClick代码5)可选择是否LayoutInflater类型6)支持ButterKnife用法(跟ButterKnife原始用法有区别,慎用)

用法(用途很多,下面就简单的来几张图演示一下):

Activity如果没有onCreate方法,会先生成onCreate方法,再重新操作一次才生成有id控件相应的代码。如下图所示:

16bc3d9d92b5f225a3a1dd482505ddd2.png

GenerateFindViewById 在 Activity 的使用

Fragment如果没有onCreateView方法,会先生成onCreateView方法,再重新操作一次才生成有id控件相应的代码。如下图所示:

07b938ebd1c6bfaefc0fad75b6da6228.png

GenerateFindViewById 在 Fragment 的使用

3.LayoutCreator

作用:可以让你在Activity/Fragment中自动生成findViewById等布局相关初始化代码,或者在Adapter中自动生成ViewHolder代码。

用法:鼠标放在布局文件上,按快捷键alt + Insert(或点右键选择Generate / 或点击菜单Code → Generate ),右键选择LayoutCreator,选择要生成的变量以及其他设置,点击confirm就可以了。

下面这个图是以Activity生成代码作为演示:

a4165d5b9d272fff4c29c8c82dcb0160.png

LayoutCreator 使用

【缺点】

1) 控件id是什么,用这个插件生成的控件命名就是什么,命名不规范。

2) EditText之类的可以编辑的控件,获取数据的时候,用的是id名字获取的,要手动改一下。(请看示例图上有一处报错的,那个就是。)

4.Android Code Generator

用法: 找到布局文件名称,右键,选择Generate Android Code → 选择要生成的类型(默认是6种类型可供选择), 选择生成的代码存放的路径以及包名,如果有多个module或者lib,默认的包名是第一个module的包名(比如我的第一个module是app,包名是 com.lzw.logutilsdemo )

cc753e80e662b493d8e58f8ce2f21ae8.png

使用步骤

使用图解如下:

9a037bba3fcc404e0137ec7195807ccb.png

Android Code Generator 生成 Activity 的代码

56525a870fdcaf9179d8ab0e8189bf29.png

Android Code Generator 生成 Menu 的代码

【优点】根据布局文件快速生成对应的Activity,Fragment,Adapter,Menu类,点击Android Studio菜单的file --> setting--> Android Code Generator,可以快速生成文件,也可以复制代码到剪切板,很方便。

【缺点】

(1) 生成的menu需要自己复制粘贴,很麻烦。(2) 每次都要手动设置路径和包名,很麻烦。(3) 生成的点击事件需要自己去导包,很麻烦。(4) 生成的控件如果是button之类的,是这种格式 findViewById(R.id.btn).setOnClickListener(this); 其他的都是很标准的,看起来很不美观,建议改善。(5) 生成的类名不规范,比如我的xml是activity_main2.xml,生成的Activity名字是ActivityMain2Activity,这显然是多此一举,应该把前面那个Activity去掉,并且调整一下顺序,如果是MainActivity2就对了。

5.Android Studio Prettify

作用:

1. 可以将代码中的字符串写在string.xml文件中,选中字符串鼠标右键选择Extract String resource

9835229f6eb324d66c1ebfad967dd474.png

Android Studio Prettify 使用

2. 从布局文件中生成对View的声明,这个插件帮助我们自动生成findViewById这种代码。

(有两种提示,一个是View Variables ,一个是View Fields,如下图所示:)

186c5be09f8369c0d8a31a69d6d6328b.png

Android Studio Prettify 使用_View Variables

9c9e3c6c24b2a17793f0e79583a5515b.png

Android Studio Prettify 使用_View Fields

两者的区别:View Variables是直接生成局部变量,而且是排成一排;View Fields是生成全局变量并引用。

【缺点】

1) 多个Module拥有同名的xml布局文件,有可能会设置到别的Module的xml布局文件中。

2) 生成的代码都在onCreate或者onCreateView中,可读性差。

3) 生成的全局变量的导包是在变量类型上的,而不是在类外面导包,很不规范。

6.AndroidAccessors 快速生成get set方法,用法: 在代码中写完Java Bean对象后,按下Alt+Insert后选择AndroidAccessors即可

使用图解如下:(图里面第一次用的是AndroidAccessors 演示的,第二次用的系统自带的演示的)

7890979f547d2b8400a13c05b8de21c8.png

AndroidAccessors 使用

【缺点】Android Studio自带有这个功能,没必要下载这个插件

7.Android Layout ID Converter(这个最麻烦,不推荐使用,仅作为了解)

使用:鼠标在布局文件右键,在弹出来的菜单当中选择Convert Android layout xml,然后它会弹出一个面板,如下所示。选择要生成的代码的格式,按OK,这时它已经把生成的代码复制在你的粘贴板中,然后你在使用这个布局文件的Activity或Fragment中,按Ctrl + V 把代码粘贴出来就可以了。

c43292d0ba21db080d34e2423a265345.png

Android Layout ID Converter 使用

【缺点】需要手动粘贴,麻烦;另外只能设置m前缀,_前缀或者无任何前缀,扩展性不好。

8.BorePlugin(https://github.com/boredream/BorePlugin)

Android Studio 自动生成代码插件(Android Studio插件搜索LayoutCreator就可以下载,具体讲解请查看LayoutCreator)

9.Exynap(http://exynap.com/)

Exynap 一个帮助开发者自动生成样板代码的 AndroidStudio 插件。只需要一个快捷方式(Ctrl + Shift + D),输入命令就可以生成代码了。

a7b2d172b46aca0e9530096cdd411f4a.png

Exynap使用示范

10.MVPHelper(http://androidwing.net/index.php/27)

一款Intellj IDEA 和Android Studio的插件,可以为MVP生成接口以及实现类,解放双手。具体请查看

Android Studio插件之MVPHelper,一键生成MVP代码(http://androidwing.net/index.php/27)一文

使用图如下:

51c60e032084f758a5046bd8b0ea77c9.png

MVPHelper插件使用

11.Innerbuilder(https://github.com/analytically/innerbuilder)

InnerBuilder 一款Intellj IDEA 和Android Studio自动生成内部类Builder代码的插件。

使用:使用Shift + Alt + B 或 Alt + Insert并选择Builder ....选择要包括的字段,然后按OK。

当构建器已存在时生成构建器时,插件将尝试更新它。 它将添加缺少的字段和构建器方法,但不会删除任何字段或方法。

示意图:

c3273dbaf0aacbf0f44f26638fab29bb.png

InnerBuilder 使用示意图

2

资源文件的管理和自动生成:

1.svgtoandroid(https://github.com/misakuo/svgtoandroid)

通过它可以完成从svg文件到Android VectorDrawable的自动化转换,传统做法是网上招一个工具生成一张svg图,然后导入到Android Studio。

新版Android Studio自带的svg转VectorDrawable功能:

77d7d929aa55bf7dcec936f27b135e43.png

Android Studio自带功能

下面一张图演示一下这个插件的用法:

5ec1ff697fe497ff12560cf2d9785869.png

用法介绍

97830e9af0208c2ce4fca73a54cdd267.png

SVG2VectorDrawable 使用

2.Android Holo Colors Generator

通过自定义Holo主题颜色生成对应的【Drawable】和【布局文件】,点击导航栏的蓝色的 H 符号,就可以了。各种右键,各种菜单栏都找了,找不到使用方式,找了半天最后在导航栏有个蓝色的H符号,太坑了,官方也没有讲解怎么使用。

714451f60594499d874946184ca6d395.png

Android Holo Colors Generator 使用

3.Android Drawable Importer(36M,有点大) 快速批量导入不同大小的drawable文件。

它导入Android图标与Material图标的Drawable ,批量导入Drawable,多源导入Drawable(即导入某张图片不同分辨率的图片到对应的drawable目录下)它可以减少导入图像到Android项目所需的工作量。

下面看几张截图:

点击任意一个文件,右键New,然后看最后4 个选项,这就是该插件的4个功能

ad353cede6a7969b64830feb91082d65.png

点击任意一个文件,右键New,然后看最后4 个选项,这就是该插件的4个功能

每个功能的具体演示

2e8c66804358544f915f977e346ed1d4.png

4.Android Material Design Icon Generator(14M,这个插件比较大) 是一个可以生成【Material Design图标】的插件 ,使用方式,右键项目,选择Material Design Icon,可以选择icon图标,大小,路径等

*点击任意一个文件,右键New,选择Material design icon,示意图如下:

8384d43b71f79b4ae0d89986ca0cbeaf.png选择设置要生成的内容,点OK

8dd103db74b208e51c0f908dd769cda6.png

5.Android Styler 根据xml自动生成style样式(有点复杂,不实用)

*用法:选中要生成样式的内容,复制到styles.xml里面,右键Paste Style或按快捷键 Ctrl + Shift + D,然后输入一个style的名字,最后在xml里面引用这个样式。

6.android-strings-search-plugin(https://github.com/konifar/android-strings-search-plugin)

一个可以通过输入文字找到strings.xml资源的插件

官方的示意图如下:

3f50726a2ab428dd77033a83b3b8c8b8.png

官方的示意图

【缺点】不能输入中文,即使是values-cn里面的strings.xml里面的中文也不能识别

c7a545c6cb1fb0be58e72007623acc61.png

7.color-manager(https://github.com/shiraji/color-manager)

颜色管理

使用也很简单:选择要放置的文件,从颜色面板选一个颜色,拖动到您要复制颜色名称/标签的位置。

示例图:

1.在xml中使用颜色

16f96d13c1e41bc2fade23913c5393eb.png

在xml中使用颜色

2.不在xml中使用颜色

10e6ffa0a13d1312ecb26d2385e465bb.png

不在xml中使用颜色

8.

AndroidPixelDimenGenerator(https://github.com/succlz123/AndroidPixelDimenGenerator)

根据输入的像素来自动生成Android项目的dimen.xml文件,主要是为了适配国产Android TV盒子的各种分辨率。 这个插件参考自 DimenGenerator(https://github.com/yann9/DimenGenerator)

用法:

1.点击Tools菜单 → AndroidPixelDimenGenerator

2.根据提示输入分辨率的取值范围和分辨率

3.文件生成路径默认在当前项目的res,如果有多个module一般会在第一个的res中,如果遍历不到res文件夹,文件生成路径为当前项目的根目录。

示意图:

4fa37630b9ca446f2b59da2171e4269c.png

9.android-selector-intellij-plugin(https://github.com/importre/android-selector-intellij-plugin)

插件生成normal,press和按下水波纹颜色

使用方式:

1.首先在 res/values/colors.xml添加颜色

2.res目录中右键选择New → 选择 Android Selector(或Ctrl+ N快捷键)。

3.选择文件名,颜色,press按下颜色和按下水波纹(pressed-v21 )的颜色

示例图:

8824f8f8d2148952630d520c7d47996c.png

android-selector-intellij-plugin示例图

下面这几个不常用,作为了解:

DimenGenerator (https://github.com/yann9/DimenGenerator)命令行生成dimen

android-selector-chapek(https://github.com/inmite/android-selector-chapek)

通过资源文件命名自动生成 Selector 文件,已经4年没更新,使用过程会报错。按照惯例,还是来一张效果图:

2e499a5e4144535eb9f94efe921602de.png

android-selector-chapek的使用

Strings-xml-tools (https://plugins.jetbrains.com/plugin/7498-android-strings-xml-tools)管理Android项目中的字符串资源,它提供了排序Android本地文件和添加缺少的字符串的基本操作。(3年没更新了,这个工具对Android Studio1.2+以上的都不支持,不推荐使用,仅作了解)

3

格式化xml布局工具:

1.LayoutFormatter 一键格式化你的 XML 文件,并且调整Android布局XML文件属性顺序,并且会将默认属性调整到前面,并在行的末尾使用自定义属性。

用法入下:

1. 选择布局文件右键,或者直接在布局文件里面右键 -> Refactor -> Reformat Layout XML.

2. 快捷键: ctrl+alt+F

使用效果对比图如下所示:

0032f1cedea5b2fe131d30d08d18b0a9.png

使用LayoutFormatter前后对比图

2.LayoutFormat 快速格式化xml代码(因为快捷键和LayoutFormatter 一样,不建议同时安装这两个插件)

功能有两个:

1.批量去格式化layout.xml,点击layout目录,右键Refactor,选择LayoutFormat(快捷键Ctrl +Alt + F)

7a396fa9923d2645499f696e144c7372.png

layout format 批量格式化xml

2.修改某一个layout.xml硬编码,点击布局名字右键Refactor(或者打开布局,鼠标放在布局内容任意地方

右键Refactor),选择LayoutFormat(快捷键Ctrl +Alt + F)

2c9852bd2b9befffdab9b77e44343c13.png

layout format 使用

使用中可能会遇到的问题,在导入插件时,windows下可能会出现插件加载失败的情况。会报下面的错误:

cannot create class "com.shang.layoutformat.LayoutFormat" [Plugin: com.shang.android.layoutformat] com.intellij.diagnostic.PluginException: cannot create class "com.shang.layoutformat.LayoutFormat" [Plugin: com.shang.android.layoutformat]...后面还有一大串,在此省略这是使用的android studio 的运行时的jdk版本低于插件的jdk,换成最新的jre1.8就OK了( 查看android studio 的 java 版本是在:菜单栏 > Help > About)

4

权限:

PermissionsDispatcher plugin 自动生成动态权限的代码

用法:

1. 第1步.打开项目modle里面的build.gradle 右键 Generate -> Add PermissionsDispatcher dependencies,添加依赖

2. 第2步.打开 Activity/Fragment,右键 Generate -> Generate Runtime Permissions... 选择要设置的权限,

输入注解的方法名,点击Generate 按钮

示范图如下:

1600f9f965d3dc1b44dd0472502ee1b1.png

PermissionsDispatcher plugin 使用

5

序列化工具:

Android Parcelable code generator 自动生成Parcelable序列化

da7eab745f2ee54205eb113d636465e2.png

Android Parcelable code generator使用

2.Android Parcelable code generator(for kotlin) 使用kotlin开发时自动生成

3.Parcelable序列化,用法和上述类似。

GenerateSerialVersionUID 自动生成Serializable序列化。

【注意】默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告。如果需要ide提示生成serialVersionUID,那么需要做以下设置:

1、setting -> Inspections -> Serialization issues,将其展开后将 serialzable class without "serialVersionUID"打上勾;

f6bba070914f398407e24609a3a2baef.png

SerializableParcelable Generator的使用

2、将光标放到类名上,按 atl+enter 键,就会提示生成serialVersionUID了

4、SerializableParcelable Generator 自动生成Serializable序列化

6

翻译:

1.ECTranslation(https://github.com/Skykai521/ECTranslation)

这是一个可以对AndroidStudio中的英文进行翻译的一个插件,以后看源码的时候,就不用再去查字典了,方便多了,也可自定义快捷键,具体的可查看其使用说明。

使用:选择 Edit -> Translate或者按下Alt + I,即可翻译。(默认的是Meta + I ,windows上没有这个快捷键,我就改成了Alt + I, 点击菜单栏File -> Settinigs -> Keymap -> 搜索Translate - > 右键 add Keyboard Shortcut. 输入你想要的快捷键即可 )

4f429aef887ad7f871a6e871b2eee809.png

使用方式

2c2d3f068c986b9efa7b9d3dd1768a5a.png

翻译结果

2.AndroidLocalizationer(https://github.com/westlinkin/AndroidLocalizationer) 可用于将项目中的 string 资源自动翻译为其他语言

fe4b1d6aa3210b4985dea9e9712e57f3.png

AndroidLocalizationer 使用

3.TranslationPlugin (https://github.com/YiiGuxing/TranslationPlugin)又一翻译插件,可中英互译

说明:需要注册申请有道智云翻译服务,有一定的使用期限,如帐号到期或欠费,将无法使用。

fdaf75cfdb78de295f3431ba7fe18191.png

TranslationPlugin 使用

4.ReciteWords(https://github.com/BolexLiu/ReciteWords)

这是一个androidStudio翻译与陌生单词记录插件,你所翻译的单词会被记录在你当前用户目录下的ReciteWords.md文件中(如:C:\\Users\\Bolex\\ReciteWords.md)。可以通过Markdown编辑器打开它进行学习。

使用很简单,选中代码,按下 Alt+Q(也可以自己设定)。即可翻译。效果如下:

9492c4cc3af710e6406bf42be916873e.png

ReciteWords 使用

翻译的单词会被记录在当前项目的根目录下的翻译历史记录.md文件中(如:\\xxxProject\\翻译历史记录.md)。可以通过Markdown打开它。as翻译后切换Project模式可以在项目文件夹中直接看到。效果如下:

323ab2f32c1509aa37be24aa53eb9869.png

翻译记录

留言有福利,具体规则请看

「帮你养成好习惯」

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值