Java-Spring入门指南(二十五)Android 的历史,认识移动应用和Android 基础知识
- 前言
- 一、Android与后端的核心关联
-
- [1.1 Android的本质定义](#1.1 Android的本质定义)
- [1.2 Android与后端的协作逻辑](#1.2 Android与后端的协作逻辑)
- 二、Android的发展历史
- 三、Android原生开发的定位
-
- [3.1 移动应用的三大类型](#3.1 移动应用的三大类型)
- [3.2 我们为什么先学Android原生开发?](#3.2 我们为什么先学Android原生开发?)
- 四、Android与SSM、Spring的关系
-
- [4.1 Android与SSM的关系](#4.1 Android与SSM的关系)
- [4.2 Android与Spring的关系](#4.2 Android与Spring的关系)
- 五、Android应用的核心构建块
-
- [5.1 五大核心组件](#5.1 五大核心组件)
-
- [1. Activity(活动):用户能看到的"页面"](#1. Activity(活动):用户能看到的“页面”)
- [2. Service(服务):后台运行的"工具人"](#2. Service(服务):后台运行的“工具人”)
- [3. Broadcast Receiver(广播接收器):接收"系统/应用通知"](#3. Broadcast Receiver(广播接收器):接收“系统/应用通知”)
- [4. Content Provider(内容提供者):实现"应用间数据共享"](#4. Content Provider(内容提供者):实现“应用间数据共享”)
- [5. Intent(意图):组件间的"通信使者"](#5. Intent(意图):组件间的“通信使者”)
- [5.2 其他关键部分(类似SSM的配置文件/工具类)](#5.2 其他关键部分(类似SSM的配置文件/工具类))
前言
-
上一篇我们解决了SSM整合HTML的静态资源过滤问题,实现了"后端(SSM)→Web前端(HTML)"的交互闭环。但实际项目中,用户更多通过手机端访问应用------这就需要移动前端载体,而Android作为全球市场份额超70%的移动操作系统,是后端开发者必须了解的"前端伙伴"。
-
本文将从"基础认知→实用操作→关联后端"三个维度展开,核心讲解:Android是什么、发展历史、开发环境搭建,重点解析Android与SSM、Spring的协作关系,最后拆解Android应用的核心构建块,为后续"后端+Android"的全栈开发铺路。
我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343我的Java-Spring入门指南知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_13040333.html?spm=1001.2014.3001.5482

一、Android与后端的核心关联
在学历史和环境前,先明确Android的定位------它不是"另一个后端框架",而是移动设备的操作系统+前端应用载体,和我们之前学的HTML一样,是"用户能直接操作的界面",但运行在手机/平板上。
1.1 Android的本质定义
- Android是由Google主导开发的开源移动操作系统,基于Linux内核,主要用于智能手机、平板电脑、智能手表等移动设备。
- 核心特点:
- 开源:开发者可自由定制系统(如小米MIUI、华为EMUI都是基于Android定制);
- 组件化:应用由多个独立组件(如页面、后台服务)组成,灵活调用;
- 跨硬件:支持不同厂商的硬件(高通、联发科芯片,三星、OPPO手机)。
1.2 Android与后端的协作逻辑
Android作为前端,必须依赖后端(如SSM、Spring Boot)才能实现"数据持久化、多用户交互"等功能,两者的协作流程如下:
角色 | 核心职责 | 交互动作 | 举例场景(用户登录) |
---|---|---|---|
Android端 | 展示界面(登录页)、收集用户输入(账号密码)、处理本地逻辑(如表单验证) | 发起请求(向后端发送账号密码)、接收响应(登录成功/失败)、展示结果(跳转到首页) | 用户在Android登录页输入账号密码,点击"登录"按钮 |
后端(SSM) | 接收请求、验证数据(查数据库判断账号密码是否正确)、返回结果 | 接收Android的HTTP请求、调用Service/Mapper处理、返回JSON格式的结果 | SSM的Controller接收请求,查MySQL数据库,返回"登录成功"和用户信息 |
简单说:Android是"用户的手",后端是"用户的脑"------手负责点击输入,脑负责计算判断,两者通过"接口"(如HTTP接口)对话。
二、Android的发展历史

- 2005年:Google收购Android Inc.,正式进入移动操作系统领域;
- 2007年:Google发布Android系统首个测试版,宣布成立"开放手机联盟"(联合三星、摩托罗拉等厂商);
- 2008年 :
- 发布Android 1.0正式版;
- 推出第一款Android手机------HTC G1(T-Mobile G1),标志Android正式进入消费市场;
- 2011年:Android全球市场份额超过iOS,成为第一大移动操作系统;
- 2011-2020年 :版本快速迭代,完善核心功能:
- 2011年Android 4.0(Ice Cream Sandwich):统一手机和平板的界面风格,奠定现代Android的基础;
- 2014年Android 5.0(Lollipop):引入Material Design设计语言(至今仍在使用);
- 2016年Android 7.0(Nougat):支持分屏多任务,提升多任务体验;
- 2021年至今 :聚焦隐私保护和性能优化:
- 2021年Android 12:增强隐私权限管控(如精确位置/模糊位置选择);
- 2023年Android 14:优化后台应用限制,提升电池续航,加强应用兼容性;
- 现状:Android全球市场份额稳定在70%以上,是移动开发的"主流选择"。
三、Android原生开发的定位
移动应用不止Android原生一种,先区分类型,再明确我们要学的"Android原生开发"是什么。
3.1 移动应用的三大类型
应用类型 | 技术栈 | 优势 | 劣势 | 代表场景 |
---|---|---|---|---|
原生应用(Native) | Android(Kotlin/Java)、iOS(Swift/Objective-C) | 性能好、体验流畅、能调用硬件(如相机、GPS) | 开发成本高(Android和iOS需分别开发)、更新需通过应用商店 | 微信、抖音、手机银行 |
混合应用(Hybrid) | HTML+CSS+JS+框架(如Cordova) | 跨平台(一套代码跑Android/iOS)、开发快 | 性能差、复杂交互卡顿、硬件调用受限 | 简单工具类应用(如计算器) |
跨平台应用(Cross-Platform) | Flutter(Dart)、React Native(JS) | 接近原生的性能、跨平台、开发效率高 | 复杂场景仍需原生适配、学习成本高 | 美团、闲鱼、小红书 |
3.2 我们为什么先学Android原生开发?
- 与后端适配更直接:原生应用的网络请求(如Retrofit库)能直接对接SSM的HTTP接口,数据格式(JSON)适配无额外成本;
- 理解移动开发本质:原生开发的组件化思想(如Activity、Service)是其他移动开发框架的基础,学会原生后再学跨平台更易上手;
- 企业需求稳定:中大型项目(如金融、医疗)仍需原生开发保证性能和安全性,后端开发者懂原生能更好地配合移动团队。
四、Android与SSM、Spring的关系
Spring/SSM,到底怎么和Android配合?
4.1 Android与SSM的关系
SSM是"后端三件套"(Spring+SpringMVC+MyBatis),负责处理业务逻辑和数据库操作;Android是"移动前端",负责展示界面和用户交互,两者通过HTTP/HTTPS接口通信,流程如下:
-
Android端发起请求:通过网络库(如Retrofit、OkHttp)向SSM的Controller发送请求,携带参数(如账号密码);
-
示例(伪代码):
java// Android端用Retrofit调用SSM的登录接口 public interface LoginService { @POST("/user/login") // SSM的Controller接口路径 Call<LoginResponse> login(@Body LoginRequest request); // 发送账号密码(LoginRequest),接收响应(LoginResponse) } // 发起请求 LoginRequest request = new LoginRequest("admin", "123456"); loginService.login(request).enqueue(new Callback<LoginResponse>() { @Override public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) { // 接收SSM返回的"登录成功"结果,跳转到首页 } @Override public void onFailure(Call<LoginResponse> call, Throwable t) { // 网络错误,提示用户 } });
-
-
SSM端处理请求:Controller接收Android的请求,调用Service验证数据,Mapper查数据库,返回JSON格式的结果;
-
示例(SSM的Controller):
java@Controller @RequestMapping("/user") public class UserController { @Autowired private UserService userService; // 接收Android的登录请求,返回JSON @ResponseBody @PostMapping("/login") public LoginResponse login(@RequestBody LoginRequest request) { // 调用Service验证账号密码 boolean isSuccess = userService.checkLogin(request.getUsername(), request.getPassword()); if (isSuccess) { return new LoginResponse(200, "登录成功", userService.getUserInfo(request.getUsername())); } else { return new LoginResponse(400, "账号或密码错误", null); } } }
-
-
Android端展示结果:接收SSM返回的JSON数据,解析后更新界面(如跳转到首页、显示用户信息)。
4.2 Android与Spring的关系
Spring不止有SSM,还有Spring Boot、Spring Security等,这些都能为Android提供更便捷的后端支持:
- Spring Boot vs SSM:Spring Boot更适合给Android提供接口------它简化了SSM的配置(无XML配置),内置Tomcat,打包成Jar就能运行,开发效率更高(比如一个登录接口,Spring Boot只需写10行代码,SSM需写配置+代码);
- Spring Security:为Android的请求提供安全保障------比如给接口添加"Token验证",防止别人伪造Android的请求(如用户登录后,Android端存储Token,每次请求都携带,Spring Security验证Token合法性);
- Spring Data JPA :简化后端数据库操作------如果觉得MyBatis写SQL麻烦,可用Spring Data JPA(基于ORM),直接用接口方法(如
findByUsername
)实现查询,后端开发更快,不影响Android端调用。
简单说:Spring生态是Android的"坚强后盾"------你可以用SSM、Spring Boot、Spring Cloud等任何Spring技术栈做后端,Android端只需按约定调用接口即可。
五、Android应用的核心构建块
Android应用不是"一个大文件",而是由多个独立的"构建块"(组件)组成,就像SSM由Controller、Service、Mapper组成一样,每个组件有明确职责。
5.1 五大核心组件
这是Android应用的"骨架",必须掌握:
1. Activity(活动):用户能看到的"页面"
- 职责:展示界面(UI),处理用户交互(如点击按钮、输入文字);
- 特点:每个页面对应一个Activity(如登录页=LoginActivity,首页=MainActivity);
- 示例:打开微信的"聊天页",就是启动了一个ChatActivity;关闭页面,就是销毁了这个Activity。
2. Service(服务):后台运行的"工具人"
- 职责:在后台执行长时间任务,不展示界面(用户看不到);
- 特点:即使退出应用,Service仍能继续运行;
- 示例:Android音乐APP播放音乐时,退出APP后音乐仍在播放,就是因为有"音乐Service"在后台运行。
3. Broadcast Receiver(广播接收器):接收"系统/应用通知"
- 职责:接收并响应广播消息(如系统通知"电量低"、应用内通知"下载完成");
- 示例:手机电量低于20%时,系统发送"低电量广播",手机的"电量管理APP"通过Broadcast Receiver接收,然后弹出"电量低"提示。
4. Content Provider(内容提供者):实现"应用间数据共享"
- 职责:在不同应用间共享数据(如通讯录APP共享联系人给微信,让微信能选择联系人发消息);
- 特点:保证数据安全,共享时可控制权限(如只允许读取,不允许修改)。
5. Intent(意图):组件间的"通信使者"
- 职责:不是独立组件,而是"连接其他组件的纽带",用于在组件间传递数据、启动组件;
- 示例:
- 从LoginActivity跳转到MainActivity,需要用Intent传递"用户信息";
- 启动"音乐Service"播放音乐,需要用Intent传递"音乐地址"。
5.2 其他关键部分(类似SSM的配置文件/工具类)
- Layout(布局文件):定义Activity的界面结构(如按钮放在哪里、文本框多大),用XML编写(类似HTML的结构);
- Manifest(清单文件):应用的"身份证",配置应用名称、图标、权限(如允许访问相机、网络)、注册组件(所有Activity/Service都要在这里注册,否则无法使用);
- Res(资源文件夹):存放应用的资源(图片、字符串、颜色、布局文件),方便统一管理(如修改应用名称,只需改res下的字符串资源,无需改代码)。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343我的Java-Spring入门指南知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_13040333.html?spm=1001.2014.3001.5482我的MyBatis实战指南专栏(SSM前置必备)
https://blog.csdn.net/2402_83322742/category_12969707.html?spm=1001.2014.3001.5482
|--------------------|
| 非常感谢您的阅读,喜欢的话记得三连哦 |
