android剪贴板历史,可能是史上最便捷的剪贴板应用 -- Native Clipboard #Android

▎一切从「点两下」开始

与其他剪贴板增强应用一样,原生剪贴板最主要的功能就是记录下你复制的文字。但是与其他剪贴板增强应用不同的是,原生剪贴板的启动方式十分迅速而且顺手,你只需要在输入框中轻点两下即可调出剪贴板界面。当然除了点两下之外,还有「轻触 + 长按」和「三击」这两种操作方式可供选择。我个人比较推荐「双击」的打开方式,因为实在是太顺手了,基本上没有任何的学习过程,用起来真是爽翻了!

70173309_1

▎并不是只有「点两下」那么简单

除了「点两下」,原生剪贴板还提供了其他的多种手势操作。长按某一个剪贴条目就可以打开它并进行编辑,要想删除某个条目只需要滑动它就可以了。如果想要删除所有条目,只需要点击一下剪贴板右上角的清除按钮就好了。如果你复制的内容比较多,找起来比较麻烦,那你只要点击右下角的有个搜索图标的浮动按钮就可以进行搜索。

70173309_2

▎剪贴,而又不止剪贴

原生剪贴板能够做到的可远远不止记录手机复制内容而已。不知道大家还记不记得老罗在去年坚果发布会介绍 Smartisan OS 2.0 新功能的时候提到的一个「快捷短语」的小功能:在系统内任何文本输入界面长按即可呼出「快捷短语」按钮,点击按钮可在弹出的列表中选择预先输入的常用短语(节选自 Smartisan 2.0 正式版更新日志)。作为一个正在使用坚果手机的同学,我表示这个功能真是太好用了!像输入一些日常经常需要输入的长串文字比如说地址、邮箱账户、学号等等简直不要太方便!现在,只要你安装了原生剪贴板,非锤子系统的手机也可以使用这一个炒鸡好用的功能了!你可以点击左上角的加号按钮,新建一个条目,把你常用的一些文字加到剪贴板中,并在标题处写好标题,保存后点击一下上方的图钉按钮把这个条目固定住,下次要填写地址的时候只要点击一下剪贴板中的「地址」条目,你的地址就会自动复制下来了,你做要做的只是粘贴而已。在这里要提醒大家一下,千万别输入像什么密码和银行卡号这类东西,万一手机丢掉了,后果可是不堪设想~

70173309_3

▎谁说剪贴板就不可以美美哒

原生剪贴板还提供了许许多多的自定义选项。剪贴板的颜色主题可以根据自己的喜好自由搭配,如果自己搭配不好的话也没关系,原生剪贴板还提供了除了原生主题以外的两种精致美观的主题:「LG Black」和「Dark Material」。

70173309_4

文本大小和每行显示的列数也可以自己调节,我个人比较建议将字号调小一些,并将列数调为三列,看起来比较精致而且还可以显示更多的内容,而且默认的字号实在是有点大~~剪贴板的尺寸也可以调节,你可以把剪贴板的高度调成和键盘一样的高度,这样双击唤出剪贴板的时候看起来一点都不违和。最最贴心的是,原生剪贴板还提供了专门的调节页面让你比着键盘高度来调节剪贴板的高度,简直是强迫症患者的福音!!!!!

▎Chrome + 原生剪贴板 = 方便

原生剪贴板针对 Chrome 浏览器还有特殊的优化。当你在手机上面打开 Chrome 的时候,原生剪贴板会自动变成一个紫色的粘贴气泡,点开气泡之后,你只需要在剪贴板中选中你想要输入的内容,这个内容就会自动输入到文本框中,省却了再次粘贴的操作,十分方便!

70173309_5

除了常规版,原生剪贴板还有对应的 xposed 模块。xposed 版的原生剪贴板更加强大,xposed 版的原生剪贴板支持 Android 4.0 以上的系统版本(常规版支持 Android 4.3 以上的系统版本),xposed 框架版的原生剪贴板支持除了 Chrome 以外的更多的浏览器的快捷操作,而且 xposed 框架版的原生剪贴板还可以调整剪贴版的位置,有条件的同学不妨试用一下。

————————————————

本文来自最美撰稿人 @Aloha Charles

70173309_6

应用信息

Android

2.0M | 免费 | 4.0.3及更高版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android剪贴板是一个非常常用的功能,它可以帮助我们复制、粘贴文本、图片等内容。下面是Android剪贴板的源码详解。 Android剪贴板的源码主要分为两部分:Framework层和Service层。 **Framework层** Framework层主要负责实现Android剪贴板的核心功能,包括接口定义、数据存储和剪贴板监听等。 1. 接口定义 Android剪贴板的接口定义在android.content.ClipboardManager类中,其定义了一系列操作剪贴板的方法,如下所示: ``` public class ClipboardManager { /** * Set the contents of the clipboard to the specified clipboard data. */ public void setPrimaryClip(ClipData clip) { ...... } /** * Get the contents of the clipboard, which includes the primary clip and any clipped data. */ public ClipData getPrimaryClip() { ...... } /** * Add a listener to be notified when the primary clip changes. */ public void addPrimaryClipChangedListener(OnPrimaryClipChangedListener listener) { ...... } /** * Remove a listener that was previously added with {@link #addPrimaryClipChangedListener}. */ public void removePrimaryClipChangedListener(OnPrimaryClipChangedListener listener) { ...... } } ``` 2. 数据存储 剪贴板的数据存储在系统服务中,使用ClipboardService类来实现数据的存储和读取。在ClipboardService类中,使用了一个HashMap来存储剪贴板的数据,其中键为用户ID,值为剪贴板数据,如下所示: ``` class ClipboardServiceImpl extends IClipboard.Stub { final HashMap<Integer, ClipboardData> mClipboards = new HashMap<Integer, ClipboardData>(); ...... } ``` 3. 剪贴板监听 剪贴板的监听是通过注册Broadcast Receiver实现的,在系统剪贴板数据发生变化时,系统会发送一个广播,可以通过注册Broadcast Receiver来监听这个广播。Android系统提供了一个系统级的剪贴板监听器ClipboardListener,可以通过继承ClipboardListener类来实现剪贴板监听器,如下所示: ``` public abstract class ClipboardManager.ClipboardListener { /** * Called when the primary clip on the clipboard changes. */ public void onPrimaryClipChanged() { ...... } } ``` **Service层** Service层主要负责与应用程序交互,包括提供Binder接口和实现剪贴板服务等。 1. Binder接口 剪贴板的Binder接口定义在android.content.IClipboard.aidl文件中,其定义了一系列操作剪贴板的方法,如下所示: ``` interface IClipboard { /** * Set the contents of the clipboard to the specified clipboard data. */ void setPrimaryClip(in ClipData clip); /** * Get the contents of the clipboard, which includes the primary clip and any clipped data. */ ClipData getPrimaryClip(); /** * Add a listener to be notified when the primary clip changes. */ void addPrimaryClipChangedListener(in IOnPrimaryClipChangedListener listener); /** * Remove a listener that was previously added with {@link #addPrimaryClipChangedListener}. */ void removePrimaryClipChangedListener(in IOnPrimaryClipChangedListener listener); } ``` 2. 剪贴板服务 剪贴板服务的实现类是ClipboardServiceImpl,它继承了IClipboard.Stub类,实现了IClipboard接口中的方法。在剪贴板服务中,使用了一个HashMap来存储剪贴板的数据,其中键为用户ID,值为剪贴板数据。 ``` class ClipboardServiceImpl extends IClipboard.Stub { final HashMap<Integer, ClipboardData> mClipboards = new HashMap<Integer, ClipboardData>(); ...... } ``` 以上就是Android剪贴板的源码详解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值