build.prop所有属性全面剖析

教你修改build.prop 提升系统速度性能和游戏性能,加速GPS定位 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变 以下是修改教程及一些build.prop参数的中英文对照解释,修改前,注意先备份原build.prop build.prop的位置是在/system/bulid.prop 修改build.prop文件方法: 直接编辑原文件的方法。 方法一: 1、在手机上用RE复制build.prop文件到SD卡。 2、USB方式连接手机到电脑。 3、运行手机PC助手PC端,进入“管理SD卡”选项卡。 4、找到build... 阅读详情

build.prop是设置安卓系统的最核心内容,包括sdk,语言,时区,系统密度,虚拟机的参数。这些是系统必须的,如果是自己预制系统,也可以往里面写入系统属性,"ro"前缀是可读

使用runtime.getruntime().exec就可以获取对应的属性名了,在linux里,getprop是获取这些系统属性的命令

所以获取属性可以使用runtime.getruntime().exec("getprop");

 

如果要设置属性,那只能设置可写属性,而"ro."前缀的属性是不能写入的

runtime.getruntime().exec("setprop 属性名 属性值");

其他的例如

ro.config.notification_sound=pixiedust.ogg

ro.config.alarm_alert=Alarm_Classic.ogg

可以改变系统通知的声音文件

深入剖析 Android 系统属性:从 build.prop 到 Selinux 安全机制 本文深入解析Android系统属性,从build.prop文件结构到SELinux安全机制的整合应用。详细介绍了属性分类、多分区配置策略,以及如何通过property_contexts实现安全访问控制,为开发者提供系统级属性管理的完整解决方案。 阅读详情

相关推荐

Android 12开发必看:如何手动触发ro.build.display.id的重新生成(附完整路径解析)

本文深入解析Android 12中ro.build.display.id的生成机制,提供三种手动触发重新生成的方法,包括完整清理编译法、精准删除中间文件法和动态调试修改法。通过ADB命令和Makefile操作,帮助开发者高效调试系统版本信息,适用于OTA升级、设备厂商定制等场景。

weixin_29230805的博客 249

玩机搞机----rom中build.prop文件的修改 优化 删除 开启等等

对于安卓机型系统中的build.prop文件是必不可少的,网络也很多这类的优化教程。但大多都是老机型的解释,今天这个帖子针对一些新版机型build.prop文件的一些操作实例来分析下。友情提示,修改这个文件有风险。严重会进不去系统。而且机型不同。操作也有差异。其中有些参数作用修改可以参考其中。修改目录为system/ build.prop,或vendor/ build.prop:

小马哥的专栏 1万+

深入解析Android系统属性:从Settings Provider到SystemProperties的实战指南

本文深入解析Android系统属性,从Settings Provider到SystemProperties的实战操作指南。详细介绍了系统属性的基础概念、ADB命令行操作、代码层面的属性访问方法,以及属性文件存储位置和高级应用技巧。帮助开发者掌握Android系统属性的读取与设置,提升系统级开发能力。

weixin_29313239的博客 329

Android不同设备字符串显示原理和build.prop生成过程

Android 不同设备加载字符串 build.prop生成过程

u012514113的专栏 3633

MTK Android12集成GMS后Play保护认证失败的排查与修复

本文详细解析了在MTK平台Android 12系统中集成GMS后,Google Play商店出现“设备未经过Play保护机制认证”问题的根本原因与解决方案。核心在于修正系统构建指纹(Build Fingerprint)的生成格式,并深入框架层处理Android ID的注入问题,确保其符合谷歌认证规范。文章提供了具体的代码修改步骤、深度排查方法及实战经验,帮助开发者彻底解决此认证难题。

weixin_29202213的博客 429

蓝叠模拟器深度伪装:从检测原理到实战过检方案

本文深入解析蓝叠模拟器的检测机制,并提供从硬件层到系统环境的全面伪装方案,帮助用户有效绕过应用检测。通过修改CPU/GPU信息、模拟传感器数据、虚拟化文件系统等技术手段,实现深度伪装,提升模拟器使用体验。

weixin_30897233的博客 432

build.prop参数详解和部分修改

build.prop是Android系统中的一个重要的属性文件,它记录了Android系统的一些重要的设置信息,类似于/etc中的文件,改变它能够取得一些意想不到的效果,但是也正是因为build.prop的重要性,如果不明白具体的含义的话,绝对不要随便动它。 build/tools/buildinfo.sh 脚本就是专门用于生成build.prop文件 build/core/Makefile中使用...

caobaokang的专栏 6万+

Android中system/build.prop文件的作用和修改方法

获取Root权限:在Android设备上修改build.prop文件需要获取Root权限,因为该文件位于系统分区,普通用户无法直接访问和修改。system/build.prop文件是Android系统中一个重要的配置文件,通过修改该文件,我们可以对设备进行一些自定义设置和优化。然而,在修改build.prop文件时要小心谨慎,确保语法正确并备份原始文件,以免造成不可逆的问题。修改属性值:在打开的build.prop文件中,你可以找到要修改的属性,并修改其相应的值。该属性控制屏幕的像素密度。

JfdCoding的博客 3378

全面剖析 Android 属性系统:从 build.prop 到 Selinux 安全策略

本文深入剖析Android属性系统的核心机制与安全策略。从build.prop文件的编译生成原理讲起,详细介绍了如何添加自定义系统属性。重点解析了Selinux如何通过property_contexts文件为属性设置安全上下文,并提供了实战案例,指导开发者为自定义属性和进程配置Selinux权限,确保系统安全与秩序。

q6r7s8t9的博客 666

从“盲控”到“预见”:聊聊永磁同步电机负载观测器(PMSM Load Observer)如何让控制更丝滑

本文深入探讨了永磁同步电机负载观测器(PMSM Load Observer)如何通过前馈补偿和转动惯量辨识技术实现智能抗扰控制。从传统‘盲控’到预见性调节,负载观测器显著减少转速波动和能耗,提升系统响应速度。文章详细解析了观测器算法架构、工程调参技巧及前沿发展趋势,为电机控制领域提供实用解决方案。

weixin_33737774的博客 406

CATIA P3 V5-6R2023在Windows 11 23H2上的稳定安装与系统级配置指南

CATIA是高端制造业核心的三维参数化设计平台,其运行依赖严格的系统底层支撑。理解CATIA的BRep几何内核原理与Windows子系统(如WSL、Hyper-V)的协同机制,是保障建模稳定性与计算精度的技术前提。CATIA Run-Time Library和OpenGL硬件加速能力共同决定了曲面重建、螺纹建模等关键操作的可靠性;而.NET Framework 3.5、VC++ 2022运行库及显卡Studio驱动的精准匹配,则构成工业软件在Win11环境落地的工程基础。本文聚焦于航空、轨交、能源等领域高频

weixin_30983353的博客 631

Android Build系列专题【篇五:构建系统build.prop生成机制】

这里我们主要介绍一下android构建系统的主入口文件build/core/makefile,它承担着整个编译的启动和调度工作。该文件作为构建系统的起点,负责初始化编译环境并包含所有必要的子模块文件。Android构建系统采用模块化设计,位于build/core/目录下,由makefile和多个mk文件组成。makefile作为启动入口,main.mk作为核心流程文件,通过包含关系组织起整个构建框架。由于整个流程过于复杂,这里只记录我跟读过的一些模块。

qq_27672101的博客 1593

Loupe Browser实战指南:解锁10xGenomics单细胞数据的可视化奥秘

本文提供了Loupe Browser的实战指南,帮助用户无需编程即可探索和可视化10xGenomics单细胞数据。文章详细介绍了从数据导入、界面导航到细胞亚群鉴定、差异基因分析的核心操作流程,并分享了高级技巧与避坑指南,是快速上手这一强大可视化工具的必备参考。

weixin_29313423的博客 206

Android属性之build.prop生成过程分析

转自 :Android属性之build.prop生成过程分析 http://www.cnblogs.com/myitm/archive/2011/12/01/2271032.html 本文简要分析一下build.prop是如何生成的。Android的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间,

铁锹在手,天下我有 672

OpenHarmony实战开发-如何实现文件分布式同步编辑

在分布式文件场景中,分布式设备管理包含了分布式设备搜索、分布式设备列表弹窗、远端设备拉起三部分。首先在分布式组网内搜索设备,然后把设备展示到分布式设备列表弹窗中,最后根据用户的选择拉起远端设备。两台设备组网的分布式场景是工作中常常需要的。这样的分布式场景有助于加快工作效率,减少工作中的冗余,本例将为大家介绍如何实现上述功能。​ (2)订阅分布式数据变化:通过this.distributedObject.on(‘status’, this.statusCallback)监听分布式数据对象的变更。

2401_82546228的博客 751

OpenWRT端口转发与NAT环回冲突的排查与解决

本文详细解析了OpenWRT路由器中端口转发与NAT环回功能冲突导致的内网访问故障。通过生活化类比阐明两者工作原理,提供从基础诊断到内核参数调整、LuCI选项配置及手动编写iptables规则的多套解决方案,并给出进阶排查思路,帮助用户彻底解决内网无法通过公网地址访问服务的常见问题。

weixin_29243279的博客 506

Android设备属性Build.DEVICE源码解析与应用实践

Android属性系统是设备配置管理的核心机制,通过键值对形式存储全局共享信息。其实现原理基于init进程管理的共享内存区域,支持只读(ro.)、持久化(persist.)等多种属性类型。在系统启动过程中,属性会经历内核参数、设备树解析、多层级属性文件加载等初始化阶段。以Build.DEVICE为代表的设备标识属性,在系统功能适配、应用兼容性处理、OTA升级验证等场景发挥关键作用。深入理解ro.product.device等属性的生成机制,能有效解决设备识别异常、属性覆盖失效等典型问题。通过属性追踪工具和内

weixin_30617695的博客 345

深度学习特征融合(feature fusion)操作详解

特征融合是指在深度神经网络中,将来自不同来源(如不同网络分支、不同模态、不同时间步、不同空间尺度或不同抽象层级)的特征表示进行有策略地整合,以生成更具判别性、鲁棒性和语义丰富性的联合特征表示。其核心目标是最大化信息互补性,最小化信息冗余与噪声干扰。关键问题:如何“有效”融合?——这取决于任务需求、数据特性、计算资源和融合机制的设计。✅ 是否对齐了空间/通道/模态?✅ 融合方式是否与任务匹配?(检测需定位+语义 → 多尺度融合)✅ 是否引入可学习机制提升适应性?✅ 是否控制了计算开销?

浩瀚之水的专栏 793

深入解析Android 12中ro.build.display.id的生成机制与调试技巧

本文深入解析Android 12中ro.build.display.id的生成机制与调试技巧,详细介绍了该属性在构建系统中的生成流程、关键脚本文件及实战调试方法。通过adb shell和make命令,开发者可以灵活修改和验证这一关键系统属性,适用于多版本并行构建和自动化测试等高级场景。

weixin_42562079的博客 441

Unreal5从入门到精通之如何在VR中使用3DUI

前面我们讲过《Unreal5从入门到精通之UMG的使用》一般制作游戏时,UI都是添加到屏幕视窗上面的,但是在制作VR时,我们往往需要制作一个3D的UI,放置在场景中,然后使用手柄的射线来和UI进行交互。今天我们就来讲解下,如何在VR中创作和交互3DUI首次操作会感觉好复杂,多多练习,当你熟悉了UE蓝图的操作后会发现,这只是一个常规的蓝图操作而已。祝大家在虚幻的学习过程中非常顺利。希望这篇博客对你有所帮助。

TxNet 1984

1.2 机器人控制系统软硬件平台

工业机器人的软硬件平台架构是影响工业机器人性能和效率的重要因素。良好的软硬件平台架构可以帮助工业机器人更加稳定和高效地完成工作,提高生产效率。正确的软硬件配置还可以提高工业机器人的灵活性和可靠性,使其能够更好地适应不断变化的生产环境。 同时,工业机器人的软硬件平台架构还可以影响工业机器人的安全性和维护成本。如果软硬件平台架构不合适,工业机器人可能出现故障或安全隐患,需要大量的维护和维修费用。因此,选择适当的软硬件平台架构对于确保工业机器人的高效运行和长期使用是非常重要的。

Galaxy_Robot的博客 2万+

Android系统属性实战:从build.prop到Selinux配置的完整指南

本文提供了一份Android系统属性深度定制的完整实战指南。从理解属性系统的加载层次与分类出发,详细讲解了如何向System、Vendor、Product等不同分区安全地添加自定义属性。文章重点剖析了如何为自定义属性配置Selinux安全上下文,跨越权限壁垒,并分享了属性在进程通信、服务启动等复杂场景中的应用模式与常见陷阱规避方法,帮助开发者构建安全、可维护的属性管理系统。

silver的专栏 591

深度学习工具包 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")

Android系统属性实战:从adb设置到编译集成与SELinux策略

系统属性是Android系统中一种全局的键值对存储机制,用于在系统进程间传递配置和状态信息。其原理基于共享内存区域和property_service系统服务进行管理,实现了高效的数据共享与持久化。这一机制的技术价值在于为系统调试、功能开关、设备信息传递及模块间通信提供了标准化的接口。在应用场景上,它广泛用于控制硬件驱动行为、传递设备特征、实现动态功能开关以及触发系统服务状态转换。本文聚焦于Android系统属性的实战操作,详细解析了通过adb命令动态设置、在init脚本中定义、在build.prop中编译集

weixin_33883104的博客 264

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

Android11 WiFi设备名修改全攻略:从build.prop到动态配置的完整方案

本文深入解析Android 11系统中WiFi设备名的修改原理与完整方案。从理解DHCP Hostname的本质出发,详细介绍了通过修改build.prop文件实现静态配置的经典方法,并剖析了在AOSP源码层实现动态命名的进阶策略。文章还提供了无需Root的ADB临时调试方案,并探讨了企业级设备管理的综合思路,帮助开发者与高级用户全面掌控网络设备标识。

ll5678的博客 633

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: Android海外应用和安卓源码的多国语言翻译
下一篇: linux下调试修改安卓android系统
X猪大侠X
博客等级 码龄11年 23粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值