【Android】实现登录、注册、数据库操作(极复杂)

前言

终于录视频了

【Android】登录注册(复杂版)

原地址 点击这里

实现效果如下

登录注册实现图

项目源代码GitHub地址(源码中有详细注释):https://github.com/littlecurl/LoginDemo


### 交代一些资源

我曾经写过一篇受大家欢迎的博客:

【Android】实现登录、注册、数据库操作(极简洁)

现在这篇文章是原先那篇的升级版,实现了前后端分离。

配套的后端服务器的笔记如下:

  1. 【JavaEE】电商秒杀项目·第2章·基础项目搭建
  2. 【JavaEE】电商秒杀项目·第3章·用户模块开发

后端视频链接:【慕课网 · 免费课】龙虾三少《SpringBoot构建电商基础秒杀项目》

我就是跟着三少的视频学的注册登录的后端服务,墙裂推荐大家去听一听三少的课,讲的是相当的棒!听课的时候,记得把宿舍门关好,这样你就像我一样也是三少的关门弟子了!O(∩_∩)O哈哈~,三少还有一个升级课程,是收费的,条件允许的小伙伴可以去参观一下《Java电商秒杀系统深度优化 从容应对亿级流量挑战》

另外要想真正学会我这个登录注册的Demo推荐你看几本书:

  1. 《Spring 实战(第四版)》

  2. 《SpringBoot实战》

  3. 《看透SpringMVC源代码分析与实践》

  4. 《第一行代码(第二版)》

闲谈几句

话说去年的这个时候刚刚接触Android,有幸在一开始就看到郭神的《第一行代码(第二版)》,然后我连着一个星期,每天最早都是晚上三点睡,白天八点醒,中间不睡觉的学习Android,因为我习惯在看书的时候关上宿舍门,所以我也算是郭神的关门弟子了,O(∩_∩)O哈哈~

我在开发这个项目之前,看过大量的书籍和博客,都没有适合的源码。于是我带着问题去问郭神,我问了两个问题,郭神答了两个问题,因此我很受鼓舞,于是,又是几乎通宵了一周,做出来现在这个Demo,我就是想做出来一个别人认为是奇葩,实际是因为我没钱租服务器,而迫不得已用自己电脑当服务器来学习的项目。

郭霖聊天截图

本文知识点

  1. Gradle依赖
  2. Android布局
  3. 利用正则表达式进行输入校验
  4. 自动登录的实现
  5. okhttp异步发送POST请求
  6. Gson解析okhttp回调响应的JSON数据
  7. 在子线程中更新UI,自动填写验证码
  8. 内网穿透,真机安装运行体验

如果把这个版本的登录注册掌握了,基本的前后端联合开发就可以入门了。

正文

一、Gradle依赖

1、Gradle版本号问题

本来Android布局应该是在第一的位置来写的,但是Gradle依赖和打开项目的时间有关系,为了能节省大家打开一个项目的时间,我把Gradle放在第一位来讲了。

我用加粗的格式说一句来表示强调:当你从网上下载下来一个项目时,先别急着用AndroidStudio打开。

在打开一个新项目之前,最好先手动修改两个版本号。如下图所示2927

0915

对应上面两个文件,在目录中显示如下

4702
怎么改呢?很简单,就是你先打开一个你以前写过的项目,进去看看你电脑能轻松打开的项目的这两个版本号分别是多少,然后再用记事本打开从网上下载下来对应的文件,修改版本号为你本地已有的版本号,最后再打开项目

之所以这样做是因为,如果本地没有对应的Gradle,下载的话很慢,而且一旦下载,很难暂停。不如花两分钟手动修改一下版本号节省时间。

当然,对于某些项目,有可能修改之后,导致无法编译。那样的话,没法,只能下载指定的Gradle版本了。

最后,有些人不在乎浪费时间,比如我,我经常忘记修改,导致我电脑现在几乎下遍了所有的Gradle版本,然后现在可以随意打开项目了。

2、Gradle的作用

如果学过JavaEE的同学应该都知道Maven,它可以帮我们管理依赖的jar包,实现自动导入。Gradle的作用和Maven一样,只不过Maven使用XML语言来实现的,Gradle是用Groovy语言来实现的。后者明显比前者简洁许多。Android中导入jar包依赖的地方如下,比如我这个登录注册就使用了两个第三方库okhttp和Gson,这些库都可以在Maven仓库:http://mvnrepository.com搜索到。别忘了修改后需要点一下右上角的Sync Now才能生效。

5136

3、手动刷新Gradle依赖

如果你的项目里,出现了大面积的红字,有可能就是Gradle没有工作或者工作到一半不小心被你中途暂停了。解决方法就是如下,重新让Gradle跑一下,编译项目。

3572

4、查看具体依赖的jar包

有时候我们会遇到jar包冲突的bug,或者说就是想单纯的看看我那简单的一句implementations到底导入了多少个jar包,这也是为什么Groovy语言的Gradle和XML语言的Maven相比,前者就能如此简洁。这时候,就可以去AndroidStudio右侧边栏,点开Gradle工具条,然后找到app底下的AndroidDependencies,双击运行之后,就可以去控制台查看你这个项目到底依赖了多少个jar包。
5823
学习Gradle,道阻且长,不过对于目前这个项目,我上面介绍的已然够用了。

二、Android布局

Android布局开发有两种方式,Design和Text
2253
我最近才发现有些同学因为没跟对老师,每次写布局的时候都是直接手敲代码,原因就是老师就这么教的。

其实那样并不好,一方面,虽说常用的控件就那么几个但每个控件的属性可是一大堆的,直接写代码容易漏掉某个属性;另一方面,通过Design可视化进行布局,能够获得及时反馈,而且一拖即成会感觉很爽。

所以推荐大家首先是要Design方式拖拉出来界面,如果需要微调的话,或者拖拉不能实现了,再使用代码进行改动。

因为这个属于操作性比较强的,如果有机会,我会录个视频分享给大家,这里我就给大家贴一张图吧

4428
这次登录界面我用的是ConstraintLayout,以实现不同分辨率手机的自适应

评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值