当前位置: 首页 > news >正文

Java-Spring入门指南(二十五)Android 的历史,认识移动应用和Android 基础知识

Java-Spring入门指南(二十五)Android 的历史,认识移动应用和Android 基础知识

  • 前言
  • 一、Android与后端的核心关联
    • 1.1 Android的本质定义
    • 1.2 Android与后端的协作逻辑
  • 二、Android的发展历史
  • 三、Android原生开发的定位
    • 3.1 移动应用的三大类型
    • 3.2 我们为什么先学Android原生开发?
  • 四、Android与SSM、Spring的关系
    • 4.1 Android与SSM的关系
    • 4.2 Android与Spring的关系
  • 五、Android应用的核心构建块
    • 5.1 五大核心组件
      • 1. Activity(活动):用户能看到的“页面”
      • 2. Service(服务):后台运行的“工具人”
      • 3. Broadcast Receiver(广播接收器):接收“系统/应用通知”
      • 4. Content Provider(内容提供者):实现“应用间数据共享”
      • 5. Intent(意图):组件间的“通信使者”
    • 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的发展历史

在这里插入图片描述

  1. 2005年:Google收购Android Inc.,正式进入移动操作系统领域;
  2. 2007年:Google发布Android系统首个测试版,宣布成立“开放手机联盟”(联合三星、摩托罗拉等厂商);
  3. 2008年
    • 发布Android 1.0正式版;
    • 推出第一款Android手机——HTC G1(T-Mobile G1),标志Android正式进入消费市场;
  4. 2011年:Android全球市场份额超过iOS,成为第一大移动操作系统;
  5. 2011-2020年:版本快速迭代,完善核心功能:
    • 2011年Android 4.0(Ice Cream Sandwich):统一手机和平板的界面风格,奠定现代Android的基础;
    • 2014年Android 5.0(Lollipop):引入Material Design设计语言(至今仍在使用);
    • 2016年Android 7.0(Nougat):支持分屏多任务,提升多任务体验;
  6. 2021年至今:聚焦隐私保护和性能优化:
    • 2021年Android 12:增强隐私权限管控(如精确位置/模糊位置选择);
    • 2023年Android 14:优化后台应用限制,提升电池续航,加强应用兼容性;
  7. 现状: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接口通信,流程如下:

  1. Android端发起请求:通过网络库(如Retrofit、OkHttp)向SSM的Controller发送请求,携带参数(如账号密码);

    • 示例(伪代码):
      // 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>() {@Overridepublic void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {// 接收SSM返回的“登录成功”结果,跳转到首页}@Overridepublic void onFailure(Call<LoginResponse> call, Throwable t) {// 网络错误,提示用户}
      });
      
  2. SSM端处理请求:Controller接收Android的请求,调用Service验证数据,Mapper查数据库,返回JSON格式的结果;

    • 示例(SSM的Controller):
      @Controller
      @RequestMapping("/user")
      public class UserController {@Autowiredprivate 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);}}
      }
      
  3. 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下的字符串资源,无需改代码)。

(提示:此处可插入“Android项目结构”图片,标注Layout、Manifest、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

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

http://www.dtcms.com/a/486160.html

相关文章:

  • WPF依赖属性(Dependency Property)详解
  • 深度学习进阶(三)——生成模型的崛起:从自回归到扩散
  • 三门峡网站开发ict网站建设
  • 神经网络之链式法则
  • C#设计模式源码讲解
  • 性能测试单场景测试时,是设置并发读多个文件,还是设置不同的用户读不同的文件?
  • Qt初识(对象树,乱码问题,小结)
  • 基于Home Assistant的机器人低延迟通信项目详细调研报告
  • 深圳网站做的好的公司婚庆网站开发目的
  • 中小企业网站制作是什么宁德网站建设51yunsou
  • 代理模式 vs AOP:支付服务中的日志增强实践(含执行顺序详解)
  • linux系统运维教程,linux系统运维攻略
  • string字符集
  • Linux 命令:fsck
  • 如何提升生物科技研发辅助的效率?
  • ECEF坐标转换库
  • 企业商务网被公司优化掉是什么意思
  • 网站虚拟主机购买教程专业网站设计工作室
  • 数据库管理-第376期 Oracle AI DB 23.26新特性一览(20251016)
  • 【Nature高分思路速递】 物理驱动的机器学习
  • word文档转pdf开源免费,可自定义水印
  • k8s(五)PV和PVC详解
  • 深度学习与自然语言处理
  • python 部署可离线使用的中文识别OCR(window)
  • 湖州微信网站建设网站301了不知道在哪做的
  • 请描述网站开发的一般流程图php网站开发经理招聘
  • 关于pkg-config的使用示例--g++编译过程引入第三方库(如Opencv、Qt)
  • 外贸soho先做网站wordpress如何把背景颜色调为白色
  • zk02-知识演进
  • 全自动相机在线标定方法