startActivity前resolveActivity的情况

Android Scheme与startActivity:快手App跳转实战与逆向探索 Scheme是Android系统中应用间通信的“专属门牌号”,它定义了应用对外暴露的访问协议。其工作原理基于Intent机制,通过隐式Intent匹配系统内已注册的Scheme,实现应用的无缝唤起与跳转。这项技术的核心价值在于打破应用孤岛,构建流畅的跨应用用户体验,尤其在社交分享、广告投放、内容聚合等场景中不可或缺。然而,实际开发中常面临官方文档缺失、Scheme动态变更等挑战。本文以快手App为例,深入剖析其Scheme结构(如kwai://、snssdk1128://),详解如何通过startActiv 阅读详情

当启动第三方APP的Activity的时候,不能确定当前手机是否安装了该第三方应用程序,此时应该在startActivity前对启动的intent做一次判断,是否存在匹配的Activity供启动,示例如下(代码来自网络):

// Create the impliciy Intent to use to start a new Activity.  
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:555-2368"));  
// Check if an Activity exists to perform this action.  
PackageManager pm = context.getPackageManager();  
ComponentName cn = intent.resolveActivity(pm);  
if (cn == null) {  
    // If there is no Activity available to perform the action  
    // Check to see if the Google Play Store is available.  
    Uri marketUri = Uri.parse("market://search?q=pname:com.myapp.packagename");  
    Intent marketIntent = new Intent(Intent.ACTION_VIEW).setData(marketUri);  
    // If the Google Play Store is available, use it to download an application  
    // capable of performing the required action. Otherwise log an error.  
    if (marketIntent.resolveActivity(pm) != null) {  
        context.startActivity(marketIntent);  
    } else {  
        Log.d(TAG, "Market client not available.");  
    }  
} else{  
    context.startActivity(intent);  
}  
Android Intent深度解析:从页面跳转到组件通信的完整指南 在Android开发中,组件间通信是构建应用的基础。Intent作为Android系统的核心通信机制,其原理是通过封装操作指令和数据,实现Activity、Service等组件间的启动与交互。理解Intent的显式与隐式调用、数据传递方式及任务栈管理,对于提升应用性能和用户体验至关重要。通过合理配置Intent,开发者可以优化页面跳转流程,处理复杂场景如带回调的跳转和隐式匹配,从而增强应用的健壮性。本文聚焦Intent的实战应用,涵盖Activity跳转、数据传递及任务栈管理等核心内容,帮助开发者掌握这一关 阅读详情

相关推荐

Android学习笔记:Android10.0.+版本下Activity的工作过程(流程分析文档)

一、源代码版本 源代码版本:Source for Android 30 (Android10.0+(R)) 二、流程分析 Activity的启动由Intent触发,Intent可以分为显式Intent和隐式Intent。 首先,我们编写一个ActivityDemo,该工程下有两个Activity,分别为MainActivity和SecondActivity,还有两个布局文件,分别为activity_main.xml和activity_second.xml。 从入口方法startActivity()

浩比的专栏 664

Android 进阶之了解源码——Activity启动

我们通常说Android有四大组件,也有说法是五大组件,将Intent也算一种,不管是五大还是四大,它们都是Android app开发中最经常打交道的东西,刚开始的时候也都会碰到一些坑,很多时候我们都是搜索资料,看其他人写的博客来学习和避坑,其实很多博客资料也就是对官方文档的翻译,加上一些自己避坑心得的记录,有些时候即使通过一些资料解决了某个问题,但其实自己也说不出个所以然来,也是云里雾里,...

编程之路的专栏 912

plus.android.runtimeMainActivity.startActivity无法执行且没有报错,无法调起原生应用

最近,我遇到了一个有关Android开发的问题,我在使用Android中的plus.android.runtimeMainActivity.startActivity方法时遇到了一些困难。具体而言,该方法无法执行,也没有生成任何错误信息,更糟糕的是,它无法调起我想要的原生应用。在这个新的代码片段中,我获取了PackageManager的实例,并使用resolveActivity方法来检查Intent是否具有匹配的活动。我首先仔细检查了我的代码,确保所有的参数和调用都是正确的。

DevGlider的博客 989

Android启动Activity前确定Intent 能否解析

在自己的应用程序中利用第三方应用程序的Activity 和Service 是十分方便的,但是,你无法保 证用户设备上安装了特定的某个应用程序,或者设备上有能够处理你的请求的应用程序。 因此,在调用startActivity 之前,确定调用是否可以解析为一个Activity 是一种很好的做法。 通过调用Intent 的resolveActivity 方法,并向该方法传入包管理器,可以对包管理器进行查

笑傲人生的博客 629

Android检查Intent是否能够解析前启动Activity的编程方法

当我们使用Intent启动一个Activity时,系统会尝试解析Intent指定的组件是否存在,并在存在的情况下启动该Activity。这个方法会尝试解析Intent指定的组件,并返回一个ResolveInfo对象,该对象包含了解析结果的相关信息。如果返回的ResolveInfo对象为null,表示Intent无法解析,反之则表示Intent可以成功解析。如果resolveInfo为null,表示Intent无法解析,我们可以进行相应的错误处理,例如显示一个Toast提示用户。

PixelNinja的博客 266

代码复现——SymAgent:一种用于知识图谱复杂推理的神经符号自学习Agent框架

根据《SymAgent: A Neural-Symbolic Self-Learning Agent Framework for Complex Reasoning over Knowledge Graphs》(《SymAgent:一种用于知识图谱复杂推理的神经符号自学习Agent框架》)论文思路,简单复现代码,以实现SymAgent中的Agent-Planner和Agent-Executor模块。Agent-Planner利用大语言模型的归纳推理能力从知识图谱中提取符号规则,指导高效的问题分解。

qq_60040306的博客 1605

隐式启动Activity以及Intent.resolveActivity的使用

打开Activity的方式 打开Activity可以分为显式和隐式两种,显式调用需要明确地指定被启动对象的组件信息,比如包名和类名。 隐式调用的规则 1.隐式调用的核心:Intent可以匹配目标组件的IntentFilter中设置的过滤信息。这里,目标组件就是要启动的Activity,IntentFilter表示意图过滤,也被称为过滤列表。2.匹配过滤列表,就是匹配IntentFilter中...

小老鼠的博客 8136

Blender地形建模实战:5步搞定Gazebo仿真地形(附避坑指南)

本文提供了一份详细的Blender地形建模实战指南,旨在帮助开发者快速创建Gazebo仿真地形。文章通过五个核心步骤,从环境准备、地形雕刻、模型优化导出,到创建Gazebo模型包及问题排错,系统讲解了如何将Blender中的地形模型成功导入Gazebo进行机器人仿真,并重点分享了关键的避坑经验。

weixin_28475533的博客 344

Intents和 Intent Filters详解

Intent是一个消息对象,您可以使用它请求另一个应用程序组件执行特定动作。Intent有三个基本使用场景: 1、 用于启动一个Activity: 您可以通过传递一个Intent到startActivity()或startActivityForResult()来启动另一个Activity。Intent用于描述要启动的Activity,及携带一些必需的数据。 2、 用于启动一个Servic...

jennyliliyang的博客 1858

Python + Google AI 自动修复 Sonar Bug 实践

在工作中总会遇到种种不期而至的需求,比如前段时间突然要修复所有 Sonar Bug,涉及各种琐碎的代码风格问题,包括但不限于语法不规范、废弃注释等问题。这些项目都已经持续开发几年了,Sonar 上的问题层出不穷,各种问题已经累积到了上万个,手动修复不但费时费力,而且过程异常枯燥。

子洋 Blog 2415

实战指南:如何用Frida绕过某梆加固的Anti-Frida检测(附完整脚本)

本文深入剖析了企业级加固方案中的Anti-Frida检测机制,并提供了实战对抗策略。通过分析基于文件系统、内存特征、行为及环境的多层次检测原理,文章详细介绍了如何定位检测逻辑、绕过maps文件扫描、对抗内存与行为特征检测,并附上了针对某梆加固的完整绕过脚本与系统化工程方案。

weixin_42527589的博客 600

resolveActivity解析

resolveActivity是Activity创建过程中非常重要的一个函数,会在ActivityStack的startActivityMayWait中调用。这个函数的主要作用就是根据intent去收集需要启动的activity的信息,看下函数的原型: ActivityInfo resolveActivity(Intent intent, String resolvedType, bo...

rockstore的博客 1万+

车载以太网SOMEIP入门必看:从服务发现到事件订阅,一次搞懂三种核心通信模式(附报文实例)

本文深入解析车载以太网SOME/IP的三种核心通信模式:服务发现、方法调用和事件订阅,通过真实报文实例和仿真工具演示,帮助开发者快速掌握这一关键技术。文章特别强调服务发现机制的基础作用,并详细介绍了Request/Response与Fire&Forget两种方法调用模式的应用场景,为智能汽车网络通信开发提供实用指南。

weixin_30955617的博客 111

【Android】隐式跳转时找不到Activity的情况

如果真的没有Activity,那么执行startActivity,就会出现ActivityNotFindException。PacageManager中的resolveActivity方法。如果找不到所需Activity,那么就会返回一个null。Intent 中的resolveActivity方法。

https://blog.youkuaiyun.com/qFAFAF 593

缺陷检测:使用PatchCore训练自己的数据集

必须包含有训练图片(无缺陷图片)、测试图片(缺陷图片)和ground_truth,并且ground_truth必须与对应图片的名称相同。同上一篇结果一样,我的输出为原始图片大小,但是不知道是不是因为图片不是正方形的,导致训练结果不好。编写一个脚本,重新规划数据集的路径规则,但是我稍微写复杂了一点,使用了类来操作。第二种(复杂):编写一个自己的Dataset,参考。第一种(简单):将数据集路径规则改成项目中。返回的必须是一个字典类型,可以阅读。本人此次使用的是第一种方法。运行时,参数部分直接输入。

xiaoxTai的博客 6478

解密美团外卖API:mtgsig和waimai_sign参数生成原理与Python实现

本文深入解析了美团外卖API中核心风控参数mtgsig和waimai_sign的生成原理与实现方法。文章详细拆解了waimai_sign作为业务数据签名、mtgsig作为请求环境签名的不同角色与生成逻辑,并通过Python代码示例演示了如何通过逆向工程、Frida动态Hook等技术手段模拟签名生成过程,为开发者理解移动端API安全机制提供了实战参考。

weixin_29325515的博客 551

Activity隐式启动判断是否有匹配的Intent

方式 一、PackageManager的resolveActivity(); public abstract ResolveInfo resolveActivity(Intent intent, int flags); 方式二、PackageManager的queryIntentActivities(); public abstract List<ResolveInfo> ...

GUO18735177413的专栏 791

YOLO26-seg分割优化:轻量化卷积魔改 | 新的partial convolution(PConv)结合C3k2 | CVPR2023

​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 151

android用浏览器打开url地址,Android 在浏览器中打开URL

示例使用默认浏览器打开本示例说明如何在内置Web浏览器中而不是在应用程序中以编程方式打开URL。这使您的应用程序可以打开网页,而无需INTERNET在清单文件中包含权限。publicvoidonBrowseClick(Viewv){Stringurl="http://www.google.com";Uriuri=Uri.parse(url);Intentintent=ne...

weixin_30907685的博客 4055

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

别让组件变成“孤岛”:用 Intent 串联 Android 四大组件的底层逻辑

Activity是看得见的脸,Service是看不见的腿,与是协作的管道。但它们之间?答案就是Intent——Android 组件通信的"信使"。

2301_76797664的博客 580

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android Intent 与常用 Intent Action 完全指南

本文介绍了Android开发中Intent的核心概念与使用方式。Intent作为组件间通信的消息传递对象,分为显式(指定具体组件)和隐式(声明操作由系统匹配)两种类型。详细列举了六大类常用Intent Action及其代码示例,包括网页搜索、通讯、邮件、多媒体、应用管理和联系人相关操作。同时讲解了Intent的数据传递、IntentFilter匹配机制,并提供了最佳实践建议:检查Intent可处理性、使用选择器、注意权限管理和数据安全。文章强调显式Intent用于应用内部跳转,隐式Intent用于调用系统功

xingfuyisheng的专栏 1561

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

图解Activity启动流程,进阶高级

前言 首先申明一下,觉得Activity用的贼6的,想求职面试的,想进阶高级工程师的,想深入理解Activity的(感兴趣)同学请往下看,不符合的没关系,请收藏一下,想看了再点出来研究。 以下内容紧张吃鸡,请系好保险带,我们要开车了。   — No picture,say a J8!   PS : 有兴趣的加入Android工程师交流QQ群:752016839 主要针对Android开...

qq_43093708的博客 657

Activity启动过程(一)

ccc

weixin_42196034的博客 1415

Activity启动流程源码分析

前言 最近在查看Android中Activity的源码时候,发现和之前印象中的不太一样,主要是和Android8.0的区别比较大,所以就干脆用最新的Android10的源码整理出来。 至于为什么要阅读源码,这个在我看来最主要的原因有两个,第一是因为我们不仅要知其然,还要知其所以然,这样才能 为什么要阅读源码 ? 因为我们不仅要知其然,还要知其所以然,这样才能在开发中快速高效的定位问题,游刃有...

周将的博客 1238

Android 判断某个Intent是否可用

当我们调用 Intent 时,如果没有找到与此 Intent 匹配的 Activity 组件(Component)时,应用将报以下错误:android.content.ActivityNotFoundException:Unable to find explicit activity class 因此,在启动 Activity 之前要先判断 Intent 在此机器上是否可用。方法一:public

你房哥的博客 3419

Android开发中Intent的核心作用与实战应用

Intent作为Android四大组件间通信的核心机制,本质上是一种消息传递对象,通过显式或隐式方式实现组件调用。其技术价值在于解耦组件依赖,支持跨应用协作,是Android架构的重要基础。典型应用场景包括Activity跳转、Service启停、广播收发等系统级交互。在工程实践中,开发者需掌握Intent Filter匹配规则、Flag控制技巧等高级用法,同时注意大数据传输优化和跨应用安全防护。随着Android系统演进,后台启动限制等新特性也影响着Intent的最佳实践。

weixin_30919571的博客 372
下一篇: 在AndroidStudio中使用Lambda表达式
CAT_0_0
博客等级 码龄12年 3粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值