《磨砺书店》项目技术汇总(磨砺营马剑威Android)

【威哥说】5月4日开班以来,1605期的学员们已经进入的Android项目实战阶段了,今天给大家带来的是第一个项目实战《磨砺书店》,成品即将出炉,正在调试上线的最后阶段,下面为大家介绍一下项目的详情及使用技术,我们用事实说话,让一切以抄袭伪装项目实战课程的靠边站。

【正文】首先由小编上一组截图,强奸一下各种的眼睛,也欢迎提提建议,后续升级版本如果你的建议被采纳会有精美礼品赠送哦

下面来说明一下本应用中使用的技术介绍:

1.androidImageIndicator实现首面图片轮播,当然还有其它图片轮播组件,比如Banner,使用组件的好处当然不言而喻了,除了使用组件,自己来实现也得会,可以使用ViewPager+Handler+Thread,我们可不想做个只会用组件的新手,你知道懂原理,用组件才更放心。

2、数据分页与刷新

在本项目中,我们采用了PullToRefresh和google自带的SwipeRefreshLayout组件,使用SwipeRefreshLayout来加载新数据,PullToRefresh则实现分页显示数据,各用所长。当然一样的道理,抛开这些组件化,我们可以为列表添加头部和底部,监听滚动事件的方式实现自定义的数据刷新,我们一样可以做到。

3、后台服务器网络请求

课程中,我们讲解了很多的网络请求框架:Google的volley适合细粒度的网络请求,asyncHttp,基apache httpClient的封装库,可惜httpClient已经Android中被废弃,asyncHttp的作者也已不再更新,OKHttp,是目前使用较多的请求组件,与picasso出自同门,还有其它,不一一介绍了,没有框架怎么办?我们也可以自己封装httpUrlConnection的方式实现。

4、网络请求数据处理

网络请求后返回的数据格式通常有两种:XML和JSON,我们可以使用PULL实现XML的解析,效率高,性能好,优于SAX,在移动端更是优于基于树结构的DOM、JDOM、DOM4J;JSON数据我们使用GSON和Android3.0以后支持的JsonReader实现,GSON适合一些简单的数据转换,很方便,缺点是在处理一些复杂的JSON数据有点力不从心,此时我们将使用JsonReader实现解析,它可以更好的控制每个元素的解析。

5、实现圆角图片与图片缓存

在项目中使用圆角图片是目前项目开发非常常见的,我们在项目使用了android-shape-imageview来实现,比如个人头像,但其它图书的资源图片考虑到缓存来提高加载性能,我们使用了当今为止最为牛X的facebook出品的fresco框架,其拥有三级缓存的实现是迄今为止传统二级缓存实现无法比拟的,处理圆角图片也很简单,渐近式加载JPG图片,GIF支持等其它图片缓存框架有的统统都有,人家没有的fresco也有,总之,牛B就是了。

在课程中,当然我们也介绍了ImageLoader,一个古老的图片缓存组件,Picasso,Glide等,这些虽然只有二级缓存,但在一些中小项目中使用也已足够,也是很强大的。谁说我们只会用框架,我们可以使用LRU算法实现自己的缓存框架,比如实现数据的缓存,内存+磁盘,或数据库缓存,我们的武器有很多,选择用什么,我们心知杜明。

6、支付功能

本项目中实现了支付宝和微信两大支付平台,由于两大支付平台不支持个人用户,我们借助了第三方平台实现支付,在实现微信支付时,也用到如何利用程序自带支付插件安装的功能,第一,避免了在线下载浪费用户流量,第二,由于支付插件是使用的是第三方APK文件,这样在发布应用上线时容易被安全类应用扫描到插件,此时安全应用会提醒用户此应用是个携带插件的应用,为了避免这个问题给用户带来不必要的困扰,我们把插件重命名为.db文件,在用户使用到支付功能时,再把.db文件写入用户的sdcard还原apk,再执行插件安装来解决这个问题,由于篇幅原因,想详细了解的童鞋可以留下QQ与威哥或磨砺营的讲师交流哦。

7、自定义组件

本应用中商品详情界面的实现里,由于界面展示的内容比较复杂,需要嵌套各种组件,而组件之间相同的事件处理会发生冲突,此时我们要重写组件的事件处理来解决冲突问题,以下方法在子组件上重写,实现滚动条事件拦截处理:

重写 onTouchEvent():

//事件处理由父控件处理

requestDisallowInterceptTouchEvent(false);

//事件处理由子控件处理

requestDisallowInterceptTouchEvent(true);

8、抽象了统一在Adapter中实现的ViewHolder类,达到复用

9、对于第三方组件或框架的使用,把它们封装起来,在实现功能时就可以避免在任何代码中直接访问组件的依赖代码,这样的好处是,在替换该组件或框架时,利于维护,否则需要修改所有直接调用的代码。

10、还有一些小功能的实现:

<1>手机验证码注册

<2>显示隐藏密码

<3>更新头像裁剪上传

<4>统一处理程序退出

<5>自定义导航栏

<6>购物车编辑时布局的变换实现方案(两个adapter加载不同的布局实现替换)

<7>一次登录后保存登录状态自已实现:可以在第一次通过网络请求登录后,把用户信息保存在SharedPreferences中,下次无需再登录直接获取用户信息。

好了,今天的文章就给大家总结项目中使用到的技术及解决方案,还有一些小小的处理细节,比如布局优化,如何合理减少嵌套等就不一一列举了,这些细节你只有在正在开发这个项目时才会真正的深刻体会,这就是项目经验的积累。而在真正开发项目中遇到的各种疑难杂症,才是真正的长姿势,这些,你永远不可能在知识点的学习中掌握透彻。

更多内容关注微信公众号mjw-java或访问www.moliying.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,618评论 4 59
  • 他又往墙上划了一道线,这是第三道。肥胖先生,已经熬过了两天。 肥胖先生,在早晨划完这道线以后,开始放松紧绷的神经。...
    三碗阅读 1,165评论 1 4
  • 青石,桥旁 掬一方微漾 砌宇,阶上 携一卷残阳 暮色 是我来时方向 远辉 促我此刻之徜 月满,如常 洒满我衣衫上 ...
    木庭兮阅读 127评论 1 4
  • 你是物联网专业,主修课程有那些? 答:计算机网络基础,嵌入式设计与应用,数据库原理,物联网技术基础,传感技术及网络...
    青檬眼豆豆阅读 323评论 0 2