前言

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
  • 前言
  • 目录
  • 从使用角度看结构
  • 分析准备
  • 数据的产生
  • 数据的消费

因篇幅有限,《Android编程入门教程》内容较多,需要完整版《Android编程入门教程》文档可以【点击此处免费获取~