一、Android概述
开发优势:
- 开放源代码
- 众多开发者及强大社区
- 不断增长的市场
- 国际化的App集成
- 低廉的开发成本
- 更高的成功几率
- 丰富的开发环境
Android历史:
从3.0 to 3.2
命名:以甜点命名,从Android 10之后,以版本号规则命名
多设备支持:
手机、平板、IoT物联网、Chrome OS、可穿戴Watch、汽车
Android平台架构:
- 系统应用
- Java API Framework
- Android Runtime
- 原生C/C++库
- 硬件抽象层(HAL)
- Linux内核
开发者角度:
- Application Framework
- Binder IPC
- System Service
- 硬件抽象层(HAL)
- Linux内核
源代码控制工具:
- Git: Git可以处理分布在多个代码库上的大型项目。Android使用Git执行本地操作,例如建立本地分支、提交、对比差异、修改
- Repo:Repo是一个Python实现的脚本,可以在必要时整合多个Git代码库,将相关内容上传到Gerrit修订版本控制系统,并自动执行Android开发工作流程的部分环节。Repo不会取代Git,只是让开发者在Android环境中更加轻松使用Git。
- Gerrit:是一个基于网页的代码审核系统,适用于使用Git的项目,允许所有授权用户提交更改。
- Ardroid Studio:用于开发Android应用的官方集成开发环境(IDE)
- Android 调试桥(adb) :可让相应的Android设备连接,以便安装软件包和调试debug代码。
- 代码搜索OpenGrok:是一款强大的跨平台代码阅读工具。
二、Android核心组件概述
Activity类是Android应用的关键组件。一般情况下,是通过main()方法启动应用,而在Android系统中,则会调用与其生命周期特定阶段相对应的特定回调方法来启动Activity实例对象中的代码。
- Activity生命周期:
提供六个核心回调:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()
- Activity状态更改:使用ViewModel、onSaveInstanceState() 本地存储来保留用户的瞬时界面状态
- Activity的任务和返回堆栈:
Service类是一种可在后台执行长时间操作而不提供界面的应用组件,有三种服务类型,分别是:前台服务、后台服务、绑定服务。
最重要的几个回调方法:
- onStartCommand()
- onBind()
- onCreate()
- onDestroy()
BroadcastReceiver类借助广播接收器组件,系统能够在常规用户流之外向应用传递事件,从而允许应用响应系统范围内的广播通知。
有两个重要步骤:
- 创建广播接收器
- 注册广播接收器
ContentProvider组件通过请求从一个应用程序向其他的应用程序提供数据。它可以使用不同的存储方式,数据可以被放在数据库,文件甚至网络中。
三、Android进阶
接口语言AIDL:
在Android中,一个进程通常无法访问另一个进程的内存,可以利用接口定义语言(AIDL)定义客户端与服务统一的编程接口,以便二者使用进程见通信(IPC)