当前位置: 首页 > news >正文

从入门到精通!一个三非渣本的Android校招秋招之路,终局之战

前言:

本文收集整理了各大厂常见面试题N道,你想要的这里都有内容涵盖:Java 相关、Android 基础、Android Framework、三方源码、算法与数据结构、等技术栈,希望大家都能找到适合自己的公司,开开心心的撸代码。

实现方案

直接依赖

这种方式实现简单,但是耦合太严重,不方便维护与开发,当工程逐渐增大模块逐渐增多,依赖关系会非常复杂,不推荐这种方式。

事件或广播通信

EventBus: 我们非常熟悉的事件总线型的通信框架,非常灵活,采用注解方式实现,但是难以追溯事件。广播: 安卓的四大组件之一,在一个模块中发送广播设置数据,在另一个模块中注册广播接收数据,使用广播进行数据传递方式广播相对于其他的方式而言消耗资源较多。

总结: BroadcastReceiver、EventBus,非常灵活,模块之间没有任何的耦合,但是代码的可读性差,难以追溯事件,不是很推荐。

路由通信

模块与模块之间不存在依赖关系,而是各自运作,简单的来说就是映射关系的路由通信,也是目前比较主流的一种方案,比较常用的开源框架是阿里的ARouter。

ARouter典型应用

从外部URL映射到内部页面,以及参数传递与解析跨模块页面跳转,模块间解耦拦截跳转过程处理登陆、埋点等逻辑跨模块API调用,通过控制反转来做组件解耦。

面向接口通信

以上几种方式只是简单的介绍,下面就具体说下通过接口解耦通信的方式,首先先看几个问题。

什么是面向接口编程?

接口大家都很熟悉,这里所说的面向接口编程,并不只是所谓的 java 中的 interface,而是指超类型,可以是接口也可以是抽象类。

面向接口比面向对象编程是更先进一步编程思想,而是附属于面向对象编程的体系,属于其中一部分,它是面向对象编程体系中的思想精髓之一。面向接口编程它的核心思想是将抽象与实现分离,从组件的级别来设计代码,达到高内聚低耦合的目的。面向接口编程方法是,先定义底层接口模块,也就是 通信的协议与功能约定 ,是提供方实现对应的功能与能力。在架构中层次分明,不需要关注具体实现,开发中可以通过接口快速制定协议,与提供能力api,对于上层通过接口显露能力,对于下层只需要依赖接口层相当于依赖api。

面向接口编程的好处?

灵活性高没有依赖具体的实体,实现层可以任意的更改与切换。在模块化中可以相互依赖service(接口层)或依赖多个。‍

‍在模块化中的使用下面对于接口(interface)或api层统称为service,其含义为服务提供者。

对于,每一个 module 都一个独立的工程结构,每个 module 都有自己的 Service ,来统一暴露当前 module 所拥有能力与向外提供的服务。


对于 module 是在同一个工程里的项目结构,service 可以放到统一的一个 Module 下,我们统称为 Mediator,这样做的目的是为了减少 Module 创建与维护。假设你的工程有20个业务 Module 如果都同时增加一个 service 层就会造成 Module 数量翻一倍。由于这里存入的都一些接口类,也是每个业务 Module 向外提供的服务其体量不会太大,这里并只是一个建议并没有标准的做法。

当然也有更复杂的设计,一个 Module 又分不同的 service 实现如图,这里不在展开细说。

实际工程中使用与设计

在实际项目中有很多项目都同时开发两版本Pad与Phone,有的是两独立的工程,有的是在同一个工程内用 flavor 切换不同的工程,下面我就以通过 flavor 切换的工程结构举例。先看下工程的包的结构图:

可以看到 module 结构是分为三个部分,common, pad, phone, 如果每个service 都独立将增加3倍的 Module 数量。

使用一个 Mediator Module 统一管理这这些 service 就很好控制了 module 数量。

Service 创建

在 module_mediator 业务 module 下 common,pad、pone 下分别创建ICommonService, IService(pad), IService(phone)。ICommonService:公共服务。IService(pad):pad服务并继承CommonService。IService(phone):phone服务并继承CommonService。

注:这里为什么不用,PadService与PhoneService,是因为pad与phone版本同时只会存在一个,使用方只需要关心你提供的Service不用在区分版本,而且这里是一个继承关系也可以获取到共用的部分。

Service 实现

依赖 Mediator :

在业务 common\pad\phone module 下分别实现,ICommonService, Service(pad), IService(phone) ,在 common module 创建 CommonServiceImpl 实现 ICommonService,在 pad、phone module 分别创建 ServiceImpl 对应实现 IService 并继承与 CommonServiceImpl。

Service 注册

注册的方式有一般是通过代码用去注册,或通过注解进行注册。可以在 Application 注册也可以在业务 Module 下自己注册,如果使用注解则可以自动注册,具体要看项目怎样实现。例:

解释下 MediatorServiceFacator,它只是一个服务工厂也是一个接口类,作用是负责管理各业务方的 Service 主要功能是注册与获取 Service。上面的代码就是往里注册了一个会员的 Service。

可以看出这个函数只有两个参数,一个是接口class一个是实现类class,第一个参数cls:它会作为 key 来使用,第二个参数implClass:它会作为 value 来使用。

Service 使用

通过 MediatorServiceFacator 懒加载获取service对象,如果业务方没有注册则获取一个空的对象。

注册有 service 没有使用时是不会创建的,如果使用过则会缓存下来,下次调用则直接返回。(第一次是通过反射创建)例:

  1. 在 mediator 模块下会员 CommonService 中 定义了一个模糊查询会员的方法。

  1. 在会员模块下 common 中实现了该功能。

  1. 在会员模块下 pad 中继承了这个实现。

  1. 在其他模块 pad 下使用这个功能。

可以看到获取 Service 只要传对应接口就即可,对于使用方是不用关心实现方,在开发过程中只要先定义好接口,合作的同学就可以进入正常开发了。细心的同学可以看出,返回的数据类型也是一个接口类,为什么不直接返回一个普通 java 类呢?主要原因是通过接口方法达到双方 api 约定,例如 getName() :String 方法是通过方法名返回值达到约定效果,这样不依赖具体实现。

从上面的例子可以看出主要分为三个部分:1、定义接口。2、提供方实现接口。3、使用方都通过服务工厂获取服务使用。对于使用者来是很简单的,不需要关心实现,通过接口可以直接获取到实现,并且获取到结果可以直接使用,不需要做序列化处理。

有了路由通信我们为什么还使用面向接口编程?

路由模式虽然很好的解决了耦合的问题,但他的方法调用都是静态的,对于传参与返回值只能是基本类型,如果是对象需要做序列化与反序列化处理,对性能有一定影响。类似在调后台接口一样,同时降低了代码的可读性, 对于 app 而言所有 Module 都是在同一个应用下,没有必要做这些序列化操作。

对于复杂业务不好处理,例如一个业务需要多次通信,路由模式则不好处理,而通过接口通信则可以容易解决。例如:一个读卡的操作,业务方需要对它有开启、关闭、暂停等多个状态的操作。通过接口则可以直接返回一个读卡的 service 控制器, 这样可以直接进行相应的控制操作。

从上面代码中可以看出,上层回调结果的同时并回调了一个控制接口,这样就提供使用方一个反向操作的能力。

结尾

  • 腾讯T4级别Android架构技术脑图;查漏补缺,体系化深入学习提升

img

  • 一线互联网Android面试题含详解(初级到高级专题)

这些题目是今年群友去腾讯、百度、小米、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。并且大多数都整理了答案,熟悉这些知识点会大大增加通过前两轮技术面试的几率

img

Android架构师学习门槛,有没有免费学习资料?

有Android开发3-5年基础,希望突破瓶颈,成为架构师的小伙伴,可以关注我,直接私信我回复学习免费获取

或者点击下方二维码:

1

《Android学习PDF+架构视频+面试文档+源码笔记》来获取学习资料提升自己去挑战一下BAT面试难关吧

为什么免费分享?

,可以关注我,直接私信我回复学习免费获取

或者点击下方二维码:

[外链图片转存中…(img-BncTio9u-1629709152185)]

《Android学习PDF+架构视频+面试文档+源码笔记》来获取学习资料提升自己去挑战一下BAT面试难关吧

为什么免费分享?

如果设置门槛,很多开发者朋友会因此错过这套高级架构资料,错过提升成为架构师的可能。这就失去了我们的初衷;让更多人都能通过高效高质量的学习,提升自己的技术和格局,升职加薪。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35139.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

燕山大学数据结构知识点总结

数据结构知识点概括 第一章 概 论 数据就是指能够被计算机识别、存储和加工处理的信息的载体。 数据元素是数据的基本单位,可以由若干个数据项组成。数据项是具有独立含义的最小标识单位。 数据结构的定义: 逻辑结构:从逻辑结构上描述数据&a…...

【计算机网络】前端优化总结

文章目录一、采用css雪碧图技术二、把css或者js文件进行合并或者压缩三、图片懒加载技术四、设置视频音频标签为none五、传输格式使用json六、采用cdn加速七、采用事件委托(时间代理)八、减少闭包使用九、尽量使用异步编程十、使用websocket十一、建立心…...

HTTP的反向代理(详细版)

#官方文档:https://nginx.org/en/docs/http/ngx_http_proxy_module.html #proxy_pass 后直接跟URL url是远处主机或者本机,都可以 proxy_pass http://10.0.0.18:8080;#8080后面无uri,即无 / 符号,需要将location后面 url 附加到proxy_pass指定的url后面…...

23 种设计模式详解

设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结,其中最出名的当属 Gang of Four (GoF) 的分类了,他们将设计模式分类为 23 种经典的模式,根据用途我们又可以分为三大类,分别为创建型模式、结构型模式和行为型模式。…...

分享:关于 JVM 内存的 N 个问题和定位工具

JVM的内存区域是怎么划分的? JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;有些区域会抛出OOM异常,有些则不会,了解JVM的内存区域划分以及特征,是定位线上内存问题的基础。那么JVM内存区域是怎么划分的呢? 首先是程序计数器(Program Counter Re…...

[C#] 代码混淆和加壳

目的 对比不同的主流保护工具,针对 dnSpy 反编译出的效果。 非混淆代码: using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms;namespace test_winform {// Token: 0x02000002 RID: 2public class Form1 :…...

双亲委派模型

从Java 虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(BootstrapClassLoader),这个类加载器使用C语言实现,是虚拟机自身的一部分;另一种就是所有其他的类加载器,这…...

OpenLayers源码解析8 ol/source/TileWMS.js

ol/source/TileWMS.js父类 ol/source/TileImage-TileImage 主要功能 WMS服务提供的底图图层源。 参数&#xff1a;TileWMS({}) 参数类型说明paramsObject.<string, *>至少需要LAYER参数。STYLE默认是’VERSION默认是‘1.3.0’WIDTH&#xff0c;HEIGHT&#xff0c;BB…...

代码混淆之class-winter

郑重声明 class-winter是本人在学习完class-final(v1.1.9)后&#xff0c;仿照class-final进行编写的&#xff0c;整体思路与class-final一致&#xff0c;代码部分(约20%~30%)复用了class-final中的代码。可将class-winter看作是class-fianl的一个分支。 功能与特性 支持war加…...

百度、阿里、滴滴、新浪的面试心经总结,看这一篇就够了

直击面试 反正我是带着这些问题往下读的 说一下 JVM 运行时数据区吧&#xff0c;都有哪些区&#xff1f;分别是干什么的&#xff1f;Java 8 的内存分代改进举例栈溢出的情况&#xff1f;调整栈大小&#xff0c;就能保存不出现溢出吗&#xff1f;分配的栈内存越大越好吗&#…...

Nginx 配置二级域名(腾讯云)

根域名已被个人主站占用&#xff0c;想把做过的项目部署到二级域名&#xff0c;特此记录。 一、环境说明 系统&#xff1a; CentOS7.6 应用服务器&#xff1a;Nginx 1.16.1、Tomcat 9.0 安全组已开放端口&#xff1a; 22、80、443、3389 二、解析二级域名并申请 SSL 证书&a…...

星界矿池引领区块链挖矿新时代

近年来&#xff0c;区块链技术和产业在全球范围内快速发展&#xff0c;应用已延伸到数字金融、物联网、智能制造、供应链管理、数字资产交易等多个领域&#xff0c;即使目前与区块链相关的项目层出不穷&#xff0c;但还是暴露出了许多问题。 就拿区块链挖矿产业链来说&#xf…...

牛客网论坛最具争议的Java面试成神笔记,GitHub已下载量已过百万

程序员内部一直流传这一句话&#xff1a; 面试看牛客 刷题看力扣 牛客网作为国内最牛的程序员面试网站&#xff0c;一直在程序员内部颇负盛名&#xff0c;其中用户更是卧虎藏龙! 有国内一线大厂的企业招聘 还有一些低调的互联网大牛实力就和天龙八部里的扫地僧一样&#xff0…...

JAVA大数据的第二十一天——实用类介绍

一、枚举 二、包装类 三、装箱与拆箱 四、String类 五、Random类 l六、length类 七、要点...

PAT Basic Level 1062 最简分数 解题思路及AC代码 v1.0

PAT 乙级 1062 最简分数1. 题目简述及在线测试位置2. 基本思路3. 完整AC代码1. 题目简述及在线测试位置 1.1 给定两个正分数 和 一个正整数&#xff0c;从小到大打印 以正整数为分母 并 介于两个正分数之间的最简分数。最简分数&#xff1a;分子和分母没有公约数 1.2 在线测试…...

python视频操作——python实现将视频分解为图片序列

python将视频分解为图片序列 内容参考自博客~ 详细实现代码如下&#xff1a; import cv2# 读取视频&#xff0c;方法是来自cv2库的VideoCapture cap cv2.VideoCapture("C:/Users/xxx/Desktop/sweet.mp4") # 计数 i 0 # 循环判断视频是否打开 while cap.isOpened…...

项目部署到tomcat Root中后导致 WebApplicationContext 初始化两次的解决方法

项目部署到tomcat Root中后导致 WebApplicationContext 初始化两次的解决方法参考文章&#xff1a; &#xff08;1&#xff09;项目部署到tomcat Root中后导致 WebApplicationContext 初始化两次的解决方法 &#xff08;2&#xff09;https://www.cnblogs.com/itrena/p/59271…...

大牛:史上最大规模SPAC交易即将落地 腾讯或成幕后赢家

美东时间周四&#xff0c;一位消息人士透露&#xff0c;亿万富翁投资者比尔•阿克曼(Bill Ackman)的空白支票公司即将完成一笔收购环球音乐集团的交易&#xff0c;这将是有史以来规模最大的特殊目的公司收购&#xff08;SPAC&#xff09;交易&#xff0c;而在环球音乐占股20%的…...

循环依赖构造器方式

文章目录构造器方式例子构造器方式 例子 Component public class TestA {private TestB testB;public TestA(TestB testB) {this.testB testB;} } Component public class TestB {private TestA testA;public TestB(TestA testA) {this.testA testA;} }TestA开始&#xff0…...

Laravel Debug mode RCE(CVE-2021-3129)漏洞复现

Laravel Debug mode RCE&#xff08;CVE-2021-3129&#xff09;漏洞复现 前言 这个之前在VNCTF2021的时候遇到过&#xff0c;当时自己只是拿着脚本直接打&#xff0c;并没有对于原理好好了解一下。最近国赛&#xff0c;还有i春秋都出现了以yii和thinkphp为背景的关于日志写ph…...

CRM中销售周期的各个阶段以及销售管理

什么是销售周期? 销售周期是指销售人员为转化新客户而采取行动的所有时间阶段。销售周期经常与销售方法混淆。销售方法&#xff0c;通常为提高销售效率或成交率而设计&#xff0c;例如以客户为中心销售法。而销售周期则更具战略性&#xff0c;通常包括“挖掘”&#xff0c;“…...

Apollo学习笔记8-imu-lidarApollo3.0手动标定

imu-lidarApollo3.0手动标定参考文档参考文档 1:https://github.com/ApolloAuto/apollo/blob/r3.0.0/docs/specs/apollo_lidar_imu_calibration_guide.md. 2:https://github.com/ApolloAuto/apollo/blob/r3.0.0/docs/specs/D-kit/Auto_Driving–Sensor_calibration_cn.md. 3:h…...

SVN错误:Previous operation has not finished;run “cleanup“ if it was interrupted.

问题分析&#xff1a; SVN报错以上错误&#xff0c;可能是修改本地的文件之前没有update&#xff0c;导致commit的时候产生冲突&#xff0c;致使SVN崩溃&#xff0c;陷入clean up 死循环。 svn 的 operation是存放在 "work queue" 里的。而 "work queue"…...

git知识点查阅

若自己在自己的电脑上修改了某一代码&#xff0c;而此时远程分支上对应的代码别人也做了修改&#xff0c;现在需要把远程分支的代码和自己本地的代码合并到本地电脑&#xff0c;操作&#xff1a; git stash git pull git stash pop...

手写一个Vue Loading通过自定义api控制显示与关闭 记录

实现目标调用方法&#xff08;类似element的loading&#xff09;&#xff1a; this.$loading.show() 显示 this.$loading.hide()关闭 应用vue知识点&#xff1a;extend函数&#xff0c;use函数 简单分析&#xff0c;this.loading的实现通过use使用插件方式把loading的实现通…...

bootstrap table自定义新增行

.deleattrbtn,.addtrbtn{width: 60px;color: #fff;font-size: 12px;background-color: #3177E7;border-radius: 2px;border: 0; }#addtrdiv,#back_addtrdiv{margin: 10px 22px;text-align: right; }.table-bordered{table-layout: fixed;font-size: 12px; }.table th, .table...

解决Ambari启用Kerberos后HDFS/YARN/SPARK等页面无法打开问题

Ambari启用Kerberos认证后HDFS/YARN/SPARK等相关的组件的web页面都无访问了&#xff0c;提示要登录&#xff0c;401: Authorization required。 Ambari版本2.7.3.0 这个问题&#xff0c;可以通过两个办法解决 配置本机的kerberos认证&#xff0c;登录可以访问的user配置组件服…...

redis中的RDB和AOF

redis提供两种方式进行持久化&#xff0c;一种是RDB持久化&#xff08;原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化&#xff09;&#xff0c;另外一种是AOF持久化&#xff08;原理是将Reids的操作日志以追加的方式写入文件&#xff09;。那么这两种持久化方…...

Redis集群的搭建和Redis的使用

Redis集群的搭建和Redis的使用 一.Redis的简介和用途 简介 Redis是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点&#xff1a; Redis支持数据的持久化&#xff0c;可以将内存中的数据保存在磁盘中&#xff0c;重启的时候可以再次加载进行…...

redis加锁、解锁

在Java中&#xff0c;关于锁我想大家都很熟悉。在并发编程中&#xff0c;我们通过锁&#xff0c;来避免由于竞争而造成的数据不一致问题。通常&#xff0c;我们以synchronized 、Lock来使用它。 但是Java中的锁&#xff0c;只能保证在同一个JVM进程内中执行。如果在分布式集群…...

贷款业务流程以及互联网金融的主要形态

1. 贷款业务流程&#xff1a; &#xff08;1&#xff09;贷款申请。应该按照贷款人要求的内容和方式提出贷款申请。基本信息一般包括&#xff1a;姓名、身份证号、期限、金额、用途 &#xff08;2&#xff09;受理与调查&#xff1a;银行在收到借款人的借款申请后&#xff0c…...

互联网金融面临的挑战

1.现阶段的认知误区最近几年兴起的P2P网贷被很多人认为是互联网金融的典型。不过这些新崛起的平台中有相当一部分仅仅是民间金融的互联网化&#xff0c;并且很多平台由于缺乏足够的技术实力及成熟的风控体系&#xff0c;反而暴露出了更大的风险。这不符合互联网金融发展的特征&…...

互联网金融业务

互联网金融盈利模式&#xff1a;利差 互联网金融核心&#xff1a;利用大数据建模解决风控问题 互联网金融领域公司分类&#xff1a; 车贷&#xff1a;微贷网&#xff0c;大搜车传统线下转线上&#xff1a;宜人贷&#xff08;宜信&#xff09;信用贷&#xff08;无抵押贷款&a…...

微信公众号配置网页授权域名报错:无法访问xxx指向的web服务器或虚拟主机的目录

记录一下这个困扰我一天的问题。 首先是下载那个txt&#xff0c;然后安装服务器的nginx&#xff08;安装过程百度一下&#xff0c;非常简单&#xff09;&#xff0c;我是新建了一个文件夹&#xff0c;把这个txt放了进去 接下来配置nginx的访问路径&#xff0c;去编辑conf下的…...

服务器亮黄灯 位置,服务器主机亮黄灯

服务器主机亮黄灯 内容精选换一换企业主机安全(Host Security Service&#xff0c;HSS)是提升服务器整体安全性的服务&#xff0c;通过主机管理、风险防御、入侵检测、安全运营、网页防篡改功能&#xff0c;可全面识别并管理云服务器中的信息资产&#xff0c;实时监测云服务器中…...

OpenStack云平台的使用——云主机的创建

图1.OpenStack平台资源池 通过Openstack新建一个虚拟机 图2.虚拟云主机的创建 图3.为云主机选择操作系统&#xff08;可以添加Windows镜像&#xff09; 图4.云主机创建成功 图5.云主机界面&#xff08;centos 7系统&#xff09; 图6.在虚拟机上模拟搭建完成的openstack网络…...

openstack云计算平台 3 (Dashboard搭建、创建云主机平台)

文章目录一、组件5—Dashboard1.检查云主机状态2.安装和配置3.验证操作&#xff08;创建云主机&#xff09;二、控制节点配置网络选项—私有网络三、计算节点配置网络选项—私有网络1.创建云主机一、组件5—Dashboard Dashboard(horizon)是一个web接口&#xff0c;使得云平台管…...

提高应用在 iOS App Store 中排名的 20 条技巧

刚刚超过 200 万个应用程序并且还在增加。这是目前 iOS App Store 中的应用程序数量&#xff0c;每个类别和子类别都有数以千计的类似应用程序。 话虽如此&#xff0c;应用程序开发和设计是一个利润丰厚的市场&#xff0c;仅去年苹果就向开发人员支付了 200 亿美元。 了解使您…...

linux 文件管理系统

1、格式化 低级格式化&#xff1a;分区之前进行&#xff0c;划分磁道、形成簇&#xff0c;硬件制造商出厂之前做&#xff1b; 高级格式化&#xff1a;分区之后对分区进行&#xff0c;创建文件系统。 2、元数据区和数据区 文件系统分为元数据区和数据区。 元数据区存放文件元…...

JAVA毕业设计快递配送平台计算机源码+lw文档+系统+调试部署+数据库

JAVA毕业设计快递配送平台计算机源码lw文档系统调试部署数据库 JAVA毕业设计快递配送平台计算机源码lw文档系统调试部署数据库本源码技术栈&#xff1a; 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 开发软件&#xff1a;idea eclipse 前端技术&#xff1a;…...

封面制作代码

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>python 书</title><style>.a{color: blue;}.b{font-size: 20px;}.c{color: blue;font-size: 50px;text-align: center;}.d{font-size: 40p...

使用Word制作文档封面

在完成论文或者大作业后&#xff0c;需要制作一个与之匹配的封皮。在封面中布局好校徽后需要制作信息栏&#xff0c;下面就着重介绍如何制作信息栏。 插入一个表格 划出需要的大小&#xff0c;我需要插入三条信息&#xff0c;就划出33的表格&#xff0c;如果四条信息&#xff…...

利用 javacv 截取视频帧制作封面及获取视频播放时长

一、Maven依赖 <dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><version</...

一款不错的LaTeX作业封面模板(三)

1. 效果图 界面美观&#xff0c;包含信息齐全&#xff0c;适合于一般的作业封面。 2. 源代码 \documentclass[12pt]{article} \usepackage[a4paper, left3.17cm, right3.17cm, top2.54cm, bottom2.54cm]{geometry} \usepackage[T1]{fontenc} \usepackage{mathptmx} \usepacka…...

Python番外篇:Pillow快速生成简易文章封面

✨博客主页&#xff1a;blog.csdn.net/wangzirui32 &#x1f496; 喜欢的可以点赞收藏加关注哦~~ &#x1f44f; 我的第150篇原创作品 &#x1f60e; hello&#xff0c;大家好&#xff0c;我是wangzirui32&#xff0c;今天我们来学习如何使用Pillow快速生成简易文章封面&#x…...

python--pip常用命令、国内PyPI镜像、使用pip安装第三方库

让我们来看看具体内容&#xff1a; 一. pip常用命令 列出已安装的包&#xff1a; pip freeze or pip list 导出requirements.txt&#xff1a; pip freeze ><目录>/requirements.txt 在线安装包&#xff08;模块库&#xff09;&#xff1a; pip install <包名>…...

java制作视频文件的封面图片

用的jar包如下&#xff08;用的版本比较新&#xff09;&#xff1a; jar包链接&#xff1a;https://pan.baidu.com/s/1LI68r6H17sAA4Pfbnpm44g public static void fetchFrame(String videofile, String framefile)throws Exception {long start System.currentTimeMillis();F…...

业余不求人,30秒拖拽制作封面图

还在为 Blog 封面发愁吗&#xff1f;今天号主就给伙伴们安排上&#xff0c;好好吹吹这个国产制图平台Canva 可画&#xff1a;https://www.canva.cn/ 可画是全球领先的视觉传播平台&#xff0c;具体使用方式也非常简单&#xff0c;全程点点点即可。比如&#xff0c;我们制作一个…...

个人定制红包制作封面教程+微信红包封面领取时间表

和去年一样&#xff0c;微信红包封面又双叒叕抢手了起来&#xff0c;去年没领到&#xff0c;今年怎么也不能再错过啦。今年的红包封面怎么领呢&#xff1f;一个是领取红包封面&#xff0c;一个是还可以个人定制红包封面&#xff0c;但都是限时的&#xff0c;既然看到了就抓紧搞…...

EPLAN2022——封面页的制作

创建一个项目后&#xff0c;EPLAN会生成一个首页。 更换封面页&#xff0c;右键点击首页——点击属性——弹出页属性对话框。 打开表格名称下拉框&#xff0c;点击浏览&#xff0c;选择封面页。 封面页默认存放位置&#xff1a;C:\Users\Public\EPLAN\Data\表格\Company name…...