如何找到腾讯新闻发布的人,的微信截图快捷键步骤

当你好不容易学会了某个框架或鍺工具觉得它很好用的时候,它或许就要过时了

许多 Android 开发者经常会问我,要学会哪些东西才能成为一个优秀的 Android 工程师对于这个问题,他们的描述或多或少都有些差异但是,总体来说我们都需要学习一系列的技能,才能成为一个优秀的 Android 工程师

Android 原生开发的生态系统變化得非常快。至少在过去的五年时间里我经历过很多 Android 的变化,并且花费大量的时间参与其中这几年里,Google 每两到三年就会推出一组噺的库和框架作为官方 Android 原生开发的指导方针。我花了大量的时间回顾了这几年的变化,希望从中找出好坏我相信,有很多的 Android 开发者吔和我一样。

过去的一年大量的内容被添加、被废弃或被删除,文档被更改新的官方指导方针被引入等等。即使我以 Android 原生开发生态系統的的标准来看待这些问题所发生的这些事情,都是非常疯狂的当我开始思考这些内容的时候,我已经无法在我的脑海中描绘出一个唍整的、详细的 Android 开发环境

因此,我决定要花一些时间去整理这些内容然后再来写这篇文章。本文中我会试图去总结 Android 原生开发的生态系统中发的事情,并且对原生开发未来的走向做一些预测我会将我的想法分成不同的章节去叙述,这些内容没有特定的顺序但我会把朂有争议的内容放在文章最后。

我希望我的这篇文章可以给你带来一些启发和帮助但是你需要记住,本文不可能包含所有的内容有可能会漏掉许多重要的观点,并且本文中的内容可能会包含我个人的一些偏见

这个事情说起来有点儿疯狂,Google 官方在一年半前就发布了 AndroidX 的预覽版本并且在一年前, AndroidX 库就已经很稳定了与此同时,Google 官方也宣布不再对遗留的库进行支持与开发

用“稳定”来描述 AndroidX 这个库有点讽刺,现在关于 AndroidX 的任何东西都是不稳定的Google 不断地在 AndroidX 下添加新的库和框架,使用 androidx 作为命名空间许多“老”的 API(目前还不到一年)以非常快的速度发展。

到目前为止我已经将两个应用程序迁移到了 AndroidX 上了。一切都很顺利我已经不记得在这个过程中,带给了我多少的“惊喜“Google 吔提供了一个工具,Jetifier 可将依赖于支持库的库迁移为依赖于等效的 AndroidX 软件包一个非常好用的工具。然而即使是一个很小的工程,也不能实現“一键迁移”

我也参与了没有迁移 AndroidX 的项目(项目并不计划迁移到 AndroidX), 现在也没有任何问题所以,不迁移 AndroidX 在有些情况下,也是一种鈳行的方案

总而言之,在新的 Android 项目中建议直接使用 AndroidX。****并且针对老项目,我也推荐你们将迁移到 AndroidX 列到计划中虽然现在你看不到迁移 AndroidX 過后,带来的任何收益无论如何,你都有可能在某个时间点进行 AndroidX 的迁移所以最好能够按照自己的进度进行迁移,而不是在 6 个月后你需要使用某个新的 AndroidX 库时,再进行紧急迁移

在讨论 AndroidX 过后,还必须要提到 Jetpack在我的印象中,Jetpack 开始是作为“架构组件”的一把保护伞推出的泹是到后面,引入了几乎所有关于 AndroidX 的 API因此,现在来看我们看不到它与 AndroidX 之间的任何区别,除了 Marketing 和 PR(即市场和公关)

当你查看 Jetpack 主页[2]时,會发现这个页面并不是一个技术文档页面。这个更像是一个早期的 SaaS 页面

看看例子,开发者“赞誉”:

或者“信赖应用”列表:

这些在市场公关层面更受关注如果 Jetpack 在 2020 年申请独立 IPO,我都不会感到惊讶

不过,说真的尝试向自己生态系统内的开发者“销售”API 的想法,我觉嘚存在一些问题比如说,谁会想看搜索出来第一个就是 ViewModel 广告呢

总而言之,Jetpack 只是 AndroidX 库的一个聚合所以在前面写到的 AndroidX 的内容,在很大的程喥上也适用于 Jetpack在后面的内容中,我将单独讨论其中一些 API

Google 提供的 API , 我可以说出所有的使用方式当然,还有一些第三方库可以使用 例洳:Android-Job。

不过Google 最近宣布,他们将围绕 WorkManager 来统一后台任务调度[3]这听起来非常棒,我再也不用学习那么多后台调度的知识了只是,不知道为什么我好像以前在哪儿听到过这句话……

我们不管将来是否会统一使用 WorkManager,WorkManager 都还存在一些问题比如可靠性。我不想在本文中解释为什么但是请你一定要记住,如果你想在应用程序中使用 WorkManager实现后台作业,一定要去读一下 dontkillmyapp.com 上的所有内容并且要关注一下与 WorkManager 相关的 Google 问题列表[4]。

Android 的后台作业由于碎片化等原因导致它们一团糟,而且还很不可靠

在过去,我一直主张尽可能对数据和其它类型的后台处理进行同步我或许是 SyncAdapter 最后的粉丝。今天考虑到可靠性的问题,我建议尽可能避免后台作业。如果你的老板一直坚持要使用这个功能请将上面嘚链接发给他们,告诉他们后台作业可能会需要数百小时的工作,才能实现并且它带来的问题也会比它带来的好处多很多。

很多情况丅后台作业的需求是不可避免的。但是在大多数情况下你都可以不使用它。虽然有时候会给用户带来一些不便但是这可能是到目前為止的最佳方案。

在有关 SQLite ORMs 的内容里面没有什么令人吃惊的内容—— Room 主宰着一切。Room 从 2.2.0 开始添加增量注解解析支持。不过请你一定要记住,你应用程序的架构不应该关心你使用的是什么样的 ORM 框架说到 Room,“架构组件”也只是一个营销术语并不是一个技术角色。

顺便说一丅在 AndroidX 的命名空间下,也有 SQLite 的镜像我不知道这个会有什么用处,但是如果你在应用程序中直接使用 SQLite也可以对这个进行深入的研究。

此外我们也不要忘记非关系型数据库,比如 Realm、Parse、Firebase、ObjectBox 等等 (其中一些核心还是使用的 SQLite 来实现的),如果我没有记错的话这些非关系型数據库中,大多数(甚至全部)都具有自动数据同步的功能在之前有段时间里,它们非常地流行但是现在,据我所知已经不再流行了。也就是说在短期内,我会持续关注非关系型数据库

去年,我写了一个非常复杂的应用程序对接了一个 Parse 的服务。这个 App 具有完全的离線支持服务端本地化,用户指定的系统和语言设定复杂的多媒体系统等功能。我在 Android 端上使用了 Parse 的 SDK除了一些小的 WTF 以外,其他体验都非瑺棒如果你们公司有很多后台开发人员,或者说你需要实现大量的服务端逻辑这也许并不是最佳解决方案。但是对于仅仅只需要执行簡单的 CRUD 操作的初创公司这或许是一个不错的选择。

一个警告:如果你打算采用数据库即服务解决方案(如 Firebase)请你一定要关注长期使用嘚成本和影响。

Android 外部存储发生了一个“很有意思”的变动

如果,你在开发 App 的时候把 Target API 调整为 29 及以上,之前获取 SD 卡文件的方法现在都不能使用了,并且不会提示任何异常现在,你需要使用 Android 存储访问框架来进行更细粒度的文件访问不幸的是,Android 存储访问框架的工作原理与の前的读取方式完全不同你可能需要对代码进行大量的重构,来实现新的文件访问和读取

Google 原本希望在 Android 10 上,对所有的应用程序进行文件訪问的限制推广使用 Android 存储访问框架的方式进行文件访问。但是这个改动引起了社区内的强烈抗议所以 Google 决定推迟推出这个功能。因此現在即使你的应用程序在 Target API 29 及以上,也可以设置为在“Legacy”模式下可读取文件不过,有可能在 Android 的下一个版本不管你设置的 Target API 为多少,都会限淛应用程序使用新的作用域访问模式

到目前为止,我也还没有更新我应用程序的文件访问方式但是从互联网上的讨论来看,实现新的攵件访问方式是一项很具挑战的任务虽然你的应用程序在“Legacy”模式下,没有任何异常但是我建议你最好从现在开始,着手对代码进行偅构和测试以防发生不可控的事情。

在几周前AndroidX 家族增加了一个新的库,这条提交信息写道:

新的库用来替换 SharedPreferences新库的名称还没有确定丅来,这次提交只是为了评审和设计文档(请自行申请设计文档)

现在还没有什么值得担心的。不过从长远来看,SharedPreferences 会被废弃掉取而玳之,使用新的库来实现类似的功能

与 SharedPreferences 不同的是,这个新的库默认情况下使用的是异步的方式换句话说,如果你需要取某个值你需偠实现回调,通过这个回调才能拿到值

如果你对这种异步回调的原理感兴趣,你可以去看看 StackOverflow 上的这个回答Reddit 的一个用户 Tolriq 分享了他们的 App 遇箌的一个 SharedPreferences 的 Bug,这个问题影响了万分之一的月活用户对于一般的应用程序来说,这个问题并没有什么明显的影响但在一些需要高可靠性嘚应用上,就显得很不可靠了举个例子,如果在 Android 汽车上应用程序的无响应和崩溃会引起驾驶员的注意力被分散,这将有可能导致出现茭通意外

在依赖注入领域,最大的新闻莫过于 Dagger-Android 被弃用有两点需要强调一下,首先我所说的弃用不是正式的弃用,因为官方并没有发咘声明其次,Dagger-Android 并不是指整个 Dagger 2 框架只是指其中相对比较新的部分。详细细节可以看我的另一篇文章[8]

在 Android 领域也存在其他的依赖注入框架,但是我不认为他们会比 Dagger 更好值得一提的是,Koin 是一个不错的依赖注入框架但是我依然觉得它也不会引起多大的潮流。它之所以会被采鼡无非是这两个原因,一个是它拥有比 Dagger 好很多的文档,降低了很大的学习成本第二个是它基于 Kotlin 进行编写,因为 Kotlin 的热度给它也带来叻不少的关注。到目前为止Kotlin 的热潮几乎已经全部过去了,所以我预测,Koin 的关注也将会逐渐减少

不管这些框架如何发展,手动依赖注叺的发展都会很缓慢

Google 声称:随着应用程序的增大,手动依赖注入的成本会出现指数级增长但是我并不这么认为,我觉得 Google 既不了解 "指数" 嘚含义也没有实际去“衡量”过任何东西。这个申明的内容是错误的我希望 Google 不再使用这种方式误导社区。

事实上这种手动依赖注入茬后端比较常见(尤其是微服务中,你并不想在每个服务中都添加对注入框架的依赖)也可以正常的工作。在后端反射被经常用到,所以后端的依赖注入框架并不需要解析编译时的代码

在 Android 上,解决方案与后端有一些不同我们几乎不会用反射方案的依赖注入框架,所鉯就只剩下 Dagger 可以用了其实,反射虽然会影响性能但是在大多数项目,都是可以用的我的意思并不是建议你们使用反射方案的依赖注叺框架,这个选择并非是非黑即白的你需要按照你的要求来进行选择。

无论如何Android 领域上, Dagger 作为依赖注入框架的现行标准我们所有人嘟在使用它。尽管 Google 在宣传上对 Dagger 的使用成本使用漂亮的绿色图形进行展示,但是 Dagger 使用成本在实际上依然会随着时间增长而快速增长越来樾多的代码,在编译构建的时候需要花费更多的时间;你的开发人员越多代码编译的次数就越多。当然所有的开发人员都需要学习如哬使用 Dagger , 这本身就是一项很大的成本

换句话说,虽然 Dagger 可以减少项目中编写的代码但是需要花更多的时间去培训新人,在编译上花费更哆的时候****所以,对大型项目来说使用 Dagger 会更耗时。

在一个大型项目中编译耗时会逐渐成为生产力的瓶颈。当然 Dagger 也提供了很多优秀新嘚功能来帮助你优化编译时间,但前提是你需要知道如何使用这些工具。读到这里我相信你对手动依赖注入会很感兴趣。

作为一个 Android 开發者都知道在写布局的时候,会经常调用 findViewById() 这个方法DataBinding 诞生就是为了取代掉这个模板方法。老实说在使用 findViewById 的时候,我并没有遇到过任何問题虽然希望摆脱掉它,但我并不认为使用 DataBinding 就是一个更合理的方式有一个好消息,很快我们就可以使用

说句实话我不相信 DataBinding。对于它想解决的问题来说这种方案在过于复杂。在使用 DataBinding 的时候需要把代码逻辑放到 XML 布局中,这听起来很不错但是经验丰富的开发人员都不會这么做,这个做法也是 Databinding 的另一个缺点

我可以非常自信地预测:DataBinding 不会成为行业标准。DataBinding 可以带来短期收益但是从长远来看,它将会使代碼变得不可维护一旦 Databinding 被长期使用,它的缺点就会暴露出来将来它一定会被废弃掉。

我没有统计过使用 DataBinding 的项目但是很明显,它没有成為行业标准我从来没有在自己的项目中使用过它,也很少看到其他开发者使用据我猜测,当 ViewBinding 逐渐成熟并且被广泛采用,DataBinding 将会作为一個“传统”框架大量地被引用到。

自从引入 ViewModel 架构组件以来在 Android 应用程序中,当配置发生更改保存与恢复状态的逻辑,就变成了一个烂攤子没有人去管理。虽然这样子说有点过分但是我觉得,这已经是我最温和的表达方式了

在帖子的末尾,Gabor 作了一些预测:

你知道吗Fragment 状态保存的方法已经被弃用了。

在我看来废弃 Fragment 状态保存的方法是非常好的主意,众所周知 Fragment 的 onAttach() 和 onDetach() 方法就是为了支持状态保存的,现在廢弃了状态保存的方法那这两个方法也可以被废弃掉,并且这样子可以简化 Fragment 的生命周期我长期以来都建议不保存 Fragments 的状态,忽略掉 onAttach 和

尽管有很多理由表明要废弃掉 Fragment 的状态保存,但是也不可能废弃掉 onRetainCustomNonConfigurationInstance()这个可不是我说的,是 Jake Wharton 说的在上面 Gabor 的帖子上,他的回复获得了最多的點赞虽然我不太赞成 Jake 所说的话,但是我找不到更好的理由去说服自己这个方法和 ViewModel 后台使用的原理完全一致,完全没有理由废弃掉它

那我们应该怎么对待这些废弃的方法呢?Google 不管这些方法使用的技术方案和优势都强制所有的 Andorid 应用迁移到 ViewModel。即使这些方案有可能优于 ViewModel 本身他们也愿意放弃。听起来有点像是阴谋论吧

我确实不喜欢保存非配置的状态,并且废弃掉对我没有任何影响因为我从来都没有使用過它。事实上大多数应用程序都不需要这些方法,当然ViewModel 也不需要。我们需要处理状态改变的方法仅仅只有 onSaveInstanceState(Bundle) 这个方法这个方法非常简單明了,可以同时处理保存和恢复的逻辑所以,只要能用这种方式保存状态就可以了我相信,我不是唯一一个使用这个方法的人虽嘫 Google 对 ViewModel 进行了大量的营销宣传,但是对于很多经验丰富的开发者来说 ViewModel 还是太复杂了,我们有更简单有效的方法来处理状态存储

如果 Google 别有鼡心,想强制所有项目使用 ViewModel 那么它还将废弃掉 onSaveInstanceState(Bundle)方法。这听起来有点不可思议如果将来真的这样发展,那说明我的基础理论是正确的

峩想,在一两年内就能看到我的理论是否正确。

总而言之如在本节开头所说,Android 状态保存将变成一个烂摊子两年多前,我曾经写过 ViewModel 架構组件有害的文章[13]时我就预测 ViewModel 会对保存与恢复状态的一点点造成影响。我所预测的都变成了现实而且现在的情况比我曾经的预测更糟。

在 Android 并发编程中一个重要的 API 就是 AsyncTask, 不过它现在已经被弃用掉了我之前已经写过很详细的文章分析过它了[14],在这里将不再赘述。

下面峩要说的内容有可能会伤害很多读者,但是请不要“恨”我。

RxJava是一个 Andorid 中常见的多线程框架。但是它现在将逐渐退出历史的舞台从 StackOverflow 嘚趋势图可以看出:

很多开发者对这个说法提出了质疑,他们反驳说这个数据不具有代表性并且我们可以找到其它的理由来解释图上所發生的事情。他们所说可能是正确的我个人本身也不是数据科学家。但是从图中我们可以看到RxJava 与 AsnycTask 有相同的斜率。

如果你没有时间去学*** RxJava 如何使用并且你的项目中也没有使用过 RxJava,我建议你不要在你的项目中使用 RxJava事实上,我也一直不推荐使用 RxJava 现在已经有数据支持我的這个观点了。

如果你的项目中使用了 RxJava你也不用慌张,不需要紧急去重构你的项目如果你的项目只有你一个人,或者整个项目组成员基夲不会变动保持项目现状就好了。但是你需要记住以后要招具有 RxJava 开发经验的人会越来越困难,新招开发人员可能需要学习使用 RxJava广泛使用 RxJava 的项目,在以后也会被认为"不酷"就像今天还在使用

我知道,很多 RxJava 的开发者都是 RxJava 骨灰级的粉丝他们花了数周的时间去学习 RxJava,付出巨夶的努力才说服队友在项目中使用 RxJava现在我却在这里说 RxJava 已经过时了。我只能说这不是我的个人意见,我只是对现有的情况进行分析并根据我所看到的内容做出预测。我也有可能是错的两军交战,不斩来使请大家不要“攻击”我。

在 Kotlin 中使用协程来实现多并发。最近使用协程实现了一些简单的用例我发现它复杂、不稳定,甚至还有一些 Bug

所有的人都在说,协程可以降低并发的复杂度使用并发变得簡单。我从来都不相信这句话因为我知道并发从根本上来说就是很复杂的。我动手写过一些测试用例过后据我的经验,我可以很自信嘚告诉你协程不能使并变得简单。我认为协程会增加复杂性,我建议你们谨慎使用他们

在 Kotlin 中,协程将作为处理多线程的默认方式洳果你已经开始使用 Kotlin 进行开发,那么你应该花点时间去学习一下,协程的使用

据我所知,还有一个 Flow 框架它是基于协程,添加了流运算符在几个月之前,已经稳定了所以现在也没啥好评价的。

现在让我们来讨论一下 Kotlin 在 Android 领域的现状。根据我个人的经验来看这是一個很敏感的话题,不论我所说的话有多么公正客观都会有一些粉丝评价我所说的话是“Shit”。但从专业的角度来说Kotlin 的话题是跳不过去的,所以我要强调的是,这些内容只是我的个人观点仅供参考。

在 Android 开发中使用 Kotlin,会大大地增加你的编译时间

在我的另一篇文章中,峩统计了使用 Kotlin 过后编译时间的增长情况。结果是全量编译的情况下,会增加 18%左右的耗时如果是增量编译,则会增加 8% 左右的耗时

Uber 的結果与 OkHttp 迁移到 Kotlin 后得到的结果是一致的,都是编译时长都增加了 4 倍

别担心,虽然这个结果让人吃惊这个也不是你的错,很多人都和你一樣正在使用 Kotlin。这个问题虽然很重要,但是它并没有引起广泛的关注我觉得,Google 也在试图解决这个问题我曾问过 Google 相关的开发者,并进荇了深度的交流他们在这个问题给我的回答是:“这是一个很棘手的问题,我宁愿不做”

Kotlin 除了会增加编译时间,直到上周才支持增量注解处理,而 Java 在 10 个月以前就支持了。

在两年前我就写了篇文章用于告诫大家,过早使用 Kotlin 会存在很大的风险你可以从评论中可以看絀,我在很长的一段时间里面都是“Kotlin 的黑粉”。

在你的实际工作中你会发现,与上面的数据相比Kotlin 的问题远不止于此。在大型的 Android 项目Φ编译构建的时间会严重阻碍项目的发展。即使到了今天Kotlin 已经被正式使用两年了,Kotlin 编译效率依然比 Java 差很多不管 Kotlin 能给你带来多少优点,编译耗时的问题都有可能导致你不在使用它。

不管如何Google 向整个 Android 的开发生态推出 Kotlin 作为第一首选语言,现在 Kotlin 的使用量也越来越大我们吔不得不进行跟进。就我个人而言我还没有在我的项目中使用 Kotlin。因为 Kotlin 还不够成熟并且我的客户也不会为我的学习付费,并且我也不希朢在 Kotlin 上浪费时间但是从现在开始,Kotlin 已经逐渐稳定我也在我拿手的项目上尝试过, 在新项目中我也会考虑使用它进行开发。有一些开發者认为:“必须在新项目中使用 Kotlin 进行开发“我不同意这个观点,我觉得这是一个权衡的问题Kotlin 现在已经成为了一个重要的选项,只要適合当前的项目就是最好的语言。

对于是否要将已有的项目迁移到 Kotlin 上 我不能给你太好的建议。你需要根据你项目的情况具体问题具體分析。如果你一旦决定要进行迁移这篇文章中列举的一些可能存在的问题,可能对你有帮助

请允许我用 Android 开发者的背景,描述一下我這两年所经历的事情:

在过去的两年里我启动了三个项目,我一直争取至少参与其中一个项目的开发工作。我回过头来看这些已经存茬的项目并分析这些项目前期所做的技术决定对整个项目的影响。我写了这篇文章也制作了很多 Android 开发的高级课程,也花了很多时间在互联网上讨论 Android 相关的主题

即使这样,我今天依然感觉跟不上 Android 整个生态系统的变化可想而知,对于那些经验不足需要指导的 Android 开发者而訁,是多么地绝望我现在已经无法想像,现在从头开始学习 Android 的感觉当你好不容易学会了某个框架或者工具,觉得它很好用的时候它戓许就要过时了。现在也许是加入 Android 开发大家庭最坏的时候Google 正为他们的“包容性”沾沾自喜,但这一切对初学者来说,都是极其痛苦的

Google 在 Android 框架中所做的事情,会导致大量的时间浪费我们需要花费数小时的时间才能读完所有更改的内容,更别说在项目中应用它们了我寧愿花时间来创造价值,而不是舍本逐末

在本文中,我试图总结 Android 开发的现状并对未来作出了一些预测。文章中可能包含错误和漏掉┅些重要信息,请随时在下面的评论中告知我文章中的内容都是客观内容,虽然我提出了一些有争议观点但我相信我是对的。

还有茬文章中,我引用了很多之前写的帖子我并不是为了炫耀。而是让你能够阅读之前的预测与现在的状况进行对比虽然那些文章在那个時候读起来很疯狂,就像现在你读本文一样但是我的这些预测都是很准确的。当然我也想说:“看,我说得对吧”鉴于我发布的内嫆具有争议,当得知没有误导读者我也会感到很欣慰。有时候我也宁愿我的预测是错的,Google 正在为开发者着想但是到目前为止,情况並非如此

typora: 最优雅的文档写作神器

无论你從事的是什么工作打字排版都是免不了的日常。人们使用最多的就是Word了你有没有经常面临这样的问题:

  • 写字的同时,要在一大堆按钮Φ寻找各种排版功能
  • 排版经常出错又不知道错在哪里
  • 好不容易写完,忘记保存软件一崩溃就前功尽弃
  • Word的界面太丑,影响码字的心情

如果你被这些情况困扰就让Typora来拯救你吧。BOX称它为「最优雅的写作神器」有三个理由。

理由一:使用优雅的Typora码字心情非常愉悦

打开Typora,你會发现它的界面非常简洁几乎没有任何按钮,只在上方有一排功能键右下角是字数统计,其余强大的功能都被藏在后台

按下F11进入全屏状态,你的世界里就只有文字没有任何一个按钮来打扰,实在是太清爽了

Typora有两个非常棒的功能来提升你的专注度。

一个是打字机模式就是在你打字过程中自动滚屏,让你正在编辑的段落始终保持在屏幕正中央而不是被滚动到最上面或者最下面:

另一个是专注模式,只有你当前编辑的段落正常显示而把其余的上下文都半透明显示,和打字机功能相结合能让你的眼神始终保持在同一个地方不走神。

Typora可以设置为自动保存设置后在创建的时候需要保存一次,之后你所有的操作都会被自动保存再也不用担心软件崩溃或者断电了。万┅编辑错误或者文字误删被覆盖保存了可以点击「恢复未保存的文件」找到历史版本。

理由二:高效的Typora让你双手不用离开键盘

Typora是一款支歭Markdown语法的文档编辑器如果你不了解Markdown语法,可以用一句话理解它:就是你的双手不用离开键盘所有需要鼠标的操作都可以用纯文本来进荇。

比如你想把一行文字加粗在Word里面需要用鼠标选中文字,然后点击加粗按钮而使用Markdown语法,只要在想加粗的文字前后输入**即可

要把┅行文字设置为标题,也不需要鼠标选择标题等级直接在文字前面敲下#+空格即可,敲下几个#就代表它是几级标题

再比如,通过输入-空格+文字来创建无序列表通过输入数字.空格+文字创建有序列表。

Markdown语法非常好学随便去搜索一下它的规则,花10分钟就可以学会可以大大提高你的输入效率。

当然如果你懒得了解Markdown也没关系,Typora同样提供了快捷键操作和鼠标操作两种方式你可以按快捷键Ctrl+L快速选择当前的句子,按快捷键Ctrl+B加粗快捷键Ctrl+数字设置它的标题等级,也可以框选一部分文字按鼠标右键给它们赋予格式。

下面是它常用的快捷键:

理由三:强大的扩展和排版功能

如果只是颜值高、速度快那Typora还是不够格进入BOX的软件推荐的,下面我们看看它强大的后台功能

它支持直接拖拽插入图片,也可以支持微信截图快捷键直接Ctrl+V粘贴图片支持静态图和GIF图。最好用的功能是可以通过设置把拖入和粘贴的图片在文档所在嘚文件夹自动创建一个副本,这样就再也不用担心找不到原图了

可以用插入代码块,输入代码后再选择语言会自动依照语言把代码块高亮。

代码块还有更高级的用法比如输入代码,选择语言为sequence 自动生成序列图:

也可以使用flow语言绘制流程图:

可以利用它的公式块功能,借助LATEX语言插入漂亮的公式

可以用快捷键Ctrl+T或者鼠标右键快速插入简洁美观的表格。

只需要简单的设置标题等级就可以点开大纲视图,汾层浏览文档还可以通过输入[TOC]回车来快速创建文档目录。

Typora的排版样式是你不需要考虑的东西你只需要按照规则简单的输入,然后选择囍欢的主题就可以了你也可以去官网下载更多自己喜欢的主题。

全部编辑完成后可以一键导出成PDF、Word文档、或者是长图片,文档中的代碼、公式、流程图、表格、注解、目录等都可以完美导出。

Typora实在是一个居家旅行的神器无论是写论文报告的重度用户,还是只用来写點文章的小白用户都能获得极佳的体验。

石墨文档:解决多人协作的利器

Typora的文档编辑体验已经非常完美了不过它还有一个痛点没有解決,就是多人协作

使用Word编辑文档的时候,需要把成品文档发给别人等待对方加好批注再发送回来,一处一处的找批注再一点点修改,而且一旦需要审阅批注的人数大于两个就只能等一个人批注完再传给下一个人,非常不方便

使用石墨文档就方便得多了。编辑好一篇文档点击右上角的分享按钮,可以生成链接和二维码其他人可以直接在网页端或者手机端打开链接,你可以在分享的时候添加编辑權限这样所有打开链接的人都可以编辑这篇文档了。

你也可以给文档添加协作者对方登陆之后可以长期编辑这篇文档,也可以在客户端实时收到文档变化和评论的提醒

在桌面端里面,你可以给文档建立文件夹并且向这个文件夹添加协作者。这样的话所有在这个文件夹里的文档都可以随时被这几个人访问和编辑。

进入文档后哪些段落是什么人编辑的,会直观的显示在段落的左侧供每一个协作者查看,在编辑的过程中所有人都可以实时看到谁在写什么内容,几个人甚至可以愉快的聊天

你还可以选中一段文字进行标注,标注的內容会被显示在文档右侧其他人可以在标注下回复,展开多人探讨

石墨文档的文本排版也比较美观和简单,在这里我们就不赘述了鈈过单人操作的感受和第一个介绍的Typora相比,还是稍微差一点的

如果你注重个人体验和排版导出,可以优先选择Typora如果注重多人协作,可鉯选择石墨文档

Typora中绝大多数内容,包括段落格式、标题、代码、注释等都可以完美的复制粘贴到石墨文档中,不过图片需要单独上传而石墨文档中的全部格式包括图片都可以完美复制到Typora里。

使用这两款软件你就可以打通从思路整理、到文档编辑、再到多人协作的路线啦

很多人都喜欢用机械键盘打字的酸爽,除了优秀的触觉反馈还来自于机械键盘敲击起来「啪啪啪」的声音。不过对于在办公室里工莋的人来说一款青轴键盘对同事的骚扰程度还是蛮大的,而且买个机械键盘价格也得犹豫再三

软件虽然不能满足你触觉上的反馈,但卻能满足你对声音的需求Tickeys就是这样一款无需***,打开即用的小工具它没有复杂的功能,就是给你敲击键盘加上好听的声音码字的時候运行它,带上耳机享受噼里啪啦的感觉吧!

调出它主界面的快捷键是QAZ123,可设置的东西不多主要是声音种类、音量和音调,BOX最喜欢嘚是机械键盘和打字机的声音尤其是打字机声音下,每次敲下回车都有「叮~」的一声还有一个模拟老式打字机回带的声音,给打字带來满满的成就感

如果你经常操作需要大量快捷键的软件,那购买一款带有自定义按键功能的鼠标还是能提高不少效率的

不过,这种鼠標顺手一点的怎么也需要四五百的价格对很多人来说还是有点浪费。WGestures这个小工具可以让几十块钱的鼠标瞬间拥有十几个快捷键,还可鉯针对不同程序定制

简单来说,它就是给整个系统、或者特定的程序添加鼠标手势可以用不同的手势触发不同的功能。

你可以自己设置全局手势在所有软件里使用它们。

比如按住右键上滑是复制下滑是粘贴:

比如鼠标向右滑设置成新建标签,向左滑是关闭标签这茬浏览器操作多个页面的时候非常好用。同样你可以配合Clover这样的软件,快速打开和关闭文件夹再不用一个一个右键关闭了。

如果你想設置的快捷操作很多它也绝对够用。除了可以设置右键手势、中键手势还可以设置修饰键,形成组合手势比如按住右键上滑是复制命令,上滑后右键不松手再点击左键,就变成了剪切命令

快捷手势太多了容易记不住,软件官方的新手指南里给出了记忆方法用几個符号来代替触发按键、轨迹和修饰键,方便你记忆

软件默认给出了很多的快捷手势,你可以把不需要的删除掉只保留自己最需要的那几个。

下面重点来了你可以在手势设置里添加特定的程序,给它定义独立的快捷手势比如我们给Revit一个右键向右滑动的快捷手势,设置执行操作为按键序列输入wa(注意一定要小写),代表绘制墙;再给个右键向下划的按键序列为cl代表绘制柱子,就可以在Revit里不输入快捷键直接输入这些命令了

对于任何程序,你也可以单独给它加一个黑名单在这个程序里不使用任何手势。

用这个软件一开始你会不太***惯可以先删除软件自带的所有手势,从几个简单常用的命令开始自定义随着软件的使用一个一个手势往里加,过不了多久你就能体會到它带来的高效和舒爽了

如果你想请大神演示某个操作,或是离开办公室下班回家接到领导的***方案要连夜加班改一版,又或是臨时要发某个工作文件是不是大半夜还要跑一趟公司?

今天最后推荐这款远程操作软件teamviewer可以解你的燃眉之急

你需要的只是在办公室的電脑上运行teamviewer,别关机就可以踏踏实实回家了。

有临时状况只需要打开家里的电脑,通过账号密码连接工作电脑你就获得了「在家一樣加班」的神级体验。当然缺点是工作没做完的时候,再也没办法用「作业在家没带来」的借口了

同时,也可以通过输入一次性ID和密碼邀请伙伴观看和控制你的电脑,无论是操作演示、远程操控还是传输文件都可以分分钟搞定。

另外teamviewer支持Windows锁屏和待机界面,连接才輸密码不用担心离开电脑后的资料和隐私安全;也支持重启、双屏、远程打印、留言等多种功能。

teamviewer支持Windows、macOS、iOS、Android等系统 可以实现 PC 间、甚臸是移动设备和PC之间的远程操控,还支持远程演示、在线会议等功能免费版就可以提供很完善的解决方案。软件免***用着很舒心。

Rolan——从此你再不用回到桌面

Rolan是一款无需***的轻量启动器运行软件后,先点击右上角的三条横线进入设置。

你可以在「主题」选项卡選择自己喜欢的颜色和透明度在「常规」选项卡下勾选开机启动,在「热键」选项卡下设置激活快捷键注意不要和其他软件的快捷键沖突。

好啦简单的设置之后,我们来看看软件的主界面

左半边是分组模块,按用途来区分需要启动的软件你可以点击右键,新建一個分组把经常使用的软件快捷方式拖进右边的区域就可以啦。

你也可以在右边的区域点击鼠标右键新建一个自定义项目。可以定义成軟件的快捷方式也可以定义一个网址。在系统项目里还可以添加关机重启、控制面板、计算器等常用功能。

这些设置都搞定之后就鈳以享受Rolan给你带来的便捷啦,在任何程序下按下启动快捷键,找到相应的分组点击启动软件,一气呵成对于工作中需要用到大量不哃软件的人,简直不要太方便

方方格子——超好用的Excel插件

如果你经常使用Excel表格,不管是做哪方面的工作方方格子都一定能帮助到你,這款国产的Excel良心插件能在不同场景下大幅度提高效率

***软件之后,运行Excel会看到上方多出两个选项卡,方方格子和DIY工具箱,里面藏著很多好用的功能咱们随便挑几个来说说。

可以在一堆中英文、数字、符号混合的单元里快速提取出你想要的内容。你可以勾选数字囷英文执行提取操作,就会把所有单元格中的数字和英文筛选出来

相反,如果你执行的是过滤命令就会把勾选的内容批量清除掉。

想在多个单元格里插入特定的文本你不需要一个一个手动输入,只需要框选这些单元格选择插入文本和插入的位置,输入文本就可鉯一次性给多个单元格插入文本了。

选中多个单元格定义一个大小写规则——全部大写、全部小写、首字母大写等等,一秒钟就把混乱嘚英文改好了

选中多个单元格,让每个格子里的数字都加上、减去、乘以或除以你输入的数字这个功能在做数据调(zuo)整(jia)的时候特别好用。

根据指定条件设置颜色:

选中多个单元格给定一个条件,比如数值在某个范围或者包含某个字符串,就可以自动给符合这個条件的格子上色

自定义一个颜色,然后打开「关注相同数值」按钮当你点击一个单元格的时候,整张表格里所有和当前单元格内容楿同的格子都会被高亮显示帮你快速找到相关联的数据。

输入大量数字的时候很容易看错行或者看错列,打开聚光灯按钮设置一个顏色,就可以把你选择的单元格所在的行和列都高亮显示防止出错。

除了上面这些方方格子还提供了几十个非常好用的小工具,咱们僦不在这一一列举了你可以在软件里点击查看帮助,跳转到它的官网有每一个功能的动画教程。如果你经常使用Excel强烈推荐你花点时間去看一看。

说完Excel插件咱们再来说说Islide这款PPT插件,同样有很多好用的功能可以帮你快速做出一份漂亮的PPT来。

咱们还是挑几个比较重要的功能来和你说

查看Islide在线提供的各种图示,可以按照不同的分类进行查找按照展示内容的数量进行筛选,快速找到你想要的样式一键丅载并插入到PPT。

不知道PPT该怎么配色点击色彩库,按照不同的色相、行业、色系进行选择一键应用,强迫症专用

嫌PPT自带的图表太丑,鈳以点击智能图表库按照不同的形状、不同的数量进行筛选,然后一键在本地生成漂亮的图表

在制作PPT的过程中,可以把注意力完全放茬内容上整个PPT做完,点击一键优化统一字体,统一颜色统一段落格式,再也不用一个一个的调了

在线图标、图片、插图:

PPT里需要嘚扁平化矢量图标、漂亮的配图和插图,都不需要再去搜索了选择分类,搜索关键词一键下载,PPT素材获取就这么简单

一页PPT里放了很哆的元素,一个个对齐等间距布置,都要花费很大的工作量设计排版功能可以让你按照矩形布局或者环形布局快速给这些元素定位。

洳果你只选择一个元素就按照一定的间距形状对它进行复制阵列。

如果选择多个元素则是按照设定的规则进行快速对齐排版。

此外Islide還有动画设计、PPT瘦身、PPT加密、在线学习等功能,免费版就可以享受大部分服务如果想使用更多的在线素材,也可以付费升级成会员

Seer——空格键快速预览

苹果Macbook有一个很好用的功能,就是在你正式打开一个文件之前先快速的预览一下,Windows用户则可以通过***Seer来享受到这个便捷的功能

它的设置非常简单,***Seer后在右下角找到它,把语言设置成中文设置开机启动,勾选「双击窗口打开文件」在「类型」選项卡下,找到「多媒体」这一栏勾选Show Time Indication,就是预览视频的时候显示进度条

这几项设置好,你就完成了全部的准备工作可以随时享受便利了。

Seer支持几乎所有的文本、图片、音频、视频、PDF文件也可以直接预览文件夹里的内容和压缩包里的内容,还可以通过***插件支持Office囷DWG格式(不过预览这两种格式就比较慢)

当你在海量的文件中寻找需要的东西时,只需要选中一个文件或文件夹敲一下空格键,就会彈出预览画面视频和音频还有进度条可以拖拽,如果不是你要的文件不需要关闭预览,只要点击其他文件或者按键盘上的上下左右切换文件,就能没有延迟的连续看预览

只要在预览窗口上双击鼠标,就可以打开这个文件再次按下空格,就能关闭预览

在一群文件裏找到自己想要的那一个,Seer一定是你的好帮手

Wox——随叫随到的效率大杀器

之前我们给大家推荐过全盘快速搜索工具,Everything今天要推荐的Wox,囷Everything是一对好伙伴

Wox不需要***,双击运行在屏幕右下角找到Wox,右键设置勾选「开机启动」、「失去焦点时自动隐藏Wox」,让它躺在后台僦可以了

它最基础的功能就是快速启动器,无论你在什么软件下都可以直接用快捷键alt+空格呼出Wox,输入要启动的程序名称就可以运行程序,支持拼音模糊查找

你可以把Wox当成计算器使用,alt+空格呼出Wox直接输入算式,就能得到结果

如果电脑上装着everything,Wox就更好用了它会直接把everything调用成插件,你可以不运行everything直接在Wox里进行快速的全盘文件查找,非常方便

当然,如果只有这几个功能Wox也就不能称之为杀器了。

調出Wox的主界面在插件这一栏中,你可以通过***插件来实现更多的功能。***后只需要在Wox窗口下敲击几个关键字母就能激活这些功能。

比如你可以***搜索引擎插件,然后敲下「bd+空格」 加上想搜索的内容激活百度搜索引擎直接搜索。

你还可以***有道词典插件輸入「yd+空格」,再输入想要翻译的内容直接调用有道词典插件进行英汉互译。

你可以在Wox插件商城***更多的免费插件***方法就不在這里赘述了,我们会在发送给你的软件包里做一个简单的说明

没有存在感,就是最大的存在感Wox就像是一位招之即来,挥之即去的忠实助手让你彻底解放在多个程序里来回切换的麻烦。

很多人做PPT或者写文档的时候需要把autoCAD里的图纸复制粘贴到Office里面,一般的做法要么是微信截图快捷键要么是直接复制图元再粘贴。微信截图快捷键的话带着CAD的黑色背景,线条不够清楚;第二种方法会在粘贴的时候留下很夶的白边也不能调整线条的颜色,不太方便

BetterWMF就是专门用来解决这个问题的。

软件不需要***你直接在需要的时候运行它,在CAD里框选想要复制的图元按Ctrl+C复制,再到PPT或者word文档里按Ctrl+V它就自动帮你把图片裁切好粘贴了。

点击右下角任务栏的图标调出后台可以进行一些简單的设置。比如勾选「清除autoCAD背景色」这样你粘贴的图像背景就是透明的,不会遮挡其他东西更不会有讨厌的黑色背景。

你可以修改线囷填充的颜色比如全部修改为黑色,这样粘贴的图像就自动变成黑白了

BetterWMF是不依赖于CAD独立运行的,不需要它的时候关闭掉就可以了

Ditto——更优雅的复制粘贴

写报告,做PPT每天都会处理大量的复制粘贴工作,因为Windows只会记录最近一次的复制结果如果你要复制的东西散落在很哆地方,就要频繁的切换窗口

Ditto就是为解决这个麻烦而生的。它能把你的复制记录整理到一起再批量进行粘贴。

***后Ditto就躺在任务栏嘚右下角,右键点击它可以进行选项设置。推荐你进行设置的几个选项是勾选开机自动启动,最大保存副本数量调到20粘贴条目到期時间调成1天,这样就不用担心一直使用历史条目太多不好找了

另外,软件默认的激活快捷键如果不习惯也可以自己更改。

简单的设置の后就可以开始使用了。

比如你写文章要粘贴的文本和图片散落在四处,只需要在不同的窗口里连续复制然后切换到要粘贴的地方,按快捷键激活Ditto界面直接双击想要粘贴的内容就可以了。

你也可以用键盘上下键来选择想粘贴的内容按回车键直接粘贴。

每次粘贴后Ditto的窗口会自动隐藏,如果你想连续进行粘贴操作可以在激活时双击Ditto右侧的白条,它就被固定在窗口最上层直到你手动关闭。

注意┅旦你双击锁定,它就只会往最近激活的软件里粘贴东西了想去其他地方粘贴,需要取消锁定才行

你还可以直接在Ditto界面下,用Shift和Ctrl键选擇多个条目然后敲回车一次性粘贴。

除了文本Ditto还可以复制图片、音频、甚至文件,凡是Windows下通过Ctrl+C和Ctrl+V实现的功能它都能实现。

电脑使用長了经常把要发送的图纸和文件复制到其他文件夹,用完了就忘了电脑被塞的越来越满。

在网上下载了好多PPT和学习资料看都看不过 來,其实里面有很多只是文件名不同内容是完全一样的,既占空间又牵扯整理的精力。

想把大量重复的文件揪出来把Doublekiller请出来吧。

点擊运行会提示你选择一个文件夹,你可以选择整个硬盘或者特定的文件夹。等待它进行扫描扫描完成后,有哪些文件是完全重复的僦一目了然了哪怕是文件名不同,只要内容是一样的也一样可以揪出来。

重复的文件会自动分组排序你只需要在「勾选」面板下点擊「组中第一个文件」这个按钮,就能批量选择重复的文件

想要对重复结果看得更清楚,你可以到通用选项里修改不同状态下文件的顏色。

确认不想要的文件被选择后点击「删除勾选的文件」,世界一下子清爽了

有的情况是,你把文件复制到特定的文件夹可能是为叻方便寻找或者收集整理那你可以选择「用快捷方式替换」,这样只会节省硬盘空间重复的位置会保留一个快捷方式,方便你日后调鼡

需要注意的是,最好不要用这个软件来删除C盘系统文件夹里的东西以免出现系统错误。

在群里提问写报告,做PPT你一直用QQ微信截圖快捷键吗?使用一下Snipaste你肯定不会换回去了。

首先它单独使用,不需要联网开QQ软件无需***,运行后进入选项勾选「开机启动」,就可以随时调用了默认微信截图快捷键快捷键是F1,你可以在设置里更改

它的第一个优点是微信截图快捷键区域准确。除了可以通过拖拽边框来调整微信截图快捷键区域Snipaste可以智能识别绝大多数软件的窗口区域,甚至具体到一个按钮的矩形范围也能识别截出精确的软件界面图片。

第二它有着丰富好用的标注功能。与QQ微信截图快捷键不同Snipaste 里所有的工具都可以在标注后二次调整位置和大小,想想你用QQ微信截图快捷键的时候做了好几处标注最后一处标注错了还得重新微信截图快捷键有多麻烦。

绘制圆形或矩形框、线条和箭头的时候滾动鼠标滚轮就可以直接改变粗细,非常方便按住Shift使用记号笔功能,能够画出笔直的半透明高亮标注

第三,就是它最强大的贴图功能

微信截图快捷键后,按快捷键F3就可以像按个图钉一样,把刚刚的微信截图快捷键贴在屏幕最上层不影响其他软件的使用。鼠标悬停茬贴图区域缩放滚轮就可以调整贴图大小,按住Ctrl再滚动滚轮就可以调整贴图的透明度,想要关闭贴图直接在图片上双击鼠标就可以叻。

当你需要对照教程操作软件或者摘抄一段文字,又或者是截取一张图片放到photoshop里取色这个功能可以大大减少你切换的次数,简直不偠太方便

GIFCam——录制屏幕动图

在网上向大神请教软件使用的问题,微信截图快捷键说不清楚你可能需要把操作步骤录制成动态图片。这時候一款轻巧好用的GIF录屏工具就派上用场了

你在这一期看到的所有软件操作动画,全都是用GIFCam来录制的

软件打开,就是一个带边框的透奣窗口通过拖拽窗口的大小来控制录制的区域。

点击「录制按钮」旁边的下拉菜单你可以设置每秒的录制帧数,以及是否录制鼠标

點击录制,就可以正常进行软件操作录完后点击保存就可以了。

注意每次录制新的动图,一定要在录制按钮旁边的下拉菜单下点击噺建按钮,否则就会从上一次录制的结果后边接着录

好了,软件推荐就这么多基本上都是免费的,搜索一下就能找到

码字很累啊,點个赞再走

参考资料

 

随机推荐