Android通用框架设计与完整电商App开发

北慕城南 提交于 2020-12-12 01:41:02
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 课程总结

 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!