零、前言
本文旨在帮忙有根底的同学疾速扫盲,如果你和我一样,学习过其余语言,又凑巧第一次接触 Android 开发,本文会比拟适宜你。
如何学习一门新的语言?
对于有肯定语言功底和开发教训的人来说
咱们在学习一门新语言时不可能再从变量、函数学起,
而应该站在更高的角度,思考如何把已有的编程思维和设计模式迁徙到新接触的语言中,
将未知的问题转化为若干个相熟问题的组合,用已有的常识解决新的问题,谓之“化归”。
所以既然有根底了,学习新语言应就应从应用最频繁的性能动手。大抵包含:
- 环境装置
- 新建和关上我的项目
- 宏观构造(前后端)
- 宏观构造(MVC)
- 数据绑定与操作反馈
- 组件间调用
- 生命周期
- 连贯数据库或读写文件存储(仅后端语言须要)
- HTTP 申请
- 单表增删改查
- 简单的多表增删改查
- 登录登记拦截器过滤器
工夫仓促,本文只写一部分,前面缓缓补齐:
一、环境装置
Android 开发环境 = JDK+AndroidSDK + AndroidStudio
JDK
就是咱们平时应用的 JDK,用平时的装置办法装置,没有什么特别之处,间接应用 JDK11 即可。
// 查看 JAVA 版本,如有返回值,阐明环境变量失效
java -version
AndroidSDK
此 SDK 内置在 AndroidStudio 中,不必独自装置。
AndroidStudio
官网下载:https://developer.android.goo…
此 IDE 蕴含在 Jetbrains 全家桶中,也能够在 Jetbrains Toolbox
中下载:
注:如果第一次编译呈现 Failed to install the following Android SDK packages as some licences have not been accepted. 能够参考 https://segmentfault.com/a/11…。
环境装置实现后须要尽快相熟 IDE 的操作,更重要的是如何切换我的项目的 SDK 版本。
二、宏观构造
这个词是什么意思?没意思,这个词是我本人造的。
细数咱们学过的语言,能够大抵分为以下几类(兴许总结的不太精确):
单体构造,包含 C /C++、C#、原生 JAVA、原生 Python 等。
它们之中,有些是控制台程序(黑框框),有些是 GUI 程序(有界面)。
这一类利用的特点是:间接运行在本机的操作系统上,靠用户输出实现交互,客户端即蕴含全副性能,简直不应用网络传输,靠本地文件来贮存运行时的数据。
前后端不拆散 Web 构造,包含 PHP(thinkPHP)、应用网络的 JAVA(SpringNoot)、应用网络的的 Python(Flask、Django)
特点是:
程序性能的理论提供者运行在服务器上,软件性能由服务端提供,渲染和业务逻辑全副由服务器实现,服务器返回的是整个 HTML 页面。
用户仅应用浏览器浏览动态页面,并实现交互操作。
必须依赖网络,数据在服务器的数据库中。
Client / Server 构造以及前后端拆散 web 构造,前端包含 vue、angular、作为客户端的 C# 等,后端包含 REST 模式下的 Springboot、PHP 等。
特点是:
程序后端运行在服务器上,前端运行在用户的操作系统(或浏览器)上,
此时服务器只用来实现 REST 性能的 API,解决业务逻辑,
而页面渲染、发动申请则由前端解决。
Web 能够说是 C / S 模型的一个分支。除了 web 外,大型网络游戏也是典型的前后端拆散(cs)利用。
对于安卓开发来说,有以下两种状况:
单机安卓软件
比方零碎设置、零碎相机、视频播放器、各种小工具之类。
这些不须要联网的软件,能够看作单体构造(第一种),整个程序都在手机上运行,由 Java 的服务层实现业务逻辑。
安卓客户端软件
例如电商软件、手游、通信工具等等,都是客户端软件,能够看作 Client/Server 模型。
目前绝大多数安卓软件都是 C / S 的客户端,简直没有单机利用。
综上,咱们能够间接认为,安卓开发是前端开发!
宏观构造
这个词也是我本人造的,其实说的就是设计模式。
最常见的包含 MVC、MVVM 等模式。
安卓开发的贯彻落实了 MVC 的思维,所以很好了解软件的档次。
先来看一个最简略的文件构造
流动(Activity)
Android 中有一种叫做流动 (Activity) 的 Java 类,它实质上是 Java 代码,并且继承了 Android 内置的 Activity 类,所以就有了扩大性能。
它充当了 C 层(控制器)的角色,用来创立页面、响应操作,传递数据等等。
布局(Layout)
Layout 原本是布局的意思,在 Android 中指的是相似 HTML 性能的页面模板,应用 xml 文件,其实 xml 和 HTML 实质思维统一,用法也差不多,xml 中的相熟和 CSS 类似。所以 layout 充当 V 层的角色。
layout 既能文本化编辑,也能可视化编辑。
原生 Java 类
流动只用来传值和调用,真正进行逻辑解决、发动 HTTP 申请的应该是 M 层,它应用的是许多原生 Java 代码,它实现了 Model 模型、Entity 实体、Service 服务等等性能。
所以能够了解成,安卓在抛开流动和布局后,其余方面和原生 Java 的类似度很高。至于安卓特有性能,却和前端开发十分类似。
动态字符串资源(values)
安卓的字符串都放在 values 文件夹,应用 xml 贮存,实质上就是键值对(keymap)
键值对能够通过一个固定变量名来操作固定的字符串,保障我的项目全局援用的值是雷同的,当值变动后,整个我的项目中都会同步变动。
Android 全局配置文件(AndroidManifest.xml)
这个文件治理着流动,所有的流动都必须在此文件中注册后能力被创立。
文件中也必须指定启动时执行哪个流动,程序能力失常运行。
每减少一个流动,AndroidStudio 就会主动在此文件中减少标签。
结构图