Android通用框架设计与完整电商App开发
下载地址:百度云盘
本课程面向Android工程师的进阶课程
想提高项目框架设计能力
想更好地实现业务功能实现能力
想同时提高项目框架与业务实现的双重能力
学前必备技术
有Android项目基础,有精益求精的精神,不只满足于功能实现
章节目录:
第1章 课程介绍及APP效果展示(Java版)
本章概述了本课程大家能学到什么,老师如何讲解,为什么这么讲解,并介绍了框架的整体架构设计与模块分解,最后展示了用自己设计的框架开发出来的完整电商APP的效果图
1。四位数字字母验证码的生成实例
1 import random 2 if __name__ =="__main__": #四位数字字母验证码的生成 3 checkcode="" #保存验证码的变量 4 for i in range(4): 5 index=random.randrange(0,4) #生成一个0~3中的数 6 if index!=i and index +1 !=i: 7 checkcode +=chr(random.randint(97,122)) # 生成a~z中的一个小写字母 8 elif index +1==i: 9 checkcode +=chr(random.randint(65,90) ) # 生成A~Z中的一个大写字母 10 else: 11 checkcode +=str(random.randint(1,9)) # 数字1-9 12 print(checkcode)
输出为:m47A、8wQ9、vugS
-------------------------------
2。格式化时间函数
1 def formatTime(longtime): 2 '''格式化时间的函数''' 3 import time 4 return time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(longtime))
--------------------------------
3。记载显示登录日志实例
import time def show_info(): print('''输入提示数字,履行相应操作 0:退出 1:检查登录日志 ''') def write_loginfo(username): """ 将用户名和登录时间写入日志 :param username: 用户名 """ with open('log.txt','a') as f: string = "用户名:{} 登录时间:{}\n".format(username ,time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))) f.write(string) def read_loginfo(): """ 读取日志 """ with open('log.txt','r') as f: while True: line = f.readline() if line == '': break # 跳出循环 print(line) # 输出一行内容 if __name__ == "__main__": # 输入用户名 username = input('请输入用户名:') # 检测用户名 while len(username) < 2 : print('用户名长度应不少于2位') username = input('请输入用户名:') # 输入暗码 password = input('请输入暗码:') # 检测暗码 while len(passw ord) < 6 : print('暗码长度应不少于6位') password = input('请输入暗码:') print('登录成功') write_loginfo(username) # 写入日志 show_info() # 提示信息 num = int(input('输入操作数字:')) # 输入数字 while True: if num == 0: print('退出成功') break elif num == 1: print('检查登录日志') read_loginfo() show_info() num = int(input('输入操作数字:')) else: print('您输入的数字有误') show_info() num = int(input('输入操作数字:')) ------------------------------
3。模仿淘宝客服自动回复
1 # 任务2:模仿淘宝客服自动回复 2 3 def find_answer(question): 4 with open('reply.txt','r') as f : 5 while True: 6 line=f.readline() 7 if not line: #也能够为if line=='' 8 break 9 keyword=line.split('|')[0] 10 reply=line.split('|')[1] 11 if keyword in question: 12 return reply 13 return '对不起,没有你想要找的问题' 14 15 if __name__ =='__main__': 16 question=input('请输入想要提问的内容:') 17 while True: 18 if question=='bye': 19 break 20 reply=find_answer(question) 21 if not reply: 22 question=input("小蜜不明白您在说什么,您能够问一些与订单、账户和付出相关的内容(退出请输入bye):") 23 else: 24 print(reply) 25 question=input("您能够问一些与订单、账户和付出相关的内容(退出请输入bye):") 26 print('谢谢,再见!') 27
4。求最大公约数和最小公倍数 (弯曲相除法)
最大公约数:指两个或多个整数共有约数中最大的一个
最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其间除0以外最小的一个公倍数就叫做这几个整数的最小公倍数
二者联系:两个数之积=最小公倍数*最大公约数
1 a=int(input('输入数字1:')) 2 b=int(input('输入数字2:')) 3 s=a*b 4 while a%b!=0: 5 a,b=b,(a%b) 6 print(a) 7 print(b) 8 else: 9 print(b,'is the maximum common divisor最大公约数') 10 print(s//b,'is the least common multiple,最小公倍数')
更相减损法
1 a=int(input('please enter 1st num:')) 2 b=int(input('please enter 2nd num:')) 3 s=a*b 4 5 while a!=b: 6 if a>b: 7 a-=b 8 elif a<b: 9 b-=a 10 else: 11 print(a,'is the maximum common divisor') 12 print(s//a,'is the least common multiple') 13 14 #工作效果 15 please enter 1st num:40 16 please enter 2nd num:60 17 20 is the maximum common divisor 18 120 is the least common multiple
5。判别是否为闰年 (弯曲相除法)
1 # 判别是否为闰年 2 while True: 3 try: 4 num=eval(input("请输入一个年份:")) 5 except: 6 print('输入过错年份') 7 continue 8 if (num %4==0 and num%100 !=0) or num %400==0: 9 print(num,"是闰年") 10 else: 11 print(num,"不是闰年")
import calendar year = int(input("请输入年份:")) check_year=calendar.isleap(year) if check_year == True: print ("闰年") else: print ("平年")
6。Python统计字符串中数字,字母,汉字的个数
1 import re 2 str_test='abcdefgHABC123456中华民族' 3 4 #把正则表达式编译成目标,假设经常运用该目标,此种方法可进步必定功率 5 num_regex = re.compile(r'[0-9]') 6 zimu_regex = re.compile(r'[a-zA-z]') 7 hanzi_regex = re.compile(r'[\u4E00-\u9FA5]') 8 9 print('输入字符串:',str_test) 10 #findall获取字符串中所有匹配的字符 11 num_list = num_regex.findall(str_test) 12 print('包含的数字:',num_list) 13 zimu_list = zimu_regex.findall(str_test) 14 print('包含的字母:',zimu_list) 15 hanzi_list = hanzi_regex.findall(str_test) 16 print('包含的汉字:',hanzi_list)
#羊车门问题
1 import random as r 2 3 #总次数 4 total=1000000 #1000,1W,10W,100W 5 #换与不换的制胜次数 6 win1=0 7 win2=0 8 9 for i in range(total): 10 #模仿选择过程 11 man=r.randint(1,3) 12 car=r.randint(1,3) 13 #效果:一开始为车门,不换+1. 14 # 不然则一开始为羊门,换+1. 15 if man==car: 16 win1+=1 17 else: 18 win2+=1 19 20 print("在{}次试验中:".format(total)) 21 print("若不更改门,制胜概率为{:.3}%.".format((win1/total)*100)) 22 print("若更改门,制胜概率为{:.3}%.".format((win2/total)*100))
1 import random 2 x=random.randint(5000,10000) 3 print(x) 4 change=0 5 nochange=0 6 for i in range(1,x+1): 7 a=random.randrange(1,4) 8 b=random.randrange(1,4) 9 if a==b: 10 nochange=nochange+1 11 else: 12 change=change+1 13 print("不更改选择得到轿车的概率为{:.2f}".format(nochange/x))
1-1 课前必读(不看会错过一个亿)
1-2 课程导学
1-3 项目架构设计与模块分解
第2章 项目初始化
本章将从零搭建一个空项目,实践项目搭建的过程,并额外教大家搭建一个基于Go语言的Web版Git服务器,实现代码托管的自举。
2-1 项目基础骨架搭建
2-2 搭建自己的git代码托管仓库
第3章 框架主配置入口的设计与实践
本章将带大家确定框架的配置加载形式和基本结构,并为框架封装一键配置字体图标功能,然后验证基础框架的正确性和简易性。
3-1 项目架构初始化
3-2 字体图标库集成与封装
3-3 基础框架可用性验证
第4章 单Activity的APP页面架构设计与实践
本章将开辟新思路,设计单Activity 的App页面呈现架构,搭建起方便易用且利于扩展的单Activity基础骨架,让应用占用更小的内存,切换更加丝滑。
4-1 单Activity界面架构设
4-2 单Activity界面架构验证
第5章 高性能傻瓜式网络请求框架设计(Retrofit+RxJava+Glide)
本章将以Retrofit为基础,借助建造者设计模式的变种,设计高性能,高扩展性和可用性的,符合restful接口设计规范的网络请求框架,实现全程链式调用,配置自由,使用无脑,并支持主流HTTP请求和文件的上传下载等功能,最后拓展Retrofit与RxJava的整合,让网络框架支持响应式编程。...
5-1 网络框架接口创建-1
5-2 网络框架接口创建-2
5-3 Restful请求的处理-1
5-4 Restful请求的处理-2
5-5 Loading框架集成与完善(AVLoadingIndicatorView)-1
5-6 Loading框架集成与完善(AVLoadingIndicatorView)-2
5-7 网络框架优化与完善
5-8 文件下载功能设计与实现
5-9 拦截器功能设计与实现(模拟请求)-1
5-10 拦截器功能设计与实现(模拟请求)-2
5-11 Retrofit与RxJava的整合(补充内容,可先跳过,最后再看)
第6章 启动图功能开发与封装
本章将带大家实现两种启动图功能:倒计时渐变消失型和滑动型。
6-1 启动图功能开发与封装(倒计时效果)-1
6-2 启动图功能开发与封装(轮播效果)-2
6-3 启动图功能优化与完善
第7章 登录、注册功能开发(ORM框架-GreenDao)
本章将开始登录注册功能的开发,包括梳理用户登录注册的逻辑与服务器之间的交互,并引入当下流行的高性能ORM数据库框架-GreenDao进行数据持久化实战,同时带给大家一些可视化调试的小技巧。
7-1 注册UI及验证逻辑实现
7-2 登录UI及验证逻辑实现
7-3 服务器数据简单介绍与基于GreenDao的数据库框架设计
7-4 用户状态与用户信息的回调封装
第8章 代码生成器设计与实践(仿ButterKnife注解框架,编译期生成代码)
本章将以ButterKnife作为蓝本,设计与实现一套自己的代码生成器,并通过annotationProcessor生成自己指定规则的代码,绕过微信wxapi包名和类名的限制,自由调用微信登录代码。同时,梳理微信登录业务逻辑,并实现微信登录功能。
8-1 编写自己的元注解和annotationProcessor
8-2 通过注解生成指定模板的代码
8-3 通过代码生成器,生成微信登录代码,绕过微信包名限制-1
8-4 通过代码生成器,生成微信登录代码,绕过微信包名限制-2
8-5 通过代码生成器,生成微信登录代码,绕过微信包名限制-3
第9章 主界面-通用底部导航设计与一键式封装
本章将带大家设计项目主界面的基本结构,并封装极简的BottomBar,实现一键式添加子项目和内容,最后带大家实现电商APP的主界面整体架构。
9-1 底部导航BottomBar设计与实现-1
9-2 底部导航BottomBar设计与实现-2
9-3 打造适合电商主界面导航框架
第10章 主界面-首页UI与数据解析器开发(RecyclerView)
本章将创建主界面-首页UI,实现下拉刷新,并分析电商首页数据结构,然后创建数据解析器。同时,打造多布局高可用性RecyclerView体系,让所有的基于RecyclerView的UI结构都简易化,标准化,和无脑使用化,让多变的业务代码变成简单的套用。...
10-1 创建首页UI
10-2 首页下拉刷新实现
10-3 首页数据结构分析
10-4 多布局高可用性RecyclerView封装和数据解析器-1
10-5 多布局高可用性RecyclerView封装和数据解析器-2
10-6 多布局高可用性RecyclerView封装和灵活适配器打造
10-7 分页客户端逻辑处理
10-8 完善主页样式
10-9 沉浸式状态栏和渐变透明顶栏解决方案和封装
10-10 添加首页动作
第11章 主界面-商品分类开发(多布局Section RecyclerView)
本章将带大家完成主界面-商品分类的UI和数据解析,并实现多布局Section RecyclerView的编写。
11-1 分类页面结构解析和开发
11-2 分类左侧列表数据解析与UI呈现
11-3 多布局Section列表实现与分类列表点击事件
第12章 基于WebView的混合App框架设计(包含浏览器与原生请求Cookie的处理)
本章将带大家构造一个自己的高可扩展性的混合App框架,实现高度模拟原生的Web跳转,并搭建与原生交互的一键式配置事件体系,让混合应用的JavaScript与Java的交互变得简单,清晰和一键式配置,最后拓展通过RxJava同步浏览器和原生请求Cookie的功能。...
12-1 WebView高可扩展性封装-1
12-2 WebView高可扩展性封装-2
12-3 WebView高可扩展性封装-3
12-4 Web与原生交互一键式配置解决方案
12-5 将混合应用微框架集成进Latte并完善
12-6 通过RxJava同步浏览器和原生请求Cookie
第13章 购物车,订单,支付功能开发(包含支付宝支付和微信支付)
本章将带大家完成购物车UI的编写,对购物车内部选中,删除,清空以及结算的逻辑进行梳理,并梳理订单生成与第三方支付的逻辑,封装傻瓜式调用的支付工具并实现支付宝,微信的支付功能。
13-1 购物车UI编写
13-2 购物车数据结构分析,解析与转化
13-3 购物车事件逻辑梳理与实现-1
13-4 购物车事件逻辑梳理与实现-2
13-5 购物车价格计算逻辑梳理,排坑与实现
13-6 订单和支付逻辑梳理和创建
13-7 额外梳理,整理module结构,升级依赖,更好的进行分离
13-8 封装傻瓜式操作支付工具
13-9 支付宝接入和实现支付
13-10 微信支付和通过代码生成器生成微信支付代码
第14章 个人中心、图片裁剪、图片上传、收货地址、消息推送、权限管理等功能开发与一键式封装
本章带大家完成个人中心、图片裁剪、图片上传、收货地址、消息推送、权限管理,系统设置等功能的开发,同时封装极易使用的相机调用工具。梳理图片上传和更新逻辑,并实例示范。集成并调用极光推送,完成应用接收远程信息推送的功能。...
14-1 个人中心页面实现
14-2 订单列表逻辑梳理和实现-1
14-3 订单列表Bug修复(上节课的补充)
14-4 个人信息更新实现-1
14-5 个人信息更新实现-2
14-6 一键式相机,图片处理剪裁和动态权限封装-1
14-7 一键式相机,图片处理剪裁和动态权限封装-2
14-8 一键式相机,图片处理剪裁和动态权限封装-3
14-9 图片上传,更新逻辑梳理和实现
14-10 收货地址管理功能实现
14-11 基于极光推送的消息推送的接入和实现
14-12 系统设置和控制推送功能实现
14-13 完善个人中心
第15章 评价晒单功能实现(自定义评分控件和仿微信自动多图选择控件)
本章将从零开始带大家定制自己的自定义View,分别完成评价晒单中评分布局和仿微信自动多图选择和删除控件,让大家在自定义View的道路上更上一层楼。
15-1 一键式评分控件设计与实现
15-2 仿微信自动多图展示及删除控件-1
15-3 仿微信自动多图展示及删除控件-2
15-4 仿微信自动多图展示及删除控件-3
15-5 仿微信自动多图展示及删除控件-4
第16章 附加功能开发(二维码,一键分享,分页,搜索)
本章将带大家完成一些周边的小功能,麻雀虽小五脏俱全,将高性能二维码扫描方案和一键分享方案集成到框架中,方便以后一键调用。
16-1 二维码高性能解决方案
16-2 一键分享功能实现
16-3 分页功能实现
16-4 搜索功能实现
第17章 商品详情功能开发(MD伸缩渐变,滑动停靠Tab,商品加入购物车飞入动画)
本章将带大家设计商品详情UI架构,实现MD风格伸缩渐变效果,滑动停靠Tab,商品加入购物车的飞入动画效果,并最终完善商品详情功能。
17-1 商品详情UI架构设计
17-2 商品详情UI MD风格伸缩渐变效果实现
17-3 商品详情中间信息完善
17-4 商品详情下部滑动tab实现
17-5 商品加入购物车飞入动画实现和添加逻辑梳理
第18章 项目重构(补充)
本章首先会为大家提供一个线上的数据API,免去自己搭建服务器之苦,然后开始对之前的项目进行配置,功能等方面的重构,可以让这个项目更加完善一些,但真正的目标是让大家有一个意识:重构。这样大家的开发过程就可以掌握完整了。...
18-1 重构1-线上API
18-2 重构2-核心配置修改
18-3 重构3-Web混合应用精讲
18-4 重构4-Web混合应用精讲
第19章 课程总结
本章将对本课程的重难点进行总结,尤其是框架设计的思想,方法,经验,技巧以及业务开发过程中如何更好的完善与验证框架的灵活性,易用性等。
19-1 课程总结
来源:oschina
链接:https://my.oschina.net/u/4882588/blog/4793442