推荐书籍:
疯狂Android讲义
Android Studio开发实战
Android开发者在国内的官网:一部分翻译成了中文
https://developer.android.google.cn/
发展前景
- Android 手机应用开发工程师
- Android 系统开发工程师
- Android 测试工程师
- Android 产品策划
- Android UI设计师
- Android 产品运营管理
- 智能设备(智能家居、汽车电子、通讯设备、GPS、航天设备、医疗器械)开发设计师
Android
- Android 是Google Docs公司和开放手机联盟领导及开发的基于Linux平台的、开源的智能操作系统。Android平台由操作系统、中间键、用户界面和应用软件组成
学习路线
- 要有JDK环境
- 用户界面是重点
- 资源使用:图片、颜色等
- 多线程:连接线程
- 数据存储:用到数据库
Android系统框架(系统的分层架构)
- Linux Kernel(硬件)电池 内存条
- 电池 内存条等(硬件)
- C语言开发
- Libraries
- 核心类库(Libraries)和运行时环境(Runtime)
- 供下层调用
- C语言/c++
- Application Framework应用程序框架
- 开发应用程序调用较多
- java
- Application应用程序(最终开发的程序)
- java
框架细分
Linux内核层
- 硬件和其他软件堆层之间的一个抽象隔离层
- 提供安全机制、内存管理、进程管理、网络协议堆栈和驱动程序等核心系统服务
核心类库和运行时环境层
- 主要提供一组基于c/c++的函数库
- Surface Manager,提供应用程序的2D、3D 图像层的平滑连接
- Media Framework,实现音视频的播放和录制功能
- SQLite,轻量级的关系数据库引擎(此数据库比较小,可以嵌入)
- OpenGL ES,基于3D图像加速
- FreeType,位图与矢量字体渲染
- WebKit,Web浏览器引擎
- SGL,2D图像引擎
- SSL,数据加密与安全传输的函数库
- Libc,标准C运行库,Linux系统中底层应用程序开发接口 - Android运行时环境
- 核心库,提供Android系统特有函数功能和Java语言函数功能
- Dalvik虚拟机,实现基于Linux内核的线程管理和内存管理(5.0之前)
- Android5.0开始,ART取代了Dalvik虚拟机
应用程序框架层
- 提供Android平台基本的管理功能和组件重用机制
- Activity Manager,管理应用程序的生命周期(程序界面的显示)
- Windows Manager,启动应用程序的窗体
- Content Provider,共享私有数据,实现跨进程的数据访问
- Package Manager,管理安装在Android系统内的应用程序
- Telephony Manager,管理与拨打和接听电话的相关功能
- Resource Manager,允许应用程序使用非代码资源
- Location Manager,管理与地图相关的服务功能
- Notification Manager,允许应用程序在状态栏中显示提示信息
应用程序层
- 提供一系列的核心应用程序
- 包括电子邮件客户端、浏览器、通讯录和日历
开发环境
- 配置JDK
- 安装Android Studio3.5
- 获得Android SDK
- Android Studio中配置Android SDK
- Gradle简介及配置
API是向后兼容的
gradle:用于打包 apk
可虚拟化
是Intel处理器
Emulator: PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT
Emulator: Process finished with exit code 1
system-images:系统镜像文件
包名:域名的倒叙
Grable的一些文件
视图
-
Android视图最常用
res是重点
图片资源存放在mipmap中
布局文件资源:layout(hello world在这)
values资源(值资源):颜色的rgb、strings、样式 -
project视图:对应文件夹的视图 源代码在app文件,app中的src文件存放了java的源代码等文件
-
packages视图
以包的形式展示文件
Android程序结构
- @override注解:标识此方法重写了基类中的一个方法,调用的时候不需要手动调用,打开界面会自动调用(所以不需要再找main方法,已经存在了入口方法)
- MainActivity是继承自Activity类的
- 通过R类(在project视图下)
来引用资源文件 R类中静态成员layout
R.资源类型.资源名称
布局文件(xml格式)
manifest:清单文件(所有的)