《安全攻防与底层交互》
教学大纲
一、课程教学目标
(一)知识目标
目录
一、课程教学目标 2
(一)知识目标 2
(二)高度目标 2
1.1 需求分析,框架说明 5
1.2 Iview,Imodel,Ipresenter,Iactivity,IFragment编写 5
1.3 Base类封装以及内存泄漏处理 5
1.4 BaseBean封装,ErroBean封装,冷启动优化 5
2.1 Oauth鉴权机制说明以及使用 6
2.2 RX全家桶框架封装 6
2.3 OkHttp自定义拦截器 6
2.4 自定义Gson工厂 6
3.1 下载框架封装 6
3.2 Glide缓存机制 6
3.3 Glide框架二次封装 6
3.4 Junit框架测试 7
4.1SP缓存配置信息工具类封装 7
4.2 Sqlite数据库封装 7
4.3 GreenDao使用 7
4.4 项目缓存逻辑编写 7
5.1 Sign工具类封装 8
5.2 用户登录,注册逻辑编写 8
5.3 个人信息逻辑编写 8
5.4 组件间通信 8
6.1 关注模块编写 9
6.2 私信模块编写 9
6.3 消息模块编写 9
6.4 动态模块编写 9
7.1礼物首页模块 9
7.2 礼物详情模块 9
7.3 组件间通信 9
7.4 礼物订单模块 9
8.1 支付宝沙箱支付封装 10
8.2 虚拟快手币模块 10
8.3 充值模块 10
8.4 组件间通信 10
9.1 点赞发评论模块编写 10
9.2 评论列表模块编写 11
9.3首页以及关注模块 11
9.4同城模块,视频详情页 11
10.1 用户搜索模块 11
10.2 短视频搜索模块 11
10.3 附近搜索模块 11
10.4 推荐模块 11
11.1 下载ndk,配置ndk 12
11.2 创建ndk 工程,gradle 配置 abifilter 12
11.3 java 调用c++ 传递参数返回数据 12
11.4 C++ 调用java方法 12
12.1播放本地和网络视频 12
12.2小窗口播放 13
12.3使用jsy播放器 13
12.4 播放器组件封装与编写 13
13.1录音录制视频 13
13.2 surface view自定义摄像机 13
13.3 texture view 预览 13
13.4 短视频采集组件编写 13
14.1介绍arcore 14
14.2引入框架 14
14.3加载图片 加载3d 物体 14
14.4加载3d 物体 14
15.1弹幕效果 14
15.2小窗口播放 14
15.3亮度调节 14
15.4广告 15
16.1 腾讯SDK接入 15
16.2 礼物系统接入 15
16.3 发起直播 15
16.4 组件间通信 15
17.1 Umeng推送模块封装 16
17.2 Umeng分享模块封装 16
17.3 Umeng统计模块封装 16
17.4 组件封装与通信 16
18.1 后台更新 16
18.2 tinker热修复框架原理 16
18.3 tinker热修复框架接入使用 16
18.4 更新组件封装以及使用 16
19.1 v1,v2打包,打包过程 17
19.2 代码混淆 17
19.2.1 混淆原生封装代码 17
19.3 三方框架混淆 17
19.4 加固软件使用 17
20.1 bug修复 18
20.2 bug检测 18
20.3 流程分析 18
20.4 直播上线 18
(二)高度目标
(四)思路目标
1. 通过对android产品开发的体系,提高学生对产品开发的思路、产品开发的目 标、产品的功能、产品的迭代创新等整个产品开发流程和实现的掌握.
2. 通过对Android控件的学习,针对不同页面布局,给出不同的排版方式.
3. 通过对Activity的学习, 深入了解Activity的启动方式和跳转,明白如何通 过Activity实现复杂数据的传递,实现多个页面的跳转.
4. 通过ScrollView的学习,深入了解如何实现一个页面, 超出一屏内容的显示.
5. 通过对Spinner的学习, 在不同展示效果中选择合适的适配器.
6. 通过WebView+js的学习,实现在当前的应用中,加载网络页面.
7. 通过对Json解析的学习,深入了解Json格式,给出不同Json格式的解析方式.
8. 通过对Http的学习,实现与服务器Get/Post请求,实现文件的上传和下载.
9. 通过对Handler,掌握线程之间传递消息的方法和作用.
10.通过ListVIew的学习,深入了解ListView的属性和作用,根据不同的接口地址, 加载数据,通过ListView的优化处理, 展示在ListView中, 掌握ListView多 布局显示的核心知识 .
11.通过GridView的学习, 深入了解GridView的属性和使用方式.
二、课程教学内容
(一)教学内容及考核要求
1.1 需求分析,框架说明
1.1.1 项目分析
1.1.2 界面分析
1.2 Iview,Imodel,Ipresenter,Iactivity,IFragment编写
1.2.1 MVP接口的封装以及作用
1.3 Base类封装以及内存泄漏处理
1.3.1 MVP中Base类的封装;
1.3.2 MVP中针对网络请求内存泄漏处理
1.4 BaseBean封装,ErroBean封装,冷启动优化
1.4.1 实体基类封装
1.4.2 软件冷启动优化
知识目标:
2.1 Oauth鉴权机制说明以及使用
2.1.1 oauth 鉴权机制
2.1.2 oauth 鉴权作用
2.1.3 oauth鉴权使用
2.2 RX全家桶框架封装
2.2.1 rxjava+retrofit+okhttp+gson整合
2.2.2 网络请求框架封装
2.3 OkHttp自定义拦截器
2.3.1 添加日志拦截器
2.3.2 添加自定义拦截器
2.4 自定义Gson工厂
2.4.1自定义retrofit的GSON解析工厂
知识目标:
1.掌握oauth鉴权机制以及使用。
2.掌握rx全家桶整合。
3.掌握okhttp自定义拦截器。
4.掌握自定义gson解析工厂。
能力目标:
1.RX全家通整合与封装。
2.OkHttp拦截器
3.自定义GSON解析工厂。
速度目标:
1.10分钟内通过画图工具, 绘制rx全家桶请求过程。
2.40分钟内编写搭建rx全家桶请求。
3.10分钟内实现rx全家桶封装。
3.1 下载框架封装
3.1.1 rx全家桶下载更新封装
3.2 Glide缓存机制
3.2.1 Glide三级缓存原理
3.3 Glide框架二次封装
3.3.1 Glide框架基本使用封装
3.3.2 Glide框架圆角图片封装
3.4 Junit框架测试
3.4.1 Junit测试MVP中M层接口是否可以使用
知识目标:
1.掌握RX全家桶单例线程池封装使用。
2.掌握Glide基本封装。
3.掌握Glide圆角封装。
4.掌握junit单元测试。
能力目标:
1.会RX全家桶单例线程池封装。
2.会Glide基本封装
3.会junit单元测试。
速度目标:
1.40分钟内封装完成RX全家桶。
2.40分钟内编写Glide基本封装以及圆角图片。
3.10分钟内实现junit单元测试。
4.1SP缓存配置信息工具类封装
4.1.1单例SP存储工具类封装
4.2 Sqlite数据库封装
4.2.2Sqlite工具类封装
4.3 GreenDao使用
4.3.1 GreenDao 增删改查操作
4.4 项目缓存逻辑编写
4.4.1 直播客户端数据库操作工具类编写
4.4.2 直播客户端数据库网络数据缓存工具类封装
知识目标:
1.掌握SP单例工具类封装。
2.掌握Sqlite封装。
3.掌握GreenDao使用。
4.掌握缓存业务逻辑。
能力目标:
1.会搭建SP单例工具类。
2.会Sqlite单例工具类
3. 掌握缓存业务逻辑。
速度目标:
1.20分钟内通过画图工具, 绘制缓存业务逻辑。
2.20分钟内编写搭建SP单例工具类。
3.20分钟内实现Sqlite单例工具类。
5.1 Sign工具类封装
5.1.1 rsa签名工具类封装
5.2 用户登录,注册逻辑编写
5.2.1 用户登录逻辑编写
5.2.2 用户注册逻辑编写
5.3 个人信息逻辑编写
5.3.1 个人信息展示页面
5.3.2 个人信息编辑页面
5.4 组件间通信
5.4.1 封装用户系统组件
知识目标:
1.掌握Sign的作用以及封装。
2.掌握登录注册逻辑以及编写。
3.掌握个人信息系统编写。
能力目标:
1.会Sign生成以及使用。
2.会登录注册逻辑以及编写
3.会个人信息系统编写。
速度目标:
1.10分钟内通过画图工具, 绘制Sign作用以及业务流程。
2.40分钟内编写Sign签名。
3.40分钟内实现登录注册个人系统。
6.1 关注模块编写
6.1.1 关注模块编写
6.2 私信模块编写
6.2.1 私信列表编写
6.2.2 发私信编写
6.3 消息模块编写
6.3.1 自定义快手通知样式
6.3.2 通知跳转视频详情页
6.4 动态模块编写
6.4.1 动态列表编写
6.4.2 图片详情编写
知识目标:
1.掌握关注私信消息动态业务流程。
2.掌握关注私信消息动态业务编写。
能力目标:
1.会关注私信消息动态业务流程。
2.会关注私信消息动态业务编写
速度目标:
4.10分钟内通过画图工具, 绘制关注私信消息动态业务流程。
5.40分钟内编写关注私信消息业务编写。
6.40分钟内实现动态业务编写。
7.1礼物首页模块
7.1.1 礼物首页编写
7.2 礼物详情模块
7.2.1 礼物详情编写
7.3 组件间通信
7.3.1 礼物系统封装
7.4 礼物订单模块
7.4.1 生成礼物订单
知识目标:
1.掌握礼物系统业务逻辑。
2.掌握礼物以及礼物订单的编写。
能力目标:
1.会礼物系统业务逻辑。
2.会礼物以及礼物订单的编写
速度目标:
1.10分钟内通过画图工具, 绘制礼物系统业务架构。
2.60分钟内编写搭建礼物系统。
8.1 支付宝沙箱支付封装
8.1.1 支付宝支付接入以及封装
8.2 虚拟快手币模块
8.2.1虚拟币模块分析
8.3 充值模块
8.3.1 充值模块封装
8.4 组件间通信
8.4.1 礼物充值组件封装
知识目标:
1.掌握支付宝支付封装以及使用。
2.掌握虚拟货币系统。
3.掌握充值系统。
能力目标:
1.会搭建虚拟货币系统。
2.会处理充值系统。
速度目标:
1.10分钟内通过画图工具, 绘制支付流程。
2.40分钟内编写虚拟货币系统。
3. 40分钟内编写充值系统。
9.1 点赞发评论模块编写
9.1.1 点赞模块编写
9.1.2 评论模块编写
9.2 评论列表模块编写
9.2.1 评论列表模块
9.3首页以及关注模块
9.3.1 首页模块编写
9.3.2 关注模块编写
9.4同城模块,视频详情页
9.4.1 同城模块编写
9.4.2 视频详情页编写
知识目标:
1.掌握点赞评论模块业务逻辑。
2.掌握首页关注同城页面业务逻辑编写。
能力目标:
1.会搭建点赞评论模块。
2.会编写首页关注同城页面
3.会首页关注同城页面间切换。
速度目标:
1.10分钟内通过画图工具, 绘制点赞评论架构。
2.40分钟内编写首页关注同城页面。
3.40分钟内实现点赞评论。
10.1 用户搜索模块
10.1.1 搜索组件业务分析
10.2 短视频搜索模块
10.2.1 短视频搜索编写
10.3 附近搜索模块
10.3.1 定位集成
10.3.2 同城列表编写
10.4 推荐模块
10.4.1 推荐模块编写
知识目标:
1.掌握搜索机制以及使用。
2.掌握搜索业务编写。
3.掌握同城模块编写。
4.掌握推荐模块编写。
能力目标:
1.会搜索业务编写。
2.会同城模块编写
3.会推荐模块编写。
速度目标:
1.40分钟内编写搜索业务。
2.40分钟内编写同城模块。
3.40分钟内实现推荐模块编写。
11.1 下载ndk,配置ndk
11.1.1 NDK 环境搭建
11.2 创建ndk 工程,gradle 配置 abifilter
11.2.1 创建NDK工程以及配置
11.3 java 调用c++ 传递参数返回数据
11.3.1 java 向c++传递数据
11.4 C++ 调用java方法
11.4.1 c++调用java
知识目标:
1.掌握NDK环境搭建。
2.掌握java与c++通信。
能力目标:
1.会搭建NDK环境。
2.会处理java与c++通信
速度目标:
1.10分钟内通过画图工具, 绘制java与c++通信流程。
2.40分钟内编写java与c++通信。
3.40分钟内搭建NDK环境。
12.1播放本地和网络视频
12.1.1播放本地视频
12.1.2 播放网络视频
12.2小窗口播放
12.2.1 小窗播放视频
12.3使用jsy播放器
12.3.1 jsy 播放器集成与使用
12.4 播放器组件封装与编写
12.4.1 封装播放器界面以及播放器控制器
知识目标:
1.掌握ijkplayer播放器使用。
2.掌握jsy播放器使用。
能力目标:
1.会搭建及配置ijkplayer播放器。
2.会使用jsy播放器。
速度目标:
1.40分钟内编写使用ijkplayer播放器。
2.40分钟内编写使用jsy播放器。
13.1录音录制视频
13.1.1 录制音频
13.1.2 录制视频
13.2 surface view自定义摄像机
13.2.1 自定义摄像机实现
13.3 texture view 预览
13.3.1 视频预览功能实现
13.4 短视频采集组件编写
13.4.1 短视频录制组件封装
知识目标:
1.掌握mediaRecorder生命周期。
2.掌握mediaRecorder录制音频。
3.掌握mediaRecorder录制视频。
4.掌握texture view预览视频。
能力目标:
1.会mediaRecorder录制音视频。
2.会texture view预览视频
速度目标:
1.10分钟内通过画图工具, 绘制mediaRecorder生命周期。
2.40分钟内编写mediaRecorder录制音视频。
3.10分钟内实现texture view预览视频。
14.1介绍arcore
14.2引入框架
14.2.1 arcore 框架搭建
14.3加载图片 加载3d 物体
14.3.1 arcore 加载图片
14.3.2 arcore 加载3d物体
14.4加载3d 物体
14.4.1 加载3d物体
知识目标:
1.掌握arcore框架搭建。
2.掌握arcore 加载图片。
3.掌握arcore 加载3d物体。
能力目标:
1.会搭建arcore框架。
2.会arcore 加载图片
3.会使用arcore 加载3d物体。
速度目标:
15.1弹幕效果
15.2小窗口播放
15.3亮度调节
15.4广告
15.4.1片头广告
15.4.2中间广告
知识目标:
1.掌握弹幕特效。
2.掌握小窗口播放。
3.掌握片头广告,中间广告。
能力目标:
1.会弹幕特效。
2.会编写小窗口播放
3.会使用片头广告,中间广告。
速度目标:
1.10分钟内通过画图工具, 绘制弹幕特效原理。
2.40分钟内编写弹幕特效。
3.40分钟内实现片头广告,中间广告。
16.1 腾讯SDK接入
16.1.1 腾讯视频SDK接入
16.2 礼物系统接入
16.2.1腾讯视频礼物系统接入
16.3 发起直播
16.3.1 使用腾讯SDK发起直播
16.4 组件间通信
16.4.1 直播组件封装与集成
知识目标:
1.掌握腾讯SDK接入。
2.掌握腾讯SDK直播功能。
能力目标:
1.会搭建及配置腾讯SDK接入。
2.会处理腾讯SDK直播功能
速度目标:
1.10分钟内通过画图工具, 绘制腾讯SDK接入。
2.40分钟内编写腾讯SDK直播功能。
17.1 Umeng推送模块封装
17.1.1 推送模块封装
17.1.2 与6单元消息系统组合生成订制通知
17.2 Umeng分享模块封装
17.2.1 Umeng 分享模块封装
17.2.2 Umeng 分享自定义控件实现底部弹窗效果
17.3 Umeng统计模块封装
17.3.1 Umeng用户感兴趣视频分析与封装
17.4 组件封装与通信
17.4.1 Umeng组件化封装
知识目标:
1.掌握Umeng推送。
2.掌握Umeng分享。
3.掌握Umeng统计。
能力目标:
1.会Umeng推送。
2.会Umeng分享
3.会Umeng统计。
速度目标:
1.40分钟内编写Umeng推送。
2.40分钟内编写Umeng分享。
3.40分钟内实现Umeng统计。
18.1 后台更新
18.1.1 使用封装的下载模块后台更新
18.2 tinker热修复框架原理
18.2.1 tinker热修复框架机制原理
18.3 tinker热修复框架接入使用
18.3.1 tinker热修复框架接入使用
18.4 更新组件封装以及使用
18.4.1 更新组件封装
知识目标:
1.掌握tinker机制以及使用。
2.掌握后台更新原理以及实现。
能力目标:
1.会搭建及配置tinker。
2.会处理后台更新
速度目标:
1.10分钟内通过画图工具, 绘制tinker原理。
2.40分钟内编写后台更新。
19.1 v1,v2打包,打包过程
19.1.1 v1 v2 打包的区别
19.1.2 打包
19.2 代码混淆
19.2.1 混淆原生封装代码
19.3 三方框架混淆
19.3.1 常用三方框架添加混淆例外
19.4 加固软件使用
19.4.1 360加固宝使用
知识目标:
1.掌握打包技术。
2.掌握原生以及三方混淆加固。
能力目标:
1.会软件打包技术。
2.会处理原生以及三方混淆加固
速度目标:
1.10分钟内通过画图工具, 绘制软件打包流程。
2.40分钟内编写处理原生以及三方混淆加固。
3.10分钟内实现软件打包技术。
20.1 bug修复
20.2 bug检测
20.3 流程分析
20.4 直播上线
知识目标:
1.掌握上线流程。
能力目标:
1.会上线流程
速度目标:
1.10分钟内绘制上线流程。