- JDK
- AndroidSDK
- AndroidStudio
- 单体构造,包含C/C++、C#、原生JAVA、原生Python等。
- 前后端不拆散Web构造,包含PHP(thinkPHP)、应用网络的JAVA(SpringNoot)、应用网络的的Python(Flask、Django)
- Client / Server 构造以及前后端拆散web构造,前端包含vue、angular、作为客户端的C#等,后端包含REST模式下的Springboot、PHP等。
- 单机安卓软件
- 安卓客户端软件
- 流动(Activity)
- 布局(Layout)
- 原生Java类
- 动态字符串资源(values)
- Android全局配置文件(AndroidManifest.xml)
零、前言
本文旨在帮忙有根底的同学疾速扫盲,如果你和我一样,学习过其余语言,又凑巧第一次接触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就会主动在此文件中减少标签。