Android开发者如何写服务端代码

前言

能解决用户需求的技术,都是好技术。作为一个程序猿,尤其是移动端程序猿,大家有没有独立开发一个产品的想法?我自己一直都有这样一个想法,因为:

一个产品梦,完全按照自己的想法,独立设计开发一个应用,应该是一件有成就感的事。
技术的相通性,如果你是 Android 开发者,那你肯定对 Java 非常熟悉,如果使用 Java 的 Spring 技术栈写服务端那肯定也不是什么难事,尤其是很多的技术都是相通的,比如
各种框架的设计模式的使用
Android Jetpack Room 与 SpringBoot JPA
Dagger 与 Spring 中的 IoC
AOP 的实现,对字节码的修改,ASM、AspectJ
HTTP 请求的拦截与过滤
跨进程间的通信方式
等等
对技术的好奇心,我想我们应该不仅局限于自己的一亩三分地,当然前提是要守好自己的专业阵地,然后拓宽自己的视野,前段时间和同事讨论技术的深度和广度的问题,基于第二点,有时候广度可以拓展深度。
疫情期间更多的时间,在家办工省去了上下班的时间,有更多的时间做感兴趣的事情。
于是,作为一个 Android 开发者,我自己设计开发了个 App,本篇文章谈一谈我对于 Java 服务端开发的理解和实践。这是一个简单的签到类应用,主要的页面如下,顺便提一下,下面的 App 使用 Flutter 开发的。
Flutter 页面开发不是本篇文章的重点。下面给大家介绍下开发过程中我使用到的服务端技术。

架构图

在这里插入图片描述
通过这张图可以简单看下我所理解的 Java 服务端开发流程,首先业务代码由我们开发完成后,推送到代码仓库 gitlab(github),然后由持续集成工具 Jenkins 拉取代码进行编译打包,把打成的 Jar 或者 War 包存到服务器某个目录,最后将 Jar 或者 War 部署在 Tomcat 中运行。最后由 Nginx 进行反向代理,将请求转发的不同的服务器,如果有多个服务器的话,还可以做一个负载均衡,减轻单个服务器压力。这样前端浏览器或者移动端 App 就可以正常访问请求了。

在每一台服务器上,我们可能不同的业务跑在不同的 Tomcat 上,这样还会有不同服务之间的通信问题,可以采用 HTTP 或者消息订阅进行通信。另外也不是每次请求都会访问数据库,比如在我开发验证码验证功能的时候,就将验证码存在了 redis 中。当然在线上服务运行的过程中,我们还需要对运行情况做监控。比如 Zabbix 等工具。

开发工具

开发工具:IntelliJ IDEA、Android Studio

MySQL客户端:MySQL Workbench

Redis客户端:Another Redis DeskTop Manager

终端工具:iTerm2

Git工具:SourceTree

HTTP 请求工具:Postman

业务框架

├── README.md
├── pom.xml
├── roc-css-business
├── roc-css-data
├── roc-css-webapp-app
├── roc-css-webapp-browser
└── roc-css.iml

项目的结构如下:
roc-css-data 模块中是模型类,模型对应数据库中的表
roc-css-business 模块是业务逻辑类,大部分的逻辑都在这个模块中
roc-css-webapp-app 模块是移动端的 HTTP 请求入口也就是 Controller,主要做一些参数校验等逻辑
因为最熟悉的是 Java,在开发业务代码时,我选择了 Java Web 开发中最流行的 Spring Boot 框架。用到的技术包括:

spring-boot-starter-web:使用这个模块可以把我们的项目变成一个 web 项目
spring-boot-starter-security:用户验证和鉴权模块,我认为这是比较难的部分,包括对一些过滤器、拦截器的理解,以及如何统一处理业务逻辑错误和用户授权的错误
JWT:JSON Web Token,用于生成和验证用户 Token 和 security 配合使用
spring-boot-starter-data-jpa:用于数据库操作,这一部分用起来非常简单,甚至我们可以不必写 SQL 语句,但是用好不容易,尤其是如果不熟悉有问题不好查
spring-boot-starter-data-redis:用于操作 Redis
lombok:免于写各种 getter 和 setter
springfox-swagger2、springfox-swagger-ui:用于生成在线接口文档
等等
以上依赖使用 maven 进行管理,当然也可以使用 Android 中常用的 Gradle

服务部署

服务器:腾讯云Ubuntu

总结

以上就是我在开发这个小项目的过程中用到的一些技术,可能有一些认识上的不足,如果你有更好的框架或工具选择,欢迎留言。当然还有很多的坑是在实际的开发中遇到的,后续会逐渐把代码完善并进行开发,欢迎大家持续关注 九点下班 公众号,持续分享 Android、Flutter、Java Web 等技术。a

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android 12的ADB源代码是指Android开发者桥接(Android Debug Bridge,简称ADB)的源代码。ADB是一个多功能命令行工具,用于与Android设备进行通信和调试。在Android开发过程中,ADB源代码对于理解和调试设备与计算机之间的交互非常有用。 ADB源代码Android开源项目(AOSP)的代码库中可用,并且可以通过下载AOSP来获取该源代码。通过查看源代码,我们可以了解ADB是如何实现与Android设备之间的通信和数据传输的。 ADB源代码包含了ADB客户端和ADB服务端的实现。ADB客户端在计算机上运行,而ADB服务端则在Android设备上运行。源代码中涵盖了各种命令和功能,包括连接设备、获取设备信息、安装和卸载应用程序、传输文件等。 了解ADB源代码可以帮助开发者理解ADB工具的工作原理和内部机制。这对于开发者在调试和优化应用程序时非常有帮助,可以更好地利用ADB的各种功能来帮助开发过程。 总而言之,Android 12的ADB源代码开发者可以获取和查看的ADB工具的源代码,通过了解该源代码开发者可以更好地了解ADB的工作原理和内部机制,并在开发中更好地应用ADB的各种功能。 ### 回答2: Android 12是谷歌推出的最新操作系统版本,它带来了许多新功能和改进。ADB(安卓调试桥)则是开发者工具包中的一个重要组件,它允许开发者在计算机和Android设备之间进行通信和调试。ADB的源代码Android代码中可以找到。 ADB的源码位于Android源码的“platform/system/core/adb”目录下。这个目录包含ADB的所有关键组件。ADB的源码以C/C++编开发者可以查看和修改这些代码以满足自己的需求。 在Android 12中,ADB的源码可能会有一些变化和更新。这些变化可能包括新的功能、性能改进和bug修复。开发者可以通过查看和分析源码,了解这些变化并将其应用于自己的项目中。 为了使用ADB的源码,开发者需要首先通过下载和编译整个Android代码来获取它。一旦获取到ADB的源码,开发者可以使用适当的编译工具将其编译为可执行文件。然后,通过在计算机上执行编译后的二进制文件,开发者就可以与连接的Android设备进行通信和调试。 总之,Android 12中ADB的源代码可以在Android代码的特定目录中找到。开发者可以通过查看和修改这些源码来了解和应用ADB的最新功能和改进。同时,获取和编译Android代码也是使用ADB源码的前提条件。 ### 回答3: Android 12的ADB源码指的是Android操作系统12版本中的ADB(Android Debug Bridge)相关代码。 ADB是Android开发平台中的一个调试工具,它能够通过USB电缆或Wi-Fi连接设备和计算机,实现设备和计算机之间的通信和数据传输。ADB源码包含了ADB守护进程(adbd)以及与其相关的各种组件和功能的实现代码。 在Android 12中,ADB源码经过了诸多改进和更新。其中包括对ADB连接的性能和稳定性的优化,以提高调试和数据传输的效率。此外,还增加了一些新的功能和命令,便于开发者进行更多的调试和测试工作。 ADB源码主要由C++语言编,涉及到与底层系统中的设备驱动程序和底层服务的交互。开发者可以通过查看并分析ADB源码,深入了解ADB的工作原理和实现细节,以及针对特定需求进行二次开发和定制。 要查看Android 12中的ADB源码,需要访问Android开源项目(AOSP)的代码库。通过AOSP,开发者可以获取Android操作系统的全部源代码,包括ADB源码。但需要注意的是,访问和使用AOSP的源码需要先了解相关的法律政策和使用条款,并按照规定进行操作。 总之,Android 12的ADB源码是指Android 12版本中ADB相关的代码实现,通过查看和分析源码,开发者可以深入了解ADB的工作原理和实现细节,并进行二次开发和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值