效率提升百分之四十,AS模板也太好用了吧

Android Studio自定义模板 instantiate : 和copy类似,但是可以看到上例试将ftl->java文件的,也就是说中间会通过一个步骤,merge : 合并的意思,比如将我们使用到的strings.xml合并到我们的项目的stirngs.xml中。copy :从root中copy文件到我们的目标目录,比如我们的模板Activity需要使用一些图标,suggest:建议值,比如填写ActivityName的时候,会给出一个布局文件的建议值。open:在代码生成后,打开指定的文件,比如我们新建一个Activity后, 阅读详情

原文地址: https://www.jianshu.com/p/61a64fb0aec1

CV 工程师你好,以下内容会让你感觉到不适,慎入!

image

在平时的开发工作中,我们经常将一个地方的代码,复制粘贴到另外一个地方,俗称搬砖,搬砖搬多了,作为一个资深的挨踢民工,难免会总结一些提高生产力的搬砖经验

image

Android Studio 模板是个提高生产力的好东西,使用过 MVPArms 的朋友,都应该使用过我提供的配套模板,使用该套模板,一键即可生成整个页面需要的所有文件,甚至还可以一键生成整个 Module,真正的解放了大家的双手,让大家的双手可以去做更多热爱的事情

image

Android Stuidio 模板一共有 4 种类型,分别对应不同的功能,我先来简单介绍下这 4 种模板,最后再着重介绍下一键生成 Module 的模板,因为前面 3 种模板在网上有太多优秀的教程了,而 Module 模板的资料非常少,我再重复写一遍前 3 种模板的教程也不一定有别人写得好,意义并不大,所以我前面只做简单介绍,后面会贴出一些教程链接,没了解过的就当科普了,了解过的就直接跳过

image

现在还差几个 star 就超过 Mozilla 在模板语言 Freemarker 中排名 star 全球第一了,让我得瑟一下?

image

Live Templates

Live Templates 的功能主要是根据关键字快速生成代码块

image

在设置中找到 Live Templates,点击红框中的按钮 “+”,即可新建 Live Templates

image

File Templates

File Templates 顾名思义,主要功能就是一键生成单个文件

image

在设置中找到 File and Code Templates,点击红框中的按钮 “+”,即可新建 File Templates

image

Activity Templates

Activity Templates 可以一键生成多个文件,但不光可以生成 Activity 文件,还可以根据需求生成任何 Java 文件、XML 文件以及其他类型的文件

image

新建 Activity Templates 要比上面的两个模板复杂的多,需要使用到 FreeMarker,感兴趣的朋友,可以看看我开源的 Activity Templates,稍微修改一下就能应用到自己的项目当中

module Templates

module Templates 可以一键生成 Module 以及 Module 中所需要的所有文件

image

module Templates 也是使用 FreeMarker 创建的,如果你能理解 Activity Templates,那你也可以快速的新建一个 module Templates

详解 module Templates

不知道大家了解过一键生成 Module 的 Android Stuidio 模板吗,这种类型的模板我在网上没搜到有相关的开源库和文章,所以我就自己研究了一段时间,在去年就开源给了 MVPArms 的使用者

Module Templates 其实要比 Activity Templates 简单很多,因为 Module Templates 的某些限制,导致它的配置面板不能自定义一些新增的功能,所以复杂性降低很多,但是功能性和灵活性就要弱于 Activity Templates,不过即使这样也能满足我们大部分的需求了

Android Studio 中所有的 module Templates 都放在 gradle-projects 这个目录中(Android Studio 安装目录/plugins/android/lib/templates/gradle-projects),如果按照很多教程中对 Activity Templates 学习方法的描述,我们应该按照和 Activity Templates 一样的学习方式,打开 gradle-projects 目录中的 NewAndroidModule 进行学习

image

但是我可以告诉大家,在你没有足够经验的情况下,最好不要这样做,因为这个文件夹中包含着 Android Studio 创建 Android Module 所需要的所有文件和代码,里面比较复杂,有很多判断条件,很多东西对你的项目来说都用不到,在学习时会耽误你很多时间

image

所以为了让大家快速上手,我就用我已经开源的 module Templates 作为学习案例,里面的所有文件和代码都是经过我筛选过后提取出来的,非常易于大家学习和理解

module Templates 结构

NewArmsComponent
├── root
│   ├── res //Module 中的资源文件都放这里
│   ├── ├── anim
│   ├── ├── layout
│   ├── ├── mipmap-hdpi
│   ├── ├── mipmap-xhdpi
│   ├── ├── mipmap-xxhdpi
│   ├── ├── mipmap-xxxhdpi
│   ├── ├── values
│   ├── src/app_package   //Module 中的源文件模板都放这里
│   ├── ├── ActivityLifecycleCallbacksImpl.java.ftl
│   ├── ├── Api.java.ftl
│   ├── ├── AppLifecyclesImpl.java.ftl
│   ├── ├── ...
│   ├── test/app_package   //Module 中的测试文件模板都放这里
│   ├── ├── ExampleInstrumentedTest.java.ftl
│   ├── ├── ExampleUnitTest.java.ftl
│   ├── AndroidManifest.xml.ftl   //AndroidManifest.xml 模板文件
│   ├── CMakeLists.txt.ftl   //不用 CMake 可以忽略
│   ├── build.gradle.ftl   //App build.gradle 模板文件
│   ├── native-lib.cpp.ftl   //不用 C 可以忽略
│   ├── root-build.gradle.ftl   //根目录 build.gradle 模板文件
│   ├── settings.gradle.ftl   //settings.gradle 模板文件
├── globals.xml.ftl
├── recipe.xml.ftl
├── template.xml
├── template_new_project.png

root 文件夹下包含的是生成 Module 所需要的模板文件,template_new_project.png 是模板的封面图,globals.xml.ftl 我们暂时用不到,recipe.xml.ftl、template.xml 这两个文件存放的是模板的配置参数,是整个模板的核心文件,我们来看看这两个文件

template.xml

template.xml 放置的是配置面板的参数,配置面板是什么东西?看下图

image

module Templates 和 Activity Templates 的配置面板不一样,Activity Templates 可以任意修改和新增配置面板中的项目,但是 module Templates 不可以,只能固定为图中的这四项

看看 template.xml 里面的内容

<?xml version="1.0"?>
<template
    format="5"
    revision="2"
    name="MVPArms Module"
    description="Creates a new MVPArms Module.">

    <category value="Application" />

    <formfactor value="Things" />

----------------------- 分割线 -----------------------
    <thumbs>
        <thumb>template_new_project.png</thumb>
    </thumbs>
    
    <parameter
        id="packageName"
        name="Package name"
        type="string"
        constraints="app_package|nonempty"
        default="com.mycompany.myapp" />
        
    ...
    
 <globals file="globals.xml.ftl" />
 <execute file="recipe.xml.ftl" />
</template>        

只用看分割线以上的标签即可,下面的标签基本用不上,每个 parameter 标签在配置面板中都对应一个项目,但 parameter 标签只在 Activity Templates 中可以任意修改和新增,在 module Templates 中的任何修改和新增都是无效的,这点大家可以试试

name 标签和 description 标签顾名思义,这就不用多解释了,category 标签固定为 Application 即可

这里要特别要提一下 formfactor 标签,在 NewAndroidModule 中,formfactor 标签的值为 Mobile,最开始我也和它一样,将值赋为 Mobile,结果发现无法生成文件,我想可能是 Android Studio 只允许存在一个 Android 的 Module 模板,我又试着改成了 TV、Glass、Wear …,发现都不完美,要不是无法生成文件,要不就生成太多不需要的文件,最后改成 Things 后,效果就接近完美了

recipe.xml.ftl

recipe.xml.ftl 的功能就是告诉模板引擎,你打算怎么处理你的模板文件

<?xml version="1.0"?>
<!-- TODO: check include Cpp support; add driver module template -->
<recipe>
    <mkdir at="${escapeXmlAttribute(projectOut)}/libs" />
    <mkdir at="${escapeXmlAttribute(resOut)}/anim" />
    <mkdir at="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/utils" />

    <merge from="root/settings.gradle.ftl"
             to="${escapeXmlAttribute(topOut)}/settings.gradle" />
    <merge from="root/root-build.gradle.ftl"
             to="${escapeXmlAttribute(topOut)}/build.gradle" />
             
    <copy from="root/res/mipmap-hdpi/ic_launcher.png"
        to="${escapeXmlAttribute(resOut)}/mipmap-hdpi/ic_launcher.png" />
    <copy from="root/res/mipmap-xhdpi/ic_launcher.png"
        to="${escapeXmlAttribute(resOut)}/mipmap-xhdpi/ic_launcher.png" />
    <copy from="root/res/mipmap-xxhdpi/ic_launcher.png"
        to="${escapeXmlAttribute(resOut)}/mipmap-xxhdpi/ic_launcher.png" />
    <copy from="root/res/mipmap-xxxhdpi/ic_launcher.png"
        to="${escapeXmlAttribute(resOut)}/mipmap-xxxhdpi/ic_launcher.png" />                  

    <instantiate from="root/build.gradle.ftl"
                   to="${escapeXmlAttribute(projectOut)}/build.gradle" />
    <instantiate from="root/AndroidManifest.xml.ftl"
                   to="${escapeXmlAttribute(manifestOut)}/AndroidManifest.xml" />
    <instantiate from="root/res/values/styles.xml.ftl"
                   to="${escapeXmlAttribute(resOut)}/values/styles.xml" />

    <instantiate from="root/src/app_package/GlobalConfiguration.java.ftl"
                   to="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/GlobalConfiguration.java" />
    <open file="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/GlobalConfiguration.java" />
    <instantiate from="root/src/app_package/AppLifecyclesImpl.java.ftl"
                   to="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/AppLifecyclesImpl.java" />
    <open file="${projectOut}/src/main/java/${slashedPackageName(packageName)}/app/AppLifecyclesImpl.java" />
       
<#if unitTestsSupported>
    <instantiate from="root/test/app_package/ExampleUnitTest.java.ftl"
                   to="${escapeXmlAttribute(unitTestOut)}/ExampleUnitTest.java" />
</#if>          
</recipe>

Module 所需要的模板文件都放在 root 文件夹下,而使用 recipe.xml.ftl 中的标签就是为了告诉模版引擎,你打算将哪个模板文件通过什么方式放到 Module 中的什么位置

mkdir 标签,顾名思义,就是生成一个空的文件夹

merge 标签中的 from 填写模板文件的地址,to 填写 Module 中的目标位置,merge 标签会将 from 中填写的模板文件,放到 to 中填写的目标位置上,如果目标位置已经存在一个相同文件名的文件,则将模板文件中的全部内容复制到已经存在的文件中,否则则创建一个新的文件

copy 标签会将 from 中填写的文件,放到 to 中填写的目标位置上,如果目标位置已经存在一个相同文件名的文件,则会覆盖此文件

instantiate 标签会将 from 中填写的模板文件,放到 to 中填写的目标位置上,如果目标位置已经存在一个相同文件名的文件,则会覆盖此文件,看描述和 copy 标签差不多,那它们的区别是什么呢?

copy 标签的目标对象是普通文件,也就是没有 .ftl 后缀的文件,instantiate 标签的目标对象是模板文件,也就是有 .ftl 后缀的文件,那有 .ftl 后缀的文件和没有 .ftl 后缀的文件有什么区别呢?

有 .ftl 后缀的文件中可以使用 FreeMarker 语法,在生成文件时,模版引擎会根据文件中的 FreeMarker 语法对文件内容进行相应的修改,比如根据不同的条件生成不同的内容,而没有 .ftl 后缀的文件,文件中的内容一旦确定在生成时是无法改变的,就如同单纯的复制粘贴

${escapeXmlAttribute(resOut)} 对应的是 Module 中的 res 文件夹

${projectOut}/src/main/java/${slashedPackageName(packageName)} 对应的是包名下的根目录

${escapeXmlAttribute(topOut)} 对应的是整个工程的根目录

${escapeXmlAttribute(projectOut)} 对应的是 Module 的根目录

${escapeXmlAttribute(manifestOut)} 对应的是放置 AndroidManifest.xml 的文件夹

${escapeXmlAttribute(testOut)} 对应的是 Module 中放置测试文件的文件夹

模板文件

root 文件夹下模板文件的编写也不难,因为 module Templates 没有用到自定义变量,所以大多数情况下,就是将你写好的 java 文件,后面加上 .ftl 后缀即可,看看下面我贴出的源代码链接,你很快就能上手

你如果还想学到更多的 FreeMarker 语法,可以翻翻下面贴出的 FreeMarker 中文文档

开源代码链接

我给 MVPArms 写的 File Templates

我给 MVPArms 写的 Activity Templates

我给 MVPArms 写的 module Templates

我给组件化项目写的 module Templates

教程链接

快速写出 Activity Templates 的插件

Live Templates 教程

File Templates 教程

Activity Templates 教程

FreeMarker 中文文档

公众号

扫码关注我的公众号 JessYan,一起学习进步,如果框架有更新,我也会在公众号上第一时间通知大家

image


Hello 我叫 JessYan,如果您喜欢我的文章,可以在以下平台关注我

– The end

效率提升百分之四十,Android Studio模板真好用! CV 工程师你好,以下内容会让你感觉到不适,慎入! 在平时的开发工作中,我们经常将一个地方的代码,复制粘贴到另外一个地方,俗称搬砖,搬砖搬多了,作为一个资深的挨踢民工,难免会总结一些提高生产力的搬砖经验 Android Studio 模板是个提高生产力的好东西,使用过 MVPArms 的朋友,都应该使用过我提供的配套模板,使用该套模板,一键即可生成整个页面需要的所有文件,甚至还... 阅读详情

相关推荐

安卓App开发 篇六:Android应用模板和框架

介绍官方模板和框架,如 Android Studio 内置的基础模板、Jetpack Compose 模板及 2025 年新增的 Kotlin Multiplatform Shared Module 跨平台模板,还提及功能完备且遵循最佳实践的 “Now in Android” 应用及官方搜索样例代码的页面。随后重点阐述开源框架与最佳实践,包括多种架构模式、响应式编程与异步处理方案、网络请求库、UI 组件与布局优化工具、数据持久化及本地存储框架、依赖注入框架、性能与调试工具、安全工具等,同时介绍了其他相关资源

生活在别处 906

适用于商业的10款最佳Android应用模板

由于狂热的开发者社区和移动设备的日益普及,Android的商业应用程序是一个不断增长的市场。 因此,毫不奇怪,业务应用程序模板也有需求,因为它们有助于减少编码的一些繁琐部分,并允许开发人员专注于使他们的应用程序独特的更有趣的工作。 今天我将在CodeCanyon上找到10个适用于Android开发人员的最佳商业应用模板。 我选择的应用模板涉及业务的各个方面,从提高生产力到保持最高开支,以及在更加拥...

weixin_44145299的博客 807

freemarker-layout:春天的freemarker布局

freemarker-layout freemarker布局实现 透明化处理 使用拦截器实现 设置默认布局文件 @Bean public FreemarkerHandlerInterceptor freemarkerInterceptor() { FreemarkerHandlerInterceptor freemarkerHandlerInterceptor = new FreemarkerHandlerInterceptor(); //设置默认布局文件 freemarkerHandlerInterceptor.setDefaultLayout("layout/main"); return freemarkerHandlerInterceptor; } @Override public

2024年Android最新9个Android模板激发您的下一个项目(3),网易的面试难不难

由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示。网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!

2401_84558498的博客 716

Aegisub 特效字幕模板 551例.rar

aegisub特效字幕模板551例

解放双手:用KUKA示教器白键一键触发复杂工艺,自定义你的快捷指令

本文详细介绍了如何利用KUKA示教器的工艺白键功能,通过自定义快捷指令一键触发复杂工艺,显著提升自动化产线效率。文章涵盖UserTech技术栈解析、KRL脚本封装、人机交互视觉工程及工业实战策略,帮助工程师实现机械臂操作的高阶优化。

weixin_30379531的博客 432

封面模板标签_效率提升百分之四十,AS模板也太好用了吧

点击蓝字 轻松关注CV 工程师你好,以下内容会让你感觉到不适,慎入!在平时的开发工作中,我们经常将一个地方的代码,复制粘贴到另外一个地方,俗称搬砖,搬砖搬多了,作为一个资深的挨踢民工,难免会总结一些提高生产力的搬砖经验Android Studio 模板是个提高生产力的好东西,使用过 MVPArms 的朋友,都应该使用过我提供的配套模板,使用该套模板,一键即可生成整个页面需要的所有文件,甚...

weixin_27155667的博客 131

基于 YOLO + SAM 的自动图像标注实战

摘要: 本文提出一种基于YOLO检测和SAM分割的自动化数据标注流水线方案,通过YOLO定位目标并生成检测框,再以检测框为提示驱动SAM完成精细分割,最终输出YOLO格式的标注文件。该方案将人工标注升级为半自动流程,显著提升标注效率,尤其适用于多类别、大规模图像的实例级标注需求。代码模块化设计支持模型灵活替换,并集成异常处理与进度可视化功能。虽依赖YOLO检测质量且对小目标存在局限,但作为工程落地方案,可有效降低私有数据集构建成本,适用于工业检测、遥感等场景的冷启动标注。

qq_64366203的博客 1147

freemarker ftl模板_效率提升百分之四十,AS模板也太好用了吧

点击蓝字 轻松关注CV 工程师你好,以下内容会让你感觉到不适,慎入!在平时的开发工作中,我们经常将一个地方的代码,复制粘贴到另外一个地方,俗称搬砖,搬砖搬多了,作为一个资深的挨踢民工,难免会总结一些提高生产力的搬砖经验Android Studio 模板是个提高生产力的好东西,使用过 MVPArms 的朋友,都应该使用过我提供的配套模板,使用该套模板,一键即可生成整个页面需要的所有文件,甚...

weixin_39637285的博客 292

Ansys Lumerical FDTD仿真加速策略与高性能硬件选型指南

本文深入探讨了Ansys Lumerical FDTD仿真的核心加速策略,涵盖算法优化与硬件选型两大维度。通过合理运用非均匀网格、对称边界条件等算法技巧,并精准匹配CPU/GPU计算资源与高性能硬件配置,可显著提升仿真效率,将计算时间从数天缩短至数小时。

a0b1c2d3的专栏 610

ADS系列之SI&PI仿真笔记:ADS多种版本的安装、卸载&重装(一)

此系列仅作为ADS学习过程的记录,如有错误的地方还请大佬指正! 一、下载&安装 ADS软件下载&安装还算比较简单,目前接触到有两个版本:ADS2017和ADS2019。这里贴下链接,破解教程里面都有: ADS2017下载地址:https://pan.baidu.com/s/1l-Bs9owKRmp5Pv0Mt92OYA 提取码:wuzf ADS2019下载地址:吴川斌的博客-w...

Claudedy的博客 3万+

效率提升百分之四十,Android-Studio模板真好用!

考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取![外链图片转存中…(img-CLIJYe3R-1712424476733)][外链图片转存中…(img-Sebz8mWL-1712424476733)]《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

2301_77595001的博客 786

十五、【测试执行篇】异步与并发:使用 Celery 实现测试任务的后台执行与结果回调

本文介绍如何使用Celery实现测试任务的异步执行与结果回调,解决同步执行测试计划导致的请求阻塞问题。主要内容包括:Celery的基本概念与工作原理(任务队列、消息中间件、Worker进程),在Django项目中集成Celery的步骤,以及将同步测试逻辑改造为异步任务的方法。

blues_C的博客 711

稿定AI:智能设计工具实战指南与效率提升方案

第一,建立提示词模板库,将项目中常见的风格、元素、构图等需求标准化,形成可复用的指令模板,这能大幅提升输出稳定性。引入AI工具后,设计师先完成模板框架和关键视觉元素的制作,然后将风格参数和文案内容输入AI,快速生成多张符合品牌规范的变体。以稿定设计平台为例,其在线AI绘图功能支持通过自然语言描述生成图像,操作流程通常是:进入AI绘图功能页面,在描述框中输入想要生成的内容,可以选择具体的风格如摄影、插画、3D等,设置图片尺寸和数量后提交生成,完成后可直接对结果进行编辑或下载使用。

aitoolhub的博客 236

q-learning精讲

Q-learning Q-learning是一种用于机器学习的强化学习技术。 Q-learning的目标是学习一种策略,告诉Agent在什么情况下要采取什么行动。 它不需要环境模型,可以处理随机转换和奖励的问题,而无需进行调整。 对于任何有限马尔可夫决策过程(FMDP),Q学习找到一种最优的策略,即从当前状态开始,它在任何和所有后续步骤中最大化总奖励的预期值。在给定无限探索时间和部分随机策略的情况...

weixin_41697507的博客 1万+

OsgEarth开发笔记(三):Osg3.6.3+OsgEarth3.1+vs2019x64开发环境搭建(下)

上一篇编译了proj6.2.0、gdal3.2.1,本篇继续。 OsgEarth的编译,是基于Osg和OsgEarth结合在一起的,先要编译Osg,然后编译OsgEarth。OsgEarth的依赖库较多,分为上、中、下三篇,然后单独有一篇如何将编译好的osgEarth集成到Qt中。

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 4万+

跨境电商运营怎么提升效率?数据驱动的日常管理方法

跨境电商运营规模增长后效率瓶颈会出现在数据汇总、广告管理和库存管理三个环节。本文从自动化、效率杠杆和团队搭建三个维度给出突破效率天花板的方法。

weixin_72100906的博客 261

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

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

Strapi做SEO建站后台好用吗:编辑团队实测工作效率提升40%

传统网站后台常常让编辑人员在处理搜索引擎优化时感到束手束脚。单体内容管理系统通常将前后端紧紧绑定在一起,导致每次调整网页标题、元描述、或者是嵌入结构化数据时,都需要等待技术人员排期修改源代码。这种协作瓶颈让许多希望通过内容营销获取自然流量的企业错失良机。作为无头内容管理系统领域的代表,Strapi 近年来在技术圈备受关注。那么,对于日常需要高频更新内容、管理数千个页面元数据的编辑团队而言,这款工具到底好不好用?

光算科技的博客 39

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

亚马逊店铺运营怎么提升效率?数据驱动的日常管理方法

亚马逊店铺运营规模增长后效率瓶颈会出现在数据汇总、广告管理和库存管理三个环节。本文从自动化、效率杠杆和团队搭建三个维度给出突破效率天花板的方法。

weixin_72100906的博客 12

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

跨境电商运营怎么提升效率?数据驱动的日常运营方法

自动化之后,时间分配变成了——百分之五的时间在"看数据"(系统自动生成,你只需要扫一眼),百分之三十的时间在"做决策"(你有了更多时间来分析数据、制定策略),百分之三十的时间在"做执行"(自动化处理了重复性工作,你专注于需要人工判断的高价值执行),百分之三十五的时间在"做学习"(你有了更多时间来研究新品类、新市场、新策略)。很多运营在效率提升之后,多出来的时间不是用来做分析和决策,而是用来"做更多的执行"——原来一天处理三个店铺的数据,现在自动化了,于是又开了两个店铺,继续每天处理数据。

weixin_72100906的博客 13
上一篇: 今日头条屏幕适配方案终极版正式发布!
JessYanCoding
博客等级 码龄10年 63粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值