前言
Android 系统是目前世界上市场占有率最高的移动操作系统,而 Android 系统近两年经历了很多新版本的发布,特别是一些新兴热门框架技术的引用。为方便朋友入门安卓应用开发,整理的 Android 新手教程 2021 版。突出一个简单明了,上手快。从实用性出发,快速掌握 Android 开发基本技能。
《Android编程入门教程》分为 Java语言基础从入门到熟悉、Kotlin语言基础从入门到熟悉、Android 技术栈从入门到熟悉、Android Jetpack 全家桶全面学习 四个部分,共70个小章节,776页。
Java语言基础从入门到熟悉
一. Java综述
- 面向对象
- 设计模式
二. Java基础
- 基础笔记
- 接口与抽象类
三. class
- Java 类的基础,class 基础
- Java 类初始化顺序
- 接口与抽象类
- Java equals 方法与 == 的区别
四. 面向对象
- 抽象,封装,继承,多态
- 多态
五. 容器
- Java集合类
- ArrayList介绍
- Map
六. 多线程
- 线程简介
- Java 读写锁
七. IO
- Java读写文件
- Java读写xls文件
八. 正则表达式
- 使用正则表达式
- 查找特定字符串
- 提取特定字符
- 例子1:从非字母中间提取出字母。
- 例子2:从非字母中间找到英文单词。
九. 日历
- 按日计算年龄
十. 注解使用与简单说明
- 使用注解
十一. Java使用加密算法
- MD5
Kotlin语言基础从入门到熟悉
一. Kotlin系列简介
- 系列大纲
二. 新建项目
- Hello World
- 变量
三. 概念介绍
- 包的定义和使用
- 程序入口
- 标准输出
- 方法
- 变量
- 创建类与实例
- 注释
- 字符串模版(String tempplates)
- 条件表达式
- for循环
- while循环
- when表达式
- 范围
- 集合
- 可为null的值和null检查
- 类型检查和自动转换
四. 常用写法
- 方法参数的默认值
- 过滤列表
- 检查某个元素是否在集合里
- String插值
- 只可读的列表
- 只可读的 map
- while 循环读写流
五. lambda
- 什么是 Lambda 表达式
- 简化 Lambda 表达式
- 从 Lambda 中返回
- Lambda 表达式的类型
- SAM 转换
六. 高阶函数
- 高阶函数介绍
- Kotlin常用标准高阶函数介绍
- 自定义高阶函数
七. 扩展函数
- 何为扩展函数
- 扩展函数的解析为静态的
- 扩展函数不支持多态
- 扩展函数的作用域
八. 协程
Kotlin协程入门 Kotlin协程基础 Kotlin协程取消与超时
Android 技术栈从入门到熟悉
一. 开始
- 新建App工程
- Android项目使用kotlin
二,Activity
- Android Activity综述
- Activity 生命周期
- Activity 启动,携带参数启动
- Activity 传递Parcelable对象
- Activity 返回时携带参数
- Activity 启动模式,任务和返回栈
- Activity 过场动画效果
- Activity 中获取 View 的宽高
三. Service 服务
- Service 综述
- 后台服务
- 启动前台服务
- IntentService 分析和用法
四. Broadcast 广播机制
- 广播机制 Broadcast 介绍与使用
- Android 监听屏幕亮灭
五. Fragment
- Fragment 基础概念
- Fragment 加载方法
- Fragment 间的通信
- DialogFragment
六. res应用资源
- res资源目录简介
- shape的绘制和使用
- Android Button,TextView背景增添动感
- Android使用第三方字体
- 使用shape来绘制虚线
- 适配
七. 权限
- Android 添加自定义权限
八. TextView 显示文字
- TextView简介
- textStyle
- Android 字体(字库)
- 特殊字符
- SpannableString
九. EditText 用户输入
- EditText 监听回车
- EditText 光标移动与选择
- 监听输入内容
- PopupWindow 中 EditText 无法编辑,无法弹出软键盘
- EditText 弹出软键盘遮住输入框问题
十. Button 按钮
十一. ImageView 图片显示
- 导言
- ImageView的使用
十二. Layout布局
- LinearLayout简述
- RelativeLayout 相对布局
- 使用 ConstraintLayout 构建自适应界面
- 使用链控制线性组
十三. DrawerLayout侧滑栏
- Android DrawerLayout 使用示例
十四. RecyclerView 显示列表
- RecyclerView使用入门
- RecyclerView实际使用
- RecyclerView响应子项点击
- RecyclerView显示多种item
- RecyclerView获取滑动距离
- clipToPadding介绍
- 使用RecyclerView来创建一个颜色选择板
- 侧滑删除,拖动排序
- 瀑布流效果
- 取消子项更新动画
十五. 多线程
- Android多线程综述
- 线程池
- Handler
- 协程
- AsyncTask 使用介绍
十六. IO 操作
- 读写文件
- mmap 文件映射到内存介绍
- MappedByteBuffer文件映射内存使用示例
十七. 存储
- SharedPreferences 简介
十八. NetWork 网络
- URLConnection
- Android P 网络请求开始强制要求https
- OkHttp
十九. ProgressBar进度条
- 进度条
二十. View
- View的综述
- View.MeasureSpec简述
- Android View post 方法
二十一. 自定义View
- 文字位置信息
- 裁剪画布 canvas clip path
- Android SurfaceView简介与使用
- Android 自动缩放上下限的折线图
二十二. 动画
- Android应用的动画
- 使用AnimationDrawable
- 补间动画
- ObjectAnimator 更改视图位置
二十三. WebView
- WebView 各项使用说明
- 显示 html 文本
- WebView 加载 assets 中的网页
- WebView 加载本地存储的网页
- WebView 在 NestedScrollView 中高度不稳定
- 自定义长按文字弹出的菜单
- x5 WebView 自定义长按菜单
- js 调用 Java 方法
二十四. StatusBar
- 获取高度
- Android7.0及以后沉浸式状态栏变灰问题
二十五. Camera相机
- Android 使用 Android Camera API 完成音视频的采集、编码、封包成 mp4 输出
- Android 分别使用 SurfaceView 和 TextureView 来预览 Camera,获取NV21数据
二十六. Media
- MediaPlayer 多媒体播放器
- Audio 音频
- 视频
- H.264简介
- YUV格式简介
二十七. Bluetooth 蓝牙
- Android Bluetooth 蓝牙2.0使用方式
- Android SPP连接蓝牙设备注意事项
二十八. WiFi连接
- 概述
- 申请权限
- WiFi信息扫描
- 将WiFi搜索结果显示出来
- 连接WiFi
二十九. 获取手机当前角度
- 姿态角度信息
三十. launcher
- 简易launcher
三十一. AIDL
- Android AIDL 了解与使用
三十二. zip
- Android 压缩字符串
- 使用ZipFile进行解压
三十三. Binder
- Android Binder 机制介绍
- Android Intent 传递数据大小限制
三十四. Notification 通知
- Notification 使用
三十五. PackageManager
- PackageManager的一些基础用法
- 代码重启app的方法
三十六. RTFSC
- 认识 Android Context
- Android SparseArray 原理解析
三十七. 设计模式
- 适配器模式 Adapter Pattern - Java实现
- 监听者模式 - 在Java与Android中的使用
- 桥接模式 Bridge Pattern
- 建造者模式 Builder Pattern
- 命令模式
- 装饰者模式
- 策略模式
- 工厂方法
- 迭代器
- 中介者
- 备忘录模式
- 原型模式
- 代理模式
- 责任链模式
- 状态模式
- 模板方法模式
- 访问者模式
- 享元模式
- 门面模式
三十八. 第三方库
- RxAndroid 使用方法
- 汉字转拼音库 TinyPinyin
- EventBus
三十九. Android Studio
- 使用Android Studio
- SuppressWarnings
- 从硬盘安装插件
四十. 模块化
- 重构工程,模块化思路和步骤
- Android 蓝牙管理模块
- 使用git submodule管理模块
- 问题与方法
四十一. Gradle
- gradle简介
- Gradle for Android开始
- Gradle 基础自定义构建
- Gradle 构建多种版本
- Android Studio Gradle 下载速度慢解决方法
四十二. NDK
- 开始
- JNI 返回值
- 字符串的使用
- 打 log
- 访问域
- Android NDK Makefile 相关示例
- Android NDK 使用 .a文件
- IO
- NDK 中动态注册 JNI 方法
- 用 sprintf 代替 itoa
四十三. 调试
- adb
- 机器设置
- ANR介绍
Android Jetpack 全家桶全面学习
一. 介绍
- 在 Fragment 之间共享数据
二. databinding
- 使用databinding
- 数据绑定
- 使用可观察数据对象ObservableField
- 点击事件
- 表达式语言
- layout中的data
- databinding中的layout include
- 双向数据绑
- 绑定适配器定
三. LiveData 事件传送
- 准备数据类型
- layout
- Activity设置
四. LifeCycle 生命周期
- 活动
- 状态转换
- LifecycleOwner
- 实现自定义 LifecycleOwner
五. WorkManager
- 入门示例
- WorkManager工作约束,延迟与查询工作
- WorkManager定时任务
六. ViewModel
- ViewModel 概览
- Activity使用ViewModel
- Activity与Fragment用同一个ViewModel
七. 数据库
- 开始使用Room
- 实体类介绍
- 添加数据(Insert)
- 更新数据(Update)
八. Paging
- 前言
- 目录
- 从使用角度看结构
- 分析准备
- 数据的产生
- 数据的消费