Android面试

安卓Android面试题汇总——超长15万字总结 本文介绍了Android开发中Activity与Fragment的通信方式,包括接口回调、Bundle传参、Handler、广播、EventBus和ViewModel等6种方法,分析了各自适用场景。接着讲解了Activity四种启动模式(standard、singleTop、singleTask、singleInstance)的特点和应用场景。最后对比了BroadcastReceiver和LocalBroadcastReceiver的区别,指出前者支持跨应用通信但性能较低,后者仅限应用内使用但更高效安全。 阅读详情

面试时间较短,要考虑到各个方面

1、请解释下在单线程模型中Message,Handler,Message Queue,Looper之间的关系。

拿主线程来说,主线程启动时会调用Looper.prepare()方法,会初始化一个Looper,放入Threadlocal中,接着调用Looper.loop()不断遍历MessageQueue,Handler的创建依赖与当前线程中的Looper,如果当前线程没有Looper则必须调用Looper.prepare()。Handler,sendMessage到MessageQueue,Looper不断从MessageQueue中取出消息,回调handleMessage方法。

2, 同一个程序,但不同的Activity是否可以放在不同的Task任务栈中?

可以放在不同的Task中。需要为不同的activity设置不同的affinity属性,启动activity的Intent需要包含FLAG_ACTIVITY_NEW_TASK标记。

3, 横竖屏切换时候Activity的生命周期。

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges=”orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

4, 如何理解Activity,View,Window三者之间的关系?

这个问题真的很不好回答。所以这里先来个算是比较恰当的比喻来形容下它们的关系吧。Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图)LayoutInflater像剪刀,Xml配置像窗花图纸。

1:Activity构造的时候会初始化一个Window,准确的说是PhoneWindow。

2:这个PhoneWindow有一个“ViewRoot”,这个“ViewRoot”是一个View或者说ViewGroup,是最初始的根视图。

3:“ViewRoot”通过addView方法来一个个的添加View。比如TextView,Button等

4:这些View的事件监听,是由WindowManagerService来接受消息,并且回调Activity函数。比如onClickListener,onKeyDown等。

5,Activity的几种LaunchMode及使用场景

standard 模式

这是默认模式,每次激活Activity时都会创建Activity实例,并放入任务栈中。使用场景:大多数Activity。 singleTop
模式

如果在任务的栈顶正好存在该Activity的实例,就重用该实例( 会调用实例的 onNewIntent()
),否则就会创建新的实例并放入栈顶,即使栈中已经存在该Activity的实例,只要不在栈顶,都会创建新的实例。使用场景如新闻类或者阅读类App的内容页面。
singleTask 模式

如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的 onNewIntent()
)。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移出栈。如果栈中不存在该实例,将会创建新的实例放入栈中。使用场景如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。
singleInstance 模式

在一个新栈中创建该Activity的实例,并让多个应用共享该栈中的该Activity实例。一旦该模式的Activity实例已经存在于某个栈中,任何应用再激活该Activity时都会重用该栈中的实例(
会调用实例的 onNewIntent() )。其效果相当于多个应用共享一个应用,不管谁激活该 Activity
都会进入同一个应用中。使用场景如闹铃提醒,将闹铃提醒与闹铃设置分离。singleInstance不要用于中间页面,如果用于中间页面,跳转会有问题,比如:A
-> B (singleInstance) -> C,完全退出后,在此启动,首先打开的是B。

6, 如何避免Overdraw

Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧现象,也就是我们所说的卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需要尽量减少Overdraw的发生。 第一招:合理选择控件容器 第二招:去掉window的默认背景 第三招:去掉其他不必要的背景 第四招:ClipRect &
QuickReject 第五招:ViewStub 第六招:Merge 第七招:善用draw9patch 第八招:慎用Alpha
第九招:避免“OverDesign”

7, Android中一个Touch时间的分发流程

System -> Activity -> PhoneWindows -> dockerView -> ViewGroup

8, 为什么Fragment不能接受到按键Key事件,而Dialog可以?

Fragment只是ViewGroup的生命周期管理者,而Dialog拥有一个完整的子Window对象,Activity会优先分配事件到前台的Dialog.

9, Service的生命周期,两种启动方法,有什么区别:

1.context.startService() ->onCreate()- >onStart()->Servic running–>(如果调用context.stopService() )->onDestroy() ->Service shutdown
1).如果Service还没有运行,则调用onCreate()然后调用onStart();
2).如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次。
3).调用stopService的时候直接onDestroy,
4).如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。
2.context.bindService()->onCreate()->onBind()->Service running–>onUnbind() -> onDestroy() ->Service stop
1).onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。
2).这个时候会把调用者和Service绑定在一起,Context退出了,Service就会调用onUnbind->onDestroy相应退出。
3).所以调用bindService的生命周期为:onCreate –> onBind(只一次,不可多次绑定) –> onUnbind –> onDestory。

10, 怎么保证service不被杀死

1.提升service优先级
2.提升service进程优先级
3.onDestroy方法里重启service

11, 广播的两种注册方法,有什么区别。

1.静态注册:如果有广播信息来,你写的广播接收器同样的能接受到,比如系统的一些广播。
2.动态注册:当应用程序结束了,广播自然就没有了,一些自己定义的广播

12, 有没有使用过热修复框架?简单介绍一下

13,是否了解过React Native,简单介绍一下

14, 如何实现一个全屏100帧的帧动画?

最优解:OpenGL ES自主绘图
再次,SurfaceView实现双缓存,加入LruCache缓存算法
再次,必然行不通

15,属性动画的核心是那个类,可否作用于非View对象?

TypeEvaluator.java,可以,属性动画不止针对动画,对Object的可访问的对象属性都可以操作。

16,接触过那些第三方扩展?

友盟,shareSDK, Jpush, 地图,支付。。。

17, 在Android安全方面,有什么经验?

通信安全(服务器通信,组件通信), 数据加密,数据验签,代码混淆,WebView/Js调用安全

18, 经常使用到的调试工具有什么?

Logcat, Adb, HierarchyViewer, TraceView, Heap, Lint…

19, 对于性能优化有什么建议?

UI优化, 内存优化, 电量优化, 流量优化

20, Android目前存在哪几种设计模式,分别介绍

MVC,MVP, MVVM

21, 如何选择Android版本适配问题?

根据什么,选择最低支持版本?

22, 举出你知道的Android M, N,的新特性

分屏,画中画,文件访问权限的改变,JobServie…

23,简单说说你的屏幕适配方案?

百分比布局(适用于要保持界面中各个元素大小比例一致)
xml文件像素布局,为不同的屏幕分辨率给定指定的大小
xml文件dp布局,为不同的分辨率指定可伸缩的大小
px转dp,协定转换公式,根据一张固定分辨率的原型图上的标注自动转换到其他分辨率
Flex布局(FaceBook开源Yoga,比较新)

24, 有没有用过EventBus或者RxAndroid等基于事件的响应式库,简单介绍一下

Evetbus事件总线
RxAndroid, 异步基于事件的响应式编程
Agera, 类似于Rx,模型为push Event/pull Data

25, 你认为的Android发展方向在哪?Kotlin语言有什么样的看法?

Android面试官,面试安卓开发十大问题 基本情况 本人普通本科,Android开发岗。 此文主要是秋招面试经验汇总,最终拿到了百度、腾讯的offer。 主要包括阿里三面,腾讯四面,百度三面,网易三面,美团一面。 学习知识汇总 1、Java se基础 1).Java基本数据类型与表达式,分支循环。 2).String和StringBuffer的使用、正则表达式。 3).面向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、方法和方法的参数传递过程、static关键字、内部类。 4).对象实例化过程、方法的覆盖、f 阅读详情

相关推荐

安卓Android面试-综合题汇总九万字

文章摘要 本文详细解析了Android Activity的核心机制:1)启动流程涉及客户端与服务端的跨进程通信,包括根Activity的创建过程;2)状态保存与恢复(onSaveInstanceState/onRestoreInstanceState)的触发条件及版本差异;3)四种启动模式(standard/singleTop/singleTask/singleInstance)的特点与适用场景;4)Activity跳转与返回时的生命周期执行顺序;5)系统交互事件(横竖屏切换、Home键、锁屏等)对生命周期

编程小鹏的博客 1294

Docker在Android中的应用

Docker在Android中的应用 测试环境基于xOS 10.14.5,2019/07/27 Docker 是什么? https://www.docker.com/ Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 可...

高远的博客 1万+

安卓逆向工程师面试指南【干货】

安卓逆向工程师岗位在近年来算是互联网IT行业的香饽饽之一,月薪动辄上万年薪动辄20万,让很多行业内兢兢业业拿一个五六千的外行人士很是羡慕。但是安卓逆向工程是专业技术要求很高的职业,外行人轻易抢不走你的饭碗,因此也有大量的人花很多金钱投资自己,学会了安卓逆向,想要入行分一杯羹。 光学会技术,并不等于就能找到一份好的工作。要找到一个很好的安卓逆向工程师岗位,我们一定不能忽视其中最为重要的环节——面试。 安卓逆向工程师在面试时,需要你掌握什么技能,面试官会怎样考核你?这些东西对于一位安卓逆向求职者来说,至关重要.

contrary_的博客 2380

android view层次与位置大小

首先要明白,android的层次由摆放view的先后顺序决定,也就是addView中的index,0表示最下面,越大越上面,不会超过容器的包含的View个数,(因为是数组下标)。如下代码展示了如何交换两个ImageView的层次。

吴工的专栏 3万+

车载 Android开发面试习题_安卓车载面试

像一些车企大厂不惜给出,去广招这方面的技术人才。给原本处于落寞的Android 开发行业一丝曙光,不少Android 开发想着去投身车企。但在面试中才发现,和普通的Android 应用开发面试还是有点不同的,车载 Android 应用开发程序员需要对 Android 应用程序的开发技术与汽车硬件应用的原理有一定的理解,同时还需要具备扎实的编程基础和解决问题的能力。他们还需要了解车载通信协议和与 Android 系统兼容的硬件设备,例如 GPS、蓝牙、OBD等等,从而实现对车辆的读取和控制。

2401_84538884的博客 439

Android面试指南与参考答案——基于领星安卓开发职位要求

本文基于领星安卓开发职位要求,整理Android开发岗位常见面试问题与参考答案。核心内容包括:1.基础知识:Android四层架构、SDK组件及API使用;2.编程语言:Kotlin优势、Jetpack组件应用及MVVM/MVP架构对比;3.开发工具:性能优化方法及版本适配策略;4.实战经验:第三方SDK集成和APP发布流程。针对1-3年经验者及应届生,提供代码示例和项目实例说明,覆盖框架搭建、性能优化等关键技术点,帮助候选人系统准备面试,突出技术能力和问题解决思维。

郑伟强dev的专栏 1193

android应用程序中获取view的位置

我们重点在获取view的y坐标,你懂的... 依次介绍以下四个方法: 1.getLocationInWindow Java代码 int[]position=newint[2]; textview.getLocationInWindow(position); System.out.println("getLocationInWindow:"...

weixin_30674525的博客 251

从零到一:YT8512C PHY芯片在STM32F407上的LWIP移植实战与避坑指南

本文详细介绍了YT8512C PHY芯片在STM32F407平台上基于LWIP协议栈的移植实战,涵盖硬件连接、CubeMX配置、寄存器定制和调试技巧。重点解析了与主流PHY芯片的差异,提供了完整的避坑指南和优化建议,帮助开发者快速实现稳定可靠的嵌入式网络连接。

uber9的博客 538

(android学习笔记)Android View

Android View类: 1.所有的Android组件均是View的子类。 2.所有的组件均可以进行两种配置,一是通过方法进行配置。二是通过XML进行配置。 TextView类: 1.对于文本组件而言主要的目的是静态的显示一些文字,类似于标签的功能。 2.其是android.widget.TextView类,是android.view.View类的直接子类。 3.插

破东风 820

相控阵雷达仿真入门:TWS与TAS模式实战解析(附代码示例)

本文深入解析相控阵雷达仿真中的TWS(边搜索边跟踪)与TAS(搜索加跟踪)模式,提供实战代码示例和优化策略。通过简化模型设计和对象化建模,帮助开发者快速构建高效仿真系统,适用于军事推演和装备评估。文章涵盖核心逻辑、数据结构设计及性能优化技巧,提升仿真效率与准确性。

weixin_30687051的博客 453

Abaqus小白必看:用Micromechanics Plugin轻松搞定RVE周期性边界条件(附避坑指南)

本文为Abaqus初学者提供了使用官方Micromechanics Plugin插件高效实现复合材料代表性体积单元分析的完整指南。文章详细讲解了从插件安装、模型准备、周期性边界条件自动设置到结果验证的全流程,并重点分享了处理复杂模型和避免常见错误的实用技巧,帮助用户大幅提升RVE分析效率与准确性。

weixin_28363123的博客 796

Android总结 之 View系统学习(一)

一. View的体系结构 view是Android 所有控件的基类,ViewGroup相当于View的结合,一些Layout,如FrameLayout、LinearLayout和RelativeLayout都是继承于ViewGroup。 二. View的属性 getTop() getButtom() getRight() getLeft() getHeiht() getWidth() Vi...

heihei 432

关于Kswapd的理解(一)

关于Kswapd的理解(一) 之前跟踪了MemAvailable的计算方式,其中watermark的计算花了很多精力,在学习的过程中看到一些资料中说watermark是给swapd使用的,于是乎,研究一下看看咯 本部分主要记录两个方面: 对于kswapd这个东西,从初学者(我)的角度出发会考虑哪些内容? 跟踪kswapd 初始化结构部分; 1. KSwapd机制 上图是还没有跟踪kswapd code的时候,对自己提出的一些疑问和自身的理解,主要是如下内容: kswapd 机制用来做什么:内存不足时

And乔的博客 2713

腾讯安卓开发面试流程,入职两年的安卓,最新大厂Android校招面试经验汇总

文章会持续更新的。绝对干货!!!Android进阶学习全套手册关于实战,我想每一个做开发的都有话要说,对于小白而言,缺乏实战经验是通病,那么除了在实际工作过程当中,我们如何去更了解实战方面的内容呢?实际上,我们很有必要去看一些实战相关的电子书。

2401_84023482的博客 1145

【Qualcomm高通音频】如何封装音频控件?

音频代码涉及面很广,这篇文档介绍如何封装音频控件给HAL层使用。这里以AW87519芯片调试为例进行介绍封装音频控件和使用的方法。在最初接出到高通音频基础功能调试的时候,都是从tinyalsa指令/mixer_paths文件配置开始。因为单独一个音频设备的调试,都对应一条音频链路的打通。比如以下链接上高通平台基础音频输入输出设备调试: 【Qualcomm音频】Speaker 调试记录http...

crow_ch的博客 1954

CAM350常用快捷键

CAM350快捷键 CAM350常用快捷键

bhxc809751502的博客 3052

2024年安卓最全Android 六大布局,十多家大厂Android面试真题锦集干货整理

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。(以下体系的复习资料是我从各路大佬收集整理好的)历时半年,我们整理了这份市面上最全面的安卓面试题解析大全包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

2401_84563287的博客 809

【Halcon-1D测量】measure_pairs 函数功能(用于提取垂直于矩形/环形弧主轴的直边对)

HALCON算子measure_pairs是1D测量模块的基础工具,专用于提取垂直于矩形/环形弧主轴的直边对。该算子通过振幅阈值和灰度过渡规则(如positive/negative)进行边对分组,支持_strongest后缀选择最强边缘避免误配对。输出包含边缘坐标、振幅及内外间距(IntraDistance/InterDistance)。关键限制包括仅适用于直边、Sigma需≤0.5×测量长度,且忽略图像域。相比模糊版本算子,它更适用于边缘清晰的简单场景(如电子元件间距测量)。典型应用需配合gen_meas

weixin_45590420的博客 303

android系统开发面试,androidstudio安卓版

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的最后,互联网不存在所谓的寒冬,只是你没有努力罢了!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!最后,互联网不存在所谓的寒冬,只是你没有努力罢了!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取。

2401_84415683的博客 1159

HRNet训练自己的分类数据

1.搭建环境 为了防止和服务器上的环境冲突,这里利用conda搭建环境。 Install PyTorch=0.4.1 following theofficial instructions git clonehttps://github.com/HRNet/HRNet-Image-Classification Install dependencies: pip install -r requirements.txt ...

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 5847

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android最全鸿蒙与安卓系统简单对比,绝非追求三分天下。,2024年最新面试官面试技巧书籍推荐

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。(以下体系的复习资料是我从各路大佬收集整理好的)历时半年,我们整理了这份市面上最全面的安卓面试题解析大全包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

2401_84545497的博客 370

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

安卓开发基础面试题,9次Android面试经验总结,面试必备

前言 上回承诺过大家,一定会出 HTTP 的系列文章,今天终于整理完成了。作为一个 web 开发,HTTP 几乎是天天要打交道的东西,但我发现大部分人对 HTTP 只是浅尝辄止,对更多的细节及原理就了解不深了,在面试的时候感觉非常吃力。这篇文章就是为了帮助大家树立完整的 HTTP 知识体系,并达到一定的深度,从容地应对各种灵魂之问,也同时提升自己作为一个 web 开发的专业素养吧。这是本文的思维导图: 华为四面(3次技术面+HR面) 一面(1hour) 自我介绍 项目介绍,技术点相关。 C++和Java

m0_57081562的博客 1145

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

安卓面试题解析大全(10 30)之AsyncTask全解析_android asynctask 面试

系列专栏: 安卓高频面经解析大全专栏链接:150道安卓高频面试题全解析 安卓高频面经解析大全目录详情 : 安卓面经_anroid面经_150道安卓常见基础面试题全解析 安卓系统Framework面经专栏:Android系统Framework面试题解析大全 安卓系统Framework面经目录详情:Android系统面经_Framework开发面经_150道面试题答案解析 Android进阶知识体系解析专栏链接:Android进阶知识体系解析 Android进阶知识体系解析目录详情:Android

2401_87555477的博客 434

androidrom开发面试题,Android开发工程师,40道安卓面试

安卓已经火了这么多年了。现在如果还从事安卓开发,基本上都是中高级安卓开发工程师。那么接下来就看一下面试官一般会从最简单的入手,比如会问**object有哪些方法?**回答完后,面试官就会继续问,有问listview(recycleview)有哪些方法,然后每一个方法的作用(这里的方法会根据你前面回答的不断的深问),参数的作用。问到这,还有公司会问,由于一个项目中需要用到的这2个控件太多了,每次都要写,会很麻烦,并且要写很多次,怎么解决这个问题。这个问题的解答,各位可以百度一下。

2301_81694225的博客 909

21年Android面经分享,Android面试题及解析_netty安卓面试题

另外几个朋友,都走的技术管理岗,也35了,有的在网易,有的在滴滴。据他们说,到了这个年纪,就不要想着跳了,找一家合拍的公司好好干吧,自己混个高点的职位,出去好要价,高不成低不就的,同样没人要。你真的以为裁员裁的是年龄大、股票多的那些人?毕业后同学朋友在华为的也有几个,据他们的说法:人家裁的都是工作十来年,考评普通职级一般,收入和股票都偏低的一群人。他在面试的时候,碰见比自己大的面试官,态度和善,一般面试都能过。**根本的根本,还是要提升自己的实力,**因为在面试时,是要面技术的,所有的外包装都会被揭穿。

2501_90336515的博客 387

安卓市场开发者!2021Android高级面试题总结,最强技术实现

前言 不知道有多少人和我一样是年前辞职,结果赶上了疫情,在家里一呆就是几个月! 但塞翁失马,焉知非福!我本来就打算年后找工作,正好趁着这段时间,历时3个月,整理了这份可能是市面上最全面的安卓面试题解析大全! 从基础到架构进阶,包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中高级安卓技术点。 文章中所列主要为大纲部分,详细内容可以在文末自行获取哈! 如果你熟练掌握本文中列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家

m0_53537576的博客 732
上一篇: Java面试题带答案
下一篇: 阅读笔记–Java 8函数式编程,建议看书,作者高屋建瓴
PirateBrook
博客等级 码龄11年 90粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值