锤子发布会吹得天花乱坠的 One step 到底是个什么东西?开源的意义又在于什么? 这篇文章让我们一探究竟,并实现一个简易版的 One step

什么是 One Step

官网的解释是:

通过拖拽完成将信息发送至应用或联系人的动作,节省了在不同应用之间切换的诸多步骤,第一次打通了手持设备中应用间的边界

将信息发送至应用或联系人,这个就是 Android 的分享模块,所以发布会的演示案例是拿 iPhone 做对比,因为锤子只是换了个交互方式,发布会演示的功能在其他 Android 系统上都能用,当然啦这个交互是值得肯定的。

BTW: 第一次打通了手持设备中应用间的边界 这个会不会违反广告法?

如何实现分享?

都说这个是 Android 的一个模块,当然是看 Android 官网的课程啦

https://developer.android.com/training/building-content-sharing.html

如何实现拖拽动作呢?

大概有两种方式:

  1. Android 原生的 Drag and Drop API
  2. 通过悬浮窗模拟

Drag and Drop API

用原生 API 有个好处是,自带一个 ClipData 可以很方便的把数据从一个控件扔给另一个控件。
不好的一点是弹起和放下没有动画,切弹起的视觉也效果不太好,不管你在什么控件的什么位置出发拖拽,控件都会弹到你手指中心,而不是直接在原位弹起。

可参考:

悬浮窗实现 Drag and Drop

使用悬浮窗实现可以实现动画效果,且直接在控件原位弹起,交互体验会更好。

项目源码:SimpleOneStep


上面两种方式都有源码,感兴趣的开发者可以参考参考,其实可以看出并没有什么高大上的黑科技。不过要把整个流程打通还是需要不少工作的,毕竟从一个 Demo 到一个产品,中间的坑还是蛮多的,所以还是期待锤子的官方开源吧。

关于开源

其实小米是最早开源项目的手机厂商,安卓开发早期小米开源了不少项目小米便签,小米文件管理器,小米指南针,不过后来开源的就比较少了,希望锤子这次能做个榜样,让更多的手机厂商为行业做出贡献。