Android基础工程相关解释

Android应用加载那个mipmap 不同的 mipmap 文件夹对应不同密度的设备,系统会根据设备的实际密度(DPI,dots per inch)来选择最合适的资源加载。文件夹是 Android 开发中用来存放适用于非常高密度设备(xxxhdpi 设备)的应用图标资源的文件夹,是为了优化在高分辨率屏幕上的显示效果而设计的。因此,开发者需要根据不同的密度为应用提供不同分辨率的图标资源,确保在不同屏幕密度的设备上显示时都能保持良好的视觉质量和清晰度。适用于高密度屏幕,约为 240dpi 的设备,通常是早期高端 Android 设备的标准。 阅读详情

一、工程项目解释

我们新建一个项目,项目目录如图所示

其中比较重要的是src的目录

Java:是用来写Java文档

res:是各种资源文件的地方,有图片,字符串,动画,音频等,还有各种形式的XML文件

二、res文件夹介绍

1.图片资源

  • drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的drawable类型的XML文件
  • mipmap-hdpi:高分辨率,一般我们把图片丢这里
  • mipmap-mdpi:中等分辨率,很少,除非兼容的的手机很旧
  • mipmap-xhdpi:超高分辨率,手机屏幕材质越来越好,以后估计会慢慢往这里过渡
  • mipmap-xxhdpi:超超高分辨率,这个在高端机上有所体现
2.布局资源

  • layout:该目录下存放的就是我们的布局文件,另外在一些特定的机型上,我们做屏幕适配,比如480*320这样的手机,我们会另外创建一套布局,就行:layout-480x320这样的文件夹!
3.values资源

  • string.xml:定义字符串资源
  • styles.xml:定义样式资源
  • colors.xml:定义颜色资源

三、资源使用

1.Java文件中

	Text txtName=(Text) getResources().getText(R.string.name);//文字使用

2.xml文件中

	android:text="@string/BTN_Text1"

Android 安卓DataBinding(十)·include中使用 在include中使用首先写出layout布局:include_layout.xml 阅读详情

相关推荐

Android面试准备指南:普渡机器人安卓开发工程师(深圳)职位

摘要:本文针对普渡机器人安卓开发工程师职位面试提供结构化指导。聚焦机器人业务软件开发需求,涵盖Java/Kotlin编程基础、Android工具使用、项目经验及行为面试四大类问题。重点解析UI实现、性能优化、实时数据处理等核心技术要点,并强调设计文档撰写和团队协作能力。每个问题附带参考答案,帮助求职者展示专业技能与职位匹配度,建议结合项目案例和基础理论进行系统准备,突出学习能力与责任心以提升面试成功率。

郑伟强dev的专栏 1532

mipmap-mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi

我用手机和平板 跑出来显示的图片不一样 我手机像素密度是420 平板是240 他们依次会加载xxhdpi和hdpi目录下的。不同文件夹对应不同的像素密度,不同的手机型号,或者平板会有不同的像素密度,根据不同的像素密度加载不同文件夹下的资源文件。写了个Demo进行验证,同一份代码,在不同文件夹下面放不同图片,名字一样。图片就不放了 有兴趣的朋友可以试试。

qq_38898286的博客 1479

【愚公系列】2023年06月 移动安全之安卓逆向(相关工具汇总)

安卓开发和逆向的工具包括但不限于以下几种:Android Studio:一款官方推出的集成开发环境(IDE),用于安卓应用程序的开发和调试。Eclipse:另一款常用的开发工具,可以支持安卓应用程序的开发和调试。JD-GUI: 一款Java反编译器,可将安卓应用程序的.dex文件反编译为Java源代码。Apktool:可以将已安装的安卓应用程序(APK)反编译为易于阅读和修改的SMALI代码。

愚公智库 4688

Android项目目录结构简单介绍

Android项目目录结构简单介绍 这里选用java创建的项目 在Android开发中,一个项目可以包含好一个或数个module,一个module对应着一个安卓程序。 Android模式下 点击方框处,选择Android: 可以看到主要有app文件夹和Gradle Script,其中app就是我们目前正在开发的module,Gradle Script与我们编写的源代码关系不大,尚不需要过多了解。 manifests 该目录主要存放安卓项目的全局描述文件 java 该目录下主要包含我们编写的源

shiyansama的博客 1013

Android面试问题与参考答案——基于TCL安卓开发工程师职位要求

TCL安卓开发工程师面试指南摘要:本文基于TCL安卓开发工程师岗位要求,提供结构化面试问题及参考答案。重点考察性能调优能力,包括工具使用(systrace/simperf)、Framework知识(AMS/WMS)、Linux机制(LMK/Cgroup)及MTK平台经验。问题涵盖性能问题分析、优化方案实施及团队协作,帮助评估候选人的实战能力。参考答案结合Android开发标准实践,适用于面试准备与评估。

郑伟强dev的专栏 1064

Android 面试准备指南:针对安卓开发工程师职位

上海从鲸信息技术招聘安卓开发工程师,岗位职责包括海外业务开发、代码优化及技术创新。任职要求熟悉Java/Kotlin/JS,掌握Android开发工具,具备优化能力和团队协作意识。面试问题分为技术、行为和创新三部分:技术问题考察语言差异、工具链使用及性能优化方法;行为问题采用STAR法则评估沟通协调能力;创新问题关注技术学习与应用实践。建议结合项目经验,突出量化成果以展现专业能力。

郑伟强dev的专栏 1004

Android 资源文件存放位置 Drawable 与 Mipmap 区别

建议大家只把 需要适应屏幕分辨率的图片, app 的启动 icon 图标放在 mipmap 目录中,可以提高显示性能、占用内存少;其他图片(引导页背景图,轮播图,giftu图片等) Shape 资源 xml 文件仍然放在 drawable 里面。mipmap 会将资源缩放到设备分辨率大小drawable 会将资源缩放到设备匹配的倍数大小没有个性 哪来的签名!详情请关注点我持续更新中扫一扫 有惊喜!© 2022 09 - Guyu.com | 【版权所有 侵权必究】

低调,谦虚,自律,反思,成长! 3135

Android面试准备指南:基于星汇安卓Flutter开发工程师职位

本文针对Android开发面试,基于星汇公司职位要求(Kotlin、Flutter、MVVM等),梳理了常见技术问题及参考答案。内容涵盖Kotlin协程应用与内存泄漏防范、Flutter集成与性能优化、MVVM架构实现、性能调优工具使用等核心技术点,同时涉及Git协作规范及软技能考察建议。面试准备需侧重技术深度验证、项目经验展示、团队协作能力及文化契合度,帮助候选人系统性地应对面试挑战,突出与岗位需求的匹配度。

郑伟强dev的专栏 846

安卓应用(APK)逆向工程

参考:https://crifan.github.io/android_app_security_crack/website/ 上述网址讲解的非常详细,这里只粗略的整理用到的比较多的工具以及一些安卓逆向工程的知识点。 全文中提到的各种工具都可以csdn下载https://download.youkuaiyun.com/download/wozaipermanent/11958306在中下载得到,但是现在csd...

The wind of freedom blows 1万+

Android icon适配mipmap

android app图标适配 基础配置 使用图片技巧 mipmap-ldpi 36*36 px 四周留出1个像素用于填充(无底色) mipmap-mdpi 48*48 px 四周留出1个像素用于填充(无底色) mipmap-hdpi 72*72 px 四周留出2个像素用于填充(无底色 mipmap-xhdpi 96*96 px 四周留出4个像素用于填充(无底色) mipmap-xxhdpi 144*144 px 四周留出4个像素用于填充(无底色) mipmap-xxxhdpi 192*192 px 四周留出4个像素用于填充(无底色) android 8.0新增mipmap-anydpi-v

基于YOLOv8和PaddlepaddleOCR的微信截图聊天记录提取

本文提出了一种基于YOLOv8和PaddleOCR的微信聊天记录提取方法。首先使用YOLOv8n模型分割出聊天气泡(针对深浅色模式分别训练),通过合成数据集增强模型鲁棒性,召回率达0.995。随后采用PP-OCRv5进行文本识别,利用坐标匹配将气泡内文本送入识别队列,短长文本平均置信度分别>0.98和>0.95。文中特别强调了PaddleOCR不同版本的输出格式差异及适配方案,建议使用3.0+版本。该方法有效解决了直接OCR识别易受干扰的问题,通过气泡分割+文本定位的两阶段策略显著提升了识别准确

2401_87383958的博客 2353

适合安卓开发工程师在 Android Studio 上使用的 AI 产品

华为 CodeGenie:是华为推出的基于生成式 AI 的代码编程助手,在 DevEco Studio 中安装插件后可使用,能提供智能知识问答、代码生成补全和万能卡片内容生成等功能,对鸿蒙开发有很好的支持,安卓开发也可借鉴相关功能。Fitten Code:由非十大模型驱动,免费且支持 80 多种语言,包括 Java 等安卓开发常用语言,可在 Android Studio 等多种编辑器中使用,具有自动生成代码、智能查找 Bug、生成单元测试等功能。如果还有其他的,好的工具欢迎大家留言补充。

琦琦的博客 3915

VSCode终端打不开?3分钟搞定Windows下Terminal配置(附最新JSON设置方法)

本文针对Windows系统下VSCode终端无法启动的常见问题,提供了详细的诊断与解决方案。核心在于更新已弃用的旧配置,采用最新的JSON设置方法,通过定义`terminal.integrated.profiles.windows`和指定`terminal.integrated.defaultProfile.windows`,快速修复并优化终端配置,实现三分钟内恢复正常使用。

flower的专栏 740

【android】安卓入门学习

前端学习安卓日常记录

m0_65041204的博客 1581

GPIB通讯的代码怎么写

GPIB(General Purpose Interface Bus)是一种用于连接计算机和测试设备的接口标准。 在写 GPIB 通讯的代码时,首先需要在计算机上安装 GPIB 驱动程序。然后,使用相应的编程语言和 GPIB 库函数来操作 GPIB 设备。 下面是一个使用 Python 语言和 pyvisa 库来实现 GPIB 通讯的示例代码: import visa# 创建 Visa 资源管理器...

weixin_35752645的博客 1545

inferCNVpy分析流程学习

inferCNV的用途大家都已经很清楚了,接下来就走一下流程,试一试Python版的inferCNV。使用的数据集为:GSE188711,既往推文可见:Scanpy分析全流程(含harmonypy整合/细胞周期矫正/双细胞检测及去除)(

zfyyzhys的博客 1293

安卓入门-熟悉Android Studio以及创建第一个安卓模块

一、创建项目相关: Start a new Android Studio project: Name:表示应用名称,此应用安装到手机之后会在手机上显示该名称 Package name:表示项目的包名,Android系统就是通过包名来区分不同应用程序的,因此包名一定要具有唯一性。  下面是安卓的创建活动界面,可以看到,Android Studio提供了很多种内置模板,不过由于我们才刚刚开始学习,用...

li_xunhuan的博客 1882

EML 全面实践指南:把 SAP RAP 业务对象玩出工程化的稳定与优雅

本文面向掌握ABAP基础、正在实施RAP的开发者,深入讲解EML(Entity Manipulation Language)的核心用法。文章围绕READ ENTITIES、MODIFY ENTITIES、COMMIT ENTITIES三大语句,详细解析其语义、类型体系、事务机制及工程实践。重点内容包括:字段裁剪、派生类型、草稿控制、批量更新、事务缓冲与保存序列等关键技术点,并配合真实案例代码。旨在帮助开发者在SAP ABAP On-Premise和BTP环境中构建可维护、可演进的业务对象访问层,同时避免常见

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 324

Unity与安卓交互(打开安卓手机相册为例)

Unity与安卓交互 记录贴,提问帖我有话说第一步创建Android工程创建两个类添加unity中的Jar包添加权限然后生成unity代码 我有话说 看了很多的博客今天终于看到有解释我很多疑惑的一个博客 附上原地址 朱大星 现在用一个打开相册的插件开始记录 第一步创建Android工程 工程随意反正用不到 创建两个类 在该目录创建一个类 //Unity中会调用这个方法,用于打开本地相册 //str 为unity传过来的路径,Activity是unity传过来的上下文 (不清楚Activ

bilibilihmj的博客 1028

42页Claude 3技术报告解读(Opus, Sonnet, Haiku)

在Claude 3模型中,增加了一个额外的原则到Claude的宪法中,以鼓励尊重残疾人权利,这一原则源自对集体宪法AI的研究。Claude 3模型的训练基于专有的混合数据集,包括截至2023年8月互联网上公开可用的信息,以及第三方提供的非公开数据、数据标注服务和付费承包商提供的数据,还有内部生成的数据。这些初始响应通常包含有害和有毒的内容。Claude 3模型家族在推理、编码和问答任务上展现出卓越的性能,特别是在行业标准基准测试中取得了显著的提升,证明了其在处理复杂问题和提供准确答案方面的能力。

具身机器人和通用AI 2432

DFI协议时序

参数名称典型值应用场景关键影响tcmd_lat1-2个时钟周期命令与地址锁存同步地址错误风险tphy_wrlat1-2个时钟周期写操作响应速度写带宽与延迟2-3个时钟周期写操作端到端延迟系统吞吐量1-2个时钟周期连续写命令间隔信号干扰与资源冲突tphy_rdlat1-2个时钟周期读操作响应速度读带宽与延迟trddata_en由CL决定(如0.41 ns)读数据返回时间系统延迟10-20 ps写数据与命令对齐数据丢失风险<1 µs低功耗模式切换。

qq_43134430的博客 5101

"Android基础"-安卓基础面试必问部分

基础部分

农展飞的博客 1482

关于UMI设备采集数据的模型训练方法

模仿学习如专家模型、VLA模型,ACT、DP、openpi等算法模型训练时,都是使用的机器人的绝对位姿或关节角;而UMI记录的轨迹是相对于UMI起始点的,可以理解为是相对于起点的绝对增量,对应到机器人中就是相对于末端TCP的增量。在用模型进行训练时,当然可以,但这样进行模型训练的话达不到跨本体的能力,因为模型本身还是学习的基于机器人base坐标系的绝对位姿关系,倘若用这种方式进行处理,则UMI可以理解为是一个遥操的方法,本质还是记录的机器人的state。在看了和。

boss-dog 420

零基础安卓开发:开发简易计算器(一)——了解与搭建开发环境

随着移动互联网的浪潮兴起,安卓开发不可不谓之愈加热门。但由于跨平台与快速开发等需求依然存在,目前出现了许多跨平台框架:flutter,React Native,Weex等。本教程依然面向安卓原生开发,毕竟原生开发更能了解安卓的基本架构,安卓开发并不是几个Webview能代替的。 文章目录什么是安卓?安卓开发的方式搭建开发环境使用Android Studio 什么是安卓? Android是一种基于...

qq_43328498的博客 825

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

培训android工程师怎样,安卓工程师是怎样炼成的

1. 说说mvc模式的原理,它在android中的运用:答:android的官方建议应用程序的开发采用mvc模式。何谓mvc?mvc是model,view,controller的缩写,mvc包含三个部分:1)模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。2)视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户...

weixin_34901243的博客 180

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

安卓开发从0到1(基础知识1)

​ Gradle 是一种构建工具,用于自动化构建、测试和部署软件项目。它是一个开源的构建工具,旨在提供一种灵活、效率高且易于使用的方式来构建各种类型的项目。​ Gradle 使用 Groovy 或 Kotlin 作为构建脚本的DSL(领域特定语言),允许开发者通过编写脚本来定义项目的构建过程,包括依赖管理、编译、打包等操作步骤。​ 相比于传统的构建工具如 Ant 或 Maven,Gradle 提供了更强大和灵活的功能。

m0_60390991的博客 599

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: Android Studio安装
下一篇: Bootstrap3模板
ipomonkey
博客等级 码龄10年 22粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值