专栏首页Android技术分享我的安卓App开发之旅:旧手机变废为宝做一个震动App
原创

我的安卓App开发之旅:旧手机变废为宝做一个震动App

起因

最近发现给老爸买的安卓手机,电池出现了点问题,充电只能充到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 哦!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android免打包多渠道统计如何实现

    我们都知道,Android 市场被分割成几十个应用商店渠道,程序员给渠道打包、更新是一件异常繁杂又不得不做的工作,但现在有一种快捷灵活的免费多渠道统计方式,能最...

    Android技术干货分享
  • Android:这是一份全面&详细的 热修复 学习指南

    热补丁修复技术在Android 圈非常火,大量的热补丁方案开始大量涌现 本文将为你全面介绍热补丁的相关知识(原理、主流库使用),希望您会喜欢

    Android技术干货分享
  • Android 多线程误区,我不信你们都懂!

    前段时间在组内做了一下现有的代码分析,发现很多以前的legacy code多线程的使用都不算是最佳实践,而且坏事的地方在于,刚毕业的学生,因为没有别的参照物,往...

    Android技术干货分享
  • 微信小程序组件化开发框架wepy

    达达前端
  • 小白也能看懂的BP反向传播算法之Further into Backpropagation

    在上一篇文章小白也能看懂的BP反向传播算法之Let's practice Backpropagation,我们计算了一个带sigmoid函数的嵌套网络的反向传播...

    desperate633
  • 深度学习之神经网络(反向传播算法)(三)

    神经网络最开始是受生物神经系统的启发,为了模拟生物神经系统而出现的。大脑最基本的计算单元是神经元,人类的神经系统中大概有86亿的神经元,它们之间通过1014-1...

    李小白是一只喵
  • 机器学习课程_笔记02

    jeremyxu
  • 5.1.CentOS@安装JDK1.8图文教程

            网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-download...

    itjim
  • 转录因子详细介绍(motif)

    TF: transcription factor转录因子 TFBS: transcription factor binding site转录因子结合位点 T...

    Y大宽
  • SpringBoot如何做到自动帮我们创建RabbitMQ的Queue和Exchange

    解释:在连接工厂connectionFactory中注册了一个监听器,在监听器中执行了initialize()方法。

    喜欢天文的pony站长

扫码关注云+社区

领取腾讯云代金券