移动应用-Android开发基础\核心知识点

Android开发基础 知识点
- 1 介绍了解
- 2 系统体系架构
- 3 四大应用组件
- 4 移动操作系统优缺点
- 5 开发工具
- 6 配置工具
- 7 下载相关资源
- 8JDK下载安装流程
- 9配置好SDK和JDK环境
- 10 第一个Hello word
- 11 AS开发前常用设置
- 12模拟器使用运行
- 13 真机调试
- 14 AndroidUI基础布局
- 15 加载展示XML布局
- 16 布局XML中 ID 和 属性
- 17 布局参数类LayoutParmas和xml布局属性
- 18 尺寸单位dppx
- 19 布局margin和padding
- 20 线性布局LinearLayout
- 21 相对布局RelativeLayout
- 22 帧布局FrameLayout
- 23 网格布局GridLayout
- 24 文本控件TextView的常用属性
- gravity 共用属性 视图 /视图容器 都有 的 属性
- gravity和layout_gravity
- 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
- 39 网格视图GridView
- 40 列表选项控件Spinner
- 41 可折叠列表ExpandableListView
- 42 Toast吐司控件
- 43 对话框控件AlertDailog
- 44 事件分发机制
- 45 悬浮框控件PopupWindow
- 46 Android如何创建和启动Activity组件
- Activity 解释
- AppcompatActivity
- setContentView 设置 视图
- 注册 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
- 动态加载
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
相关文章:
移动应用-Android开发基础\核心知识点
Android开发基础 知识点 1 介绍了解2 系统体系架构3 四大应用组件4 移动操作系统优缺点5 开发工具6 配置工具7 下载相关资源8JDK下载安装流程9配置好SDK和JDK环境10 第一个Hello word11 AS开发前常用设置12模拟器使用运行13 真机调试14 AndroidUI基础布局15 加载展示XML布局16…...
Java读取并转换字符串中的浮点数
在写Android接收蓝牙数据的时候,由于传过来的蓝牙数据转换后都为字符串格式,但是需要从其中提取出来浮点数,所以通过查阅资料写出了从字符串中提取并转换为浮点数的方法,特记录下来以供参考。 目录 原始数据内容 提取字符串中的…...
SQL: 索引原理与创建索引的规范
SQL 索引是一种数据结构,用于加速数据库查询操作。它通过在表的列上创建索引,提供了一种快速查找数据的方法,减少了数据库的扫描和比较操作,从而提高了查询性能。索引根据其实现方式可以分为多种类型,如 B-树索引、哈希…...
基于STM32_DS18B20单总线传感器驱动
基于STM32_DS18B20单总线传感器驱动 文章目录 基于STM32_DS18B20单总线传感器驱动前言一、BS18B20?二、原理1.复位与检验2.基本命令3.唯一ROM识别码4.温度转换 三、驱动代码四、注意事项 前言 本文以一款典型的单总线传感器及其驱动——DS18B20为例,简单…...
目标识别项目实战:基于Yolov7-LPRNet的动态车牌目标识别算法模型(三)
前言 目标识别如今以及迭代了这么多年,普遍受大家认可和欢迎的目标识别框架就是YOLO了。按照官方描述,YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的成功基础上,并引入了新的功能和改进,以进一步提升性能和灵活性…...
springboot线程池创建与使用
/*** author: zcs* Title: TaskPoolConfig* Description: 线程池配置* date: 2023/10/11 17:52*/ Component public class TaskPoolConfig {Bean(name "threadPoolTaskExecutor")public Executor taskExecutor() {ThreadPoolTaskExecutor taskExecutor new ThreadP…...
UDP和TCP特点(部分)对比:
传输层的两个主要协议:TCP 和 UDP UDP和TCP特点(部分)对比: UDP:无连接, 不可靠传输, 面向数据报, 全双工。 TCP:有连接, 可靠传输, 面向字节流…...
PostMan环境变量、全局变量、动态参数使用
一、环境准备 postmanmoco [{"description": "登录认证","request": {"uri": "/login","method": "post","forms": {"user": "admin","password": "a123…...
服务器数据恢复-服务器硬盘指示灯黄灯闪烁的数据恢复案例
服务器数据恢复环境: 服务器面板上的硬盘指示灯显示黄色是一种警告,提示指示灯对应的服务器硬盘已经被服务器识别出存在故障,硬盘即将下线。如果出现这种情况,建议服务器管理员/运维人员及时用完好的硬盘替换显示黄色指示灯对应的…...
ts 分发
在 TypeScript 中,"分发"(distributive)是指在条件类型中的联合类型上自动进行类型推断的机制。当使用条件类型操作联合类型时,TypeScript 会自动将联合类型中的每个成员都应用该条件类型。 下面是一个示例:…...
SQL中的group by使用注意事项
在 SQL 中,GROUP BY 语句用于将查询结果按照指定的列进行分组,并对每个分组计算聚合函数(如 SUM、AVG、COUNT 等)的值。一般情况下,如果查询中包含聚合函数,那么就需要使用 GROUP BY 语句将查询结果按照指定…...
矩阵剪辑系统源码----pc/手机端双开发
剪辑系统,剪辑矩阵系统,剪辑矩阵系统主要是针对抖音、快手、bili平台的一个工具,今天就来给大家交流一下这 个产品的主要功能以及构成。剪辑矩阵系统,矩阵剪辑系统源码-这产品主要功能就是一个视频剪辑功能,这个视频剪…...
0基础学习VR全景平台篇 第106篇:认识调色软件Lightroom
上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 正式开讲之前需要先引出一个概念:到底什么是调色? 比如说上面这张照片,你可能会具体的指出照片中的元素有天空、山脉、草地等…… 如果我们跳出我们的固…...
React如何优化减少组件间的重新Render
目前写了不少React的项目,发现React有些特点更灵活和注重细节,很多东西需要有一定的内功才能掌握好;比如在项目中常常遇到的组件重复渲染,有时候组件重复渲染如果内容是纯文本,不打印日志就不容易发现重复渲染了&#…...
mysql面试题44:MySQL数据库cpu飙升的话,要怎么处理?
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL数据库cpu飙升的话,要怎么处理呢? 当MySQL数据库的CPU使用率飙升时,可能表示数据库负载过重或存在性能问题。以下是处理MySQL数据库CPU飙…...
动画圆圈文字标志效果
效果展示 CSS 知识点 实现圆圈文字animation 属性回顾 实现思路 从效果的实现思路很简单,其实就是两个圆圈就可以实现。外层大圆(灰色)用于圆圈文字的展示,而内圆(藏青色)主要用于存放 Logo 图片。布局采…...
【数据结构】二叉树--顺序结构及实现 (堆)
目录 一 二叉树的顺序结构 二 堆的概念及结构 三 堆的实现 1 包含所有接口 (Heap.h) 2 初始化,销毁和交换(Heap.c) 3 向上调整(Heap.c) 4 插入(Heap.c) 5 向下调整(Heap.c) 6 删除(Heap.c) 7 打印&#…...
适用于嵌入式单片机的差分升级通用库
转至:痞子衡嵌入式半月刊:第 81 期 1、mcu_bsdiff_upgrade - 适用于嵌入式单片机的差分升级通用库 mcu_bsdiff_upgrade 是一款适用于嵌入式单片机的差分升级库,通用所有单片机,如stm32、华大、复旦微、瑞萨等。适合嵌入式的差分升…...
Exposure Normalization and Compensation for Multiple-Exposure Correction 论文阅读笔记
这是CVPR2022的一篇曝光校正的文章,是中科大的。一作作者按同样的思路(现有方法加一个自己设计的即插即用模块以提高性能的思路)在CVPR2023也发了一篇文章,名字是Learning Sample Relationship for Exposure Correction。 文章的…...
Arduino驱动BMI160 6轴惯性运动传感器(惯性测量传感器篇)
目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》
近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…...
