25

起因

最近发现给老爸买的安卓手机,电池出现了点问题,充电只能充到60%,还每次都弹出这烦人的警告。感觉这是设计好的,整整好好用了3年,这未免有点太巧了吧?

算了,直接给老爸换了个新手机,我就把旧的留下了。无奈旧手机太多,能用的旧安卓机就这一个,总觉得不废物利用一下,很是不爽。

于是,我想起手机有震动功能,要是做一个震动App🌵,或许能变废为宝?😏

准备

好,说干就干,于是我开始了第一次安卓App的开发之旅。

首先是要到官网去下载 Android Studio,这步需要一定的上网技能,建议把技能点数加满。

花了大约1分钟的时间,终于把 Android Studio 下载下来了,随后安装过程也相当简单,装完后,选了我喜欢的浅色主题,应该就可以用了。

设计

实际开发前,理论上还需要做一些设计工作,但这实在不是我的强项啊!界面设计就算了吧,App里就一个开关,打开就震动,关掉就停。

不过图标好歹还是要有一个的,但是找了全网,没有太合适的,只能在 Material Design 官网找一个图标的设计模板,自己去做一个。

无奈没有任何基础,用 Ai 硬撸了两个小时,终于做出了一个稍微满意的图标,当然,是以蓝色为主。

开发

接下来就可以进行开发了,打开安装好的 Android Studio,创建一个新项目,随便选了一个 Empty Activity。

然后要进行一些配置,名字还是要好认的、比较洋气的 Vibrator,包名就随便起一个吧。语言嘛,纠结了一下,最后选择了没用过的 Kotlin,尝尝鲜。SDK 就定为 API 21, Android 5.0 的吧,现在用 4.x 的应该不多了,5.0 的 API 也够用。

然后它就给我自动创建了一些文件,刚开始 Gradle 会做一些准备工作,下载依赖花了一些时间,这步也需要强大的上网技能。

接上手机,开启 USB 调试模式。一般 “开发人员选项” 这页,是通过多次点击系统版本号激活的,感觉有点像游戏秘籍啊,这技巧还是以前刷机积累下来的经验。

打开了USB调试模式并连接上手机后,Android Studio 就多出来一个运行目标了。

我先点个运行试试,通过手机上各种允许操作,我的App装上去了,虽然还是空白,图标也不太好看,但起码能运行了起来。

接下来开始硬撸代码,先在页面上,把那个 Hello World 换成我的 Switch,暂且就叫 switchButton 吧,把文本去掉,弄上跟 Hello World 一样的上下左右约束。一切都是可视化的,鼠标操作,找回了一点以前 Netbeans 编辑 Swing 界面的感觉,现在还有了深浅两种模式的预览。

接下来该考虑的就是怎样在代码里获取到这个 Switch,网上查了一下,Kotlin 里一句 findViewById<类型>(R.id.名称) 即可,代码提示还能自动补全按钮名称。紧跟着写一段按钮状态变化的事件监听,具体内容先空着,等会用到。

最后就是实现具体的手机震动了,老规矩,网上搜一搜,搜到了一个 StackOverflow 的回答,应该挺靠谱。简单来说就是在 AndroidManifest.xml 加上权限声明,然后通过 getSystemService 获取震动服务,最后,震它!

StackOverflow 上的那个例子虽然是 Java,改成 Kotlin 应该也不难,尝试了一下,还真和 AnctionScript、Swift 有点像,类型后置、as 关键字。最后代码被我写成了这个样子,虽说 vibrate 这个方法 Android Studio 提示我说已经被废弃了,但先这么用着吧,应该可以用吧?

这期间 Android Studio 有个体贴的小细节,都不用我去手动改权限声明的配置文件,鼠标点一下他就给我加上了。

噢,最后别忘了我的App图标。

在 AndroidManifest.xml 里配置了一下,行号后面都把图标给显示出来了?😏

完工

运行了一下,完美。我还在想,应该怎么能展示震动呢?放了个小东西在屏幕上,或许你们能感受到吧。

这里放不了视频吗?放个链接吧

简单的震动App这就完成了,或许以后还能加入各种风格的震动:缠绵、激情、点阵式……

但是这手机震动也太弱了,最后,我想到了身边的 PS4 手柄,这形状也比手机要好的多……! 🙈

源码和 apk 我都放到 github 上了,感兴趣的同学,点击领取,别忘了点个 follow 哦!


learning
2.6k 声望798 粉丝

Phi