Android 开发入门
2021-06-28 本文已影响0人
快乐的橙橙宝
Android 开发入门
Android 系统占有手机绝大部分市场,在智能硬件、车联网等也广泛应用
Android 简介
Android 方向
- Android 应用开发
- Android FrameWork开发
- Android 音视频开发
- Android 跨平台开发(Flutter,React-Native)
- Android 安全方向(逆向)
Android 平台架构

Linux 内核
- Android内核具有和标准的Linux内核一样的功能,主要实现内存管理、进程调度、进程间通信(Android增加了一种进程间的通信机制IPC Binder)、设备驱动(Display Driver: 显示驱动;Camera Driver: 照相机驱动;Flash Memory Driver: 闪存驱动;Binder Driver: IPC通讯驱动;KeyPad Driver: 键映射驱动;Wifi Driver:Wifi驱动;Audio Driver:音频驱动;Power Management:电量管理驱动)等
硬件抽象层 (HAL)
- 硬件抽象层 (HAL) 提供标准界面,向更高级别的 Java API 框架显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机或蓝牙模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。
Android Runtime 和原生C、C++库
- Android Runtime由是由Java核心类库(Core Libraries)和Android虚拟机共同构成
Java核心类库包括框架层和应用层所用到的基本Java库;Android虚拟机是一个Android运行时的一部分,作用在于连接底层核心、周边库与上层应用,提供更多的自动管理功能,特别是内存方面的。
Android 应用架构层
- FrameWork层是Android应用开发的核心,为开发者开发应用时提供基础的API框架。框架层由多个系统服务组成。如AMS,PMS,WMS
AMS即ActivityManagerService主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作;PMS即PackageManagerService主要负责各种APK的安装,卸载,优化和查询;WMS即WindowManageService 管理着所有的窗口,包括创建、删除和修改,以及将某个窗口设置为焦点窗口
Android 应用层
- 应用层由运行在Android设备上的所有应用构成,包括预装的系统应用和自己安装的第三方应用
Android hello world demo演示
- Android Studio 下载安装
- 新建工程
- 创建模拟器
- 运行
- 日志使用
- 断点调试
Android Studio 功能介绍
- 主题颜色
- 插件安装
- 功能区介绍
- 打包
Android 工程结构介绍
Android 工程结构目录

Android工程目录 | 解释 |
---|---|
.gradle文件夹 | 存储每个使用的gradle版本临时文件 |
.idea文件夹 | 用来存储所有与IDE相关的项目设置 |
build目录 | 项目编译生成目录 |
gradle目录 | 管理项目构建工具gradle,该目录有gradle-wrapper.jar和gradle-wrapper.properties2个文件夹,gradle-wrapper.properties中可以修改gradle版本 |
.gitignore | git忽略文件 |
build.gradle | 是整个工程目录的gradle区别于app目录下的build.gradle(模块的gradele)主要设置的是声明仓库源,gradle的版本号说明 |
gradle.properties | 是gradle的运行环境配置,比如使用多少内存之类的 |
gradlew和gradlew.bat | 自动配置 gradle环境的脚本 |
local.properties | 配置SDK或者NDK的环境路径 |
settings.gradle | 配置项目的依赖关系 |
app | 工作的主目录 |

App目录 | 解释 |
---|---|
build | 编译生成目录,代码生成的临时文件,apk等都在这个目录 |
libs | 一般存放第三方库文件 |
src | 代码和资源目录 |
androidTest | 测试目录 |
main | 代码目录 |
res | 是资源文件目录 |
drawable | 存放xml文件,图片文件夹一般还要drawable-xhdpi,drawable-xxhdpi,drawable-xxxhdpi 需要我们自己新建 |
drawable-v24 | 是兼容sdk24的,sdk24以上自定义drawble类可以在xml中使用 |
layout | 布局资源 |
mipmap-anydpi-v26 | 自适应图标 |
mipmap- | 存放APP的icon图标文件 |
values | 颜色、字体大小、字符串主题之类的资源 |
values-night | 黑色主题资源 |
AndroidManifest.xml | 配置必要的组件以及应用权限等 |
test | 单元测试目录 |
.gitignore | 配置模块git忽略 |
build.gradle | 模块的gradle 构建脚本 |
proguard-rules.pro | 混淆配置 |
AndroidManifest

AndroidManifest | 解释 |
---|---|
package | 应用包名 |
uses-permission | 权限配置 |
android:allowBackup | 是否允许备份 |
android:icon | 应用的启动图标 |
android:label | 应用的名称 |
android:roundIcon | 圆形图标 |
android:supportsRtl | 是否支持从右到左的布局 |
android:theme | 应用的主题 |
android:name=".MainActivity" | 表示MainActivity的全路径cn.pwj.mydemo1.MainActivity |
intent-filter | 意图过滤器 |