Android开发基础 知识点
-
- [1 介绍了解](#1 介绍了解)
- [2 系统体系架构](#2 系统体系架构)
- [3 四大应用组件](#3 四大应用组件)
- [4 移动操作系统优缺点](#4 移动操作系统优缺点)
- [5 开发工具](#5 开发工具)
- [6 配置工具](#6 配置工具)
- [7 下载相关资源](#7 下载相关资源)
- 8JDK下载安装流程
- 9配置好SDK和JDK环境
- [10 第一个Hello word](#10 第一个Hello word)
- [11 AS开发前常用设置](#11 AS开发前常用设置)
- 12模拟器使用运行
- [13 真机调试](#13 真机调试)
- [14 AndroidUI基础布局](#14 AndroidUI基础布局)
- [15 加载展示XML布局](#15 加载展示XML布局)
- [16 布局XML中 ID 和 属性](#16 布局XML中 ID 和 属性)
- [17 布局参数类LayoutParmas和xml布局属性](#17 布局参数类LayoutParmas和xml布局属性)
- [18 尺寸单位dppx](#18 尺寸单位dppx)
- [19 布局margin和padding](#19 布局margin和padding)
- [20 线性布局LinearLayout](#20 线性布局LinearLayout)
- [21 相对布局RelativeLayout](#21 相对布局RelativeLayout)
- [22 帧布局FrameLayout](#22 帧布局FrameLayout)
- [23 网格布局GridLayout](#23 网格布局GridLayout)
- [24 文本控件TextView的常用属性](#24 文本控件TextView的常用属性)
- [gravity 共用属性 视图 /视图容器 都有 的 属性](#gravity 共用属性 视图 /视图容器 都有 的 属性)
- [25 shape给TextView形状和图片](#25 shape给TextView形状和图片)
- 26文本输入框EditText
- 27按钮控件Button使用StateListDrawable
- 28图像视图ImageView
- 29RadioButton和CheckBox
- 30开关Switch和ToggleButton
- 31进度条ProgressBar
- 32拖动条SeekBar
- 33滚动条控件ScrollView
- 34日期与时间控件
- 35适配器Adapter与AdapterView
- 36ListView控件使用方式
- 37适配器BaseAdapter的优化
- [38 ListView布局风格Item](#38 ListView布局风格Item)
- [39 网格视图GridView](#39 网格视图GridView)
- [40 列表选项控件Spinner](#40 列表选项控件Spinner)
- [41 可折叠列表ExpandableListView](#41 可折叠列表ExpandableListView)
- [42 Toast吐司控件](#42 Toast吐司控件)
- [43 对话框控件AlertDailog](#43 对话框控件AlertDailog)
- [44 事件分发机制](#44 事件分发机制)
- [45 悬浮框控件PopupWindow](#45 悬浮框控件PopupWindow)
- [46 Android如何创建和启动Activity组件](#46 Android如何创建和启动Activity组件)
-
- [Activity 解释](#Activity 解释)
- AppcompatActivity
- [setContentView 设置 视图](#setContentView 设置 视图)
- [注册 Activity 和 属性 路径配置](#注册 Activity 和 属性 路径配置)
- [显示启动 隐式启动](#显示启动 隐式启动)
- [47 分析Activity组件的生命周期](#47 分析Activity组件的生命周期)
-
- [OnCreate 加载布局 视图](#OnCreate 加载布局 视图)
- [Dialog类型窗口 的 生命周期](#Dialog类型窗口 的 生命周期)
-
- [Resume重现 可见](#Resume重现 可见)
- [48 Activity组件间的通信方式](#48 Activity组件间的通信方式)
- [49 Activity回退堆栈back-stack概念](#49 Activity回退堆栈back-stack概念)
-
- [回退 堆棧 來存儲 管理 Activity Task容器](#回退 堆棧 來存儲 管理 Activity Task容器)
- [入栈 出栈 后进先出 没了 就 销毁](#入栈 出栈 后进先出 没了 就 销毁)
- [50 Activity启动模式之standard模式](#50 Activity启动模式之standard模式)
-
- [standard 不会复用](#standard 不会复用)
- [51 Activity启动模式之singleTop模式](#51 Activity启动模式之singleTop模式)
-
- [singleTop 复用](#singleTop 复用)
- [P58 第58课 Activity启动模式之singleTask模式](#P58 第58课 Activity启动模式之singleTask模式)
- [P59 第59课 Activity启动模式之singleInstance模式](#P59 第59课 Activity启动模式之singleInstance模式)
- [P60 第60课 线程概念及三种创建方式](#P60 第60课 线程概念及三种创建方式)
-
- [程序 内存空间 进程](#程序 内存空间 进程)
- [Thread 类 run 方法](#Thread 类 run 方法)
- [Runnable run方法](#Runnable run方法)
- [Callable 与 Future 线程](#Callable 与 Future 线程)
- 并行执行
- [构造方法 Thread 传 Runnable](#构造方法 Thread 传 Runnable)
- [Call 这个 实现 可以返回值](#Call 这个 实现 可以返回值)
- [用 FutureTask 来 取值](#用 FutureTask 来 取值)
- [阻塞 线程 等待 延时 把 值 取出来](#阻塞 线程 等待 延时 把 值 取出来)
- [P61 第61课 Service组件通过startService启动的生命周期](#P61 第61课 Service组件通过startService启动的生命周期)
- [Service 可复用](#Service 可复用)
- [P62 第62课 Service组件通过bindService启动的生命周期](#P62 第62课 Service组件通过bindService启动的生命周期)
-
- [binder类 客户端 与 服务 通信](#binder类 客户端 与 服务 通信)
- [Activity 接收 return 的 值](#Activity 接收 return 的 值)
- 监听类
- [P63 第63课 BroadcastReceiver广播组件之动态注册](#P63 第63课 BroadcastReceiver广播组件之动态注册)
- [P64 第64课 BroadcastReceiver广播组件之静态注册](#P64 第64课 BroadcastReceiver广播组件之静态注册)
-
-
-
- [注册 接收](#注册 接收)
- [显式 发送广播](#显式 发送广播)
-
-
- [P65 第65课 通过ContentProvider组件访问系统应用数据](#P65 第65课 通过ContentProvider组件访问系统应用数据)
-
-
-
- [动态获取 权限](#动态获取 权限)
- 暴露URI
-
-
- [P66 第66课 通过ContentProvider组件暴露应用内部数据给第三方](#P66 第66课 通过ContentProvider组件暴露应用内部数据给第三方)
-
-
-
- [往 表里 写数据](#往 表里 写数据)
- [跨进程 ![在这里插入图片描述](https://img-blog.csdnimg.cn/70f93e2043fa43e682bc9c4ac6fceaf2.png)](#跨进程 )
-
-
- [P67 第67课 Fragment两种创建方式](#P67 第67课 Fragment两种创建方式)
-
-
-
- [一变多 运行在 一个 界面里 寄宿在 Activity 里](#一变多 运行在 一个 界面里 寄宿在 Activity 里)
- [静态标签 加载](#静态标签 加载)
- [自定义的 fragment](#自定义的 fragment)
- 动态加载
-
-
1 介绍了解
发展历史 发行版本
2 系统体系架构
3 四大应用组件
4 移动操作系统优缺点
5 开发工具
6 配置工具
步骤
新建环境变量的系统变量,变量名为"ANDROID_ADV_HOME",变量值为存模拟器的地址。
删除模拟器默认的存放地址,即C:\Users\用户名.android。
(注:如果新建系统变量后没有删除默认的存放地址,则以后创建的模拟器仍存放在默认的地址)
新建模拟器验证修改是否成功。
7 下载相关资源
8JDK下载安装流程
9配置好SDK和JDK环境
10 第一个Hello word
11 AS开发前常用设置
12模拟器使用运行
HAXM
13 真机调试
14 AndroidUI基础布局
viewgroup视图容器--->view ---> 视图
线性布局
约束性布局
都是 viewgroup的子类
只有一个 根 viewgroup
XML 标签 内 都是 一个 JAVA 类 都可以 new 实例化 一个 对象
视图容器
视图
属性
再把视图装到视图容器中
15 加载展示XML布局
XML 代码 布局
LinearLayout 视图容器 标签
视图 + 按钮
根元素
组件 创建 的 回调
setcontentview 加载 XML
约束布局
16 布局XML中 ID 和 属性
17 布局参数类LayoutParmas和xml布局属性
约束布局 继承 视图容器 (抽象类 )
嵌套类 LayoutParams
LayoutParams 的 一个 子类 继承于 LP
定位位置
视图 布局
通过 视图 获得 LayoutParams
通过 tv 模板试图 传递参数
px不行 适配 各种 屏幕
wrap 自己
match 父视图
18 尺寸单位dppx
视图 在 视图容器中 都有 坐标点 宽高
相对于 父视图 的 位置
单位 Px 像素
布局 ---- 视图容器
都是 px 值
19 布局margin和padding
视图 只有 内边距
20 线性布局LinearLayout
权重 高度 宽度 为0
21 相对布局RelativeLayout
22 帧布局FrameLayout
悬浮按钮 最上层
23 网格布局GridLayout
键盘 效果
24 文本控件TextView的常用属性
文本控件 视图
sp 文本 尺寸单位 不能用 dp
gravity 共用属性 视图 /视图容器 都有 的 属性
gravity和layout_gravity
两者都是设置对齐方式
内部的属性值相同
center_horizontal表示在水平方向上的位置为中间
背景 也是 共用属性
利于 复用
25 shape给TextView形状和图片
vangle 渐变角度
比 图片 占用小
@ ====》res 目录
26文本输入框EditText
默认提示文本
获取 内容文本
密码格式
27按钮控件Button使用StateListDrawable
获取 控件 的 属性
控制 点击
28图像视图ImageView
缩放 只针对 src 属性
xy 拉伸 按比例
继承 这个 imageview 自定义
29RadioButton和CheckBox
继承于 线性布局 是一个 视图容器
应用清单
获取 子视图 个数 遍历
得到 radiobtn
判断 checked
点击 按钮 监听
drawable 实现
30开关Switch和ToggleButton
实现这个 接口
绑定 this 这个 acitivity
传入 对象
通过 id 判断
31进度条ProgressBar
下载 和 视频 播放
Oncreate 的 生命周期
每过一秒
就加10
用 handler 来 更新进度
安卓 消息机制 发了个 空消息
在这 接收
再 更新
为什么 不在 线程 里 调用 这个 progress方法
安卓 应该在 UI线程 里 去做
样式
存放 安卓系统 一些 java 库 安卓 库
自定义 样式 吧 太丑
32拖动条SeekBar
视频播放器 进度条
33滚动条控件ScrollView
也是个 容器
文本 滚动浏览
34日期与时间控件
触发回调
35适配器Adapter与AdapterView
适配器 控件 继承 视图容器
list 需要 适配器 展示 数据
适配器 类 的 子类
放好 数据源
item 比较复杂的 结构 继承 Baseadapter
36ListView控件使用方式
创建个 数据 对象 实体类
自定义 adapter
重写
position 每一行 的 下标
getview 返回 每一项 布局结构
获取布局对象
converView 每个 item 的 视图对象
自定义 adapter 和 布局结构
C与 V 绑定
list item 的 点击事件
37适配器BaseAdapter的优化
ontentview 就是 列表中每一项 view
系统自动缓存
可以直接复用 不用每次再重新加载 xml 避免 系统资源浪费
class 存储 item 的 对象
再加载 实现 加载进去 存到对象
把 视图对象 加在 viewHolder 也存起来
标签
视图 以标签形式 保存对象
缓存 存取 方便 可复用
再赋值
38 ListView布局风格Item
返回 指定 試圖 類型
返回 几种 不同 的 item
两种 风格 布局
写 两个 layout
基于 优化 变成 viewHolder
只要是 getview 加载 不同布局 和 渲染不同数据
视图对象 赋值
holder缓存起来
布局 type 数据 区分
39 网格视图GridView
这个view 也是 配合 adapter 使用
adapter 适配器 C层
item 布局风格
实现 它的几个 方法
加载 每个 item grid 布局
多种方式 列表 继承于 视图容器 取代 view 进阶
40 列表选项控件Spinner
也需要 配合 adapter 使用
自定义 下拉 效果
通过 id 找到 spinner
提供数据源
一个实体类
自定义 adapter
定义 每个 item的 风格 跟之前 的 自定义 view一样
绑定适配器
点击事件
触发 方法 得到 下标
41 可折叠列表ExpandableListView
自定义适配器
这个 组
子项
子item
自定义 时候 实现 这几个 方法
创建 俩个 集合
item集合
自定义的 适配器
把两个 数据源 传进来
组 对象 child 子列表 数据
布局 结构 渲染 数据
点击事件
42 Toast吐司控件
widget 包 下 单独 组件类
三个参数
上下文
文本内容
弹出时间
43 对话框控件AlertDailog
组件
lesson 数据源 列表
44 事件分发机制
dispatch 分发
intercept 拦截
自定义 线性 和 button 视图
dispatchtouchevent
Activity 不会向下分发
终止之后的 ontouchEvent也 不执行
同 popupwindow
true 分发事件 会被拦截
就会 执行 onTouchEvent
45 悬浮框控件PopupWindow
46 Android如何创建和启动Activity组件
Activity 解释
AppcompatActivity
setContentView 设置 视图
注册 Activity 和 属性 路径配置
显示启动 隐式启动
匿名启动
主题 对话框 显示 Activity
47 分析Activity组件的生命周期
OnCreate 加载布局 视图
Dialog类型窗口 的 生命周期
Resume重现 可见
48 Activity组件间的通信方式
49 Activity回退堆栈back-stack概念
回退 堆棧 來存儲 管理 Activity Task容器
入栈 出栈 后进先出 没了 就 销毁
50 Activity启动模式之standard模式
standard 不会复用
51 Activity启动模式之singleTop模式
singleTop 复用
P58 第58课 Activity启动模式之singleTask模式
P59 第59课 Activity启动模式之singleInstance模式
P60 第60课 线程概念及三种创建方式
程序 内存空间 进程
Thread 类 run 方法
Runnable run方法
Callable 与 Future 线程
并行执行
构造方法 Thread 传 Runnable
Call 这个 实现 可以返回值
用 FutureTask 来 取值
阻塞 线程 等待 延时 把 值 取出来
P61 第61课 Service组件通过startService启动的生命周期
Service 可复用
P62 第62课 Service组件通过bindService启动的生命周期
binder类 客户端 与 服务 通信
Activity 接收 return 的 值
监听类
P63 第63课 BroadcastReceiver广播组件之动态注册
P64 第64课 BroadcastReceiver广播组件之静态注册
注册 接收
显式 发送广播
P65 第65课 通过ContentProvider组件访问系统应用数据
动态获取 权限
暴露URI
P66 第66课 通过ContentProvider组件暴露应用内部数据给第三方
往 表里 写数据
跨进程
P67 第67课 Fragment两种创建方式
一变多 运行在 一个 界面里 寄宿在 Activity 里
静态标签 加载
自定义的 fragment
加载 布局
动态加载
https://www.bilibili.com/video/BV1PE411u7ox?from=search&seid=1701600622306119124