您好,欢迎访问三七文档
功能介绍:1.用户注册登录(传统注册和短信注册)2.首页推荐3.团购,限时抢购4.商品分类管理5.商品查询6.购物车7.订单管理8.地址管理9.健康中心10.个人中心购物流程:判断用户是否登录(推荐产品,分类商品)——所选商品——商品详细信息——(直接购买,加入购物车,加入关注)——生成订单(地址,发票,支付方式)——付款(货到付款,余额支付,银联支付)选择筛选条件(新品,销量,价格)新品:按生成日期排列价格:默认按升序排列,点击之后按价格降序排列销量:默认按升序排列,点击之后按降序排列技术要点:基于http请求使用json格式数据与服务端进行通信.(使用FastJson框架解析)1.由于很多界面有相同的特点和功能,定义一个BaseActivity,封装一些抽象方法,如加载页面元素、加载页面Layout、业务逻辑的处理、设置各种事件的监听器等。只需继承它就能实现这些方法,大大减少了重复代码的出现。2.用gallery实现同一个位置不同图片的定时切换,从服务器端获取图片。3.将从服务器端下载的图片缓存到本地,在listview的适配器中复用convertview,减少重复访问服务器的时间。4.在精品推荐中用到ExpandableListView,可实现商品的下拉效果。5.限时抢购中,为了实现倒计时的效果,在适配器中加入一个定时器,给显示时间的TextView打上一个标记,用handler消息机制在子线程中更新主界面。(CountDownTimer类的使用,实现了倒计时抢购功能,并实现界面的局部刷新)出现问题:1.ListView快速滑动出现的不流畅效果和加载时间过长现象。ANR异常listview优化:商品数量太多,使得ListView的各种优化成为必须解决的技术问题。项目中使用分步加载数据,利用缓存convertView对象等方法优化使得ListView的性能大大提高。异步加载数据:由于数据较多经常执行耗时的操作,通常newAsyncTaskVoid,Integer,Void()在doInBackground()中加载数据,不要阻塞主线程,在后台加载数据时使用进度条给用户有好的界面体验效果3.屏幕适配使用ScrollView进行包裹4.数据库资源的使用,可能很多人操作数据库,注意数据库的资源释放,避免资源浪费和内存溢出视频播放器:本地视频播放、电视直播、网络视频、音乐播放、我的收藏项目描述:乐优影视是Android平台上一款视频播放器.支持flv、rmvb、mkv、mov、avi、mp4等80多种常见视频格式的视频;支持CCTV-1,CCTV-2,CCTV-3,湖南卫视、浙江卫视、江苏卫视等全国30多个电视台;囊括了优酷、土豆、乐视网、PPTV、新浪视频、凤凰视频等国内所有网络视频的站点聚合,支持mp3、ogg、wma、mid、m4a、xmf、aac、mpa、midi、ar等几乎所有主流的音频格式,用户可选性广,凝聚更多的用户量技术难点:解码采用两种方式:硬解码技术和软解码技术,采用Vitamio框架和系统的MediaPlayer结合的方式,保证视频的流畅清晰责任描述:视频分类的列表、视频的详细信息、视频的播放、视频的声音控制,暂停以及快进功能技术实现:1,重写了ImageView,SurfaceView,Gallery控件实现自定义效果,并自定义了声音视图,采用Popuwindow显示播放控制器2,本地视频播放采用了基于FFMpeg音视频解码库的Vitamio框架和系统的MediaPlayer结合的方式,保证视频的流畅清晰3,本地视频播放采用了基于FFMpeg音视频解码库的Vitamio框架,达到视频流畅播放4,使用ContentResolver查询本地手机中所有视频信息,使用json解析获取电视台信息5,使用SharedPreferences保存软件参数设置,当再次观看时,可以定位到历史播放位置6,开发过程中,严格按照MVC模式编写,在业务bean编写的过程中采用AndroidJunit3反复对业务方法进行单元测试,在确保业务bean正确的情况下再供UI进行调用项目四:轻音乐播放器项目描述:集成百度音乐搜索,边下边播,音量控制,来电时停止音乐技术要点:1.主activity绑定服务获取服务本身对象,调用其方法实现音乐的播放;在服务中通过发送自定义广播实现服务对界面的刷新。2.复写onKeyDown实现自定义音量面板;通过handler实现音量面板自动隐藏;3.解析mp3尾部信息读取歌曲名,歌曲作者等信息并封装;4.使用socket技术通过smtp协议发送用户反馈到指定邮箱5.利用高效算法实现随机的循环播放;动态设置播放多少首后自动退出;6.根据歌名搜索,获取百度音乐搜索页面的html,利用正则表达式获取所有mp3链接7.类似双缓冲技术实现原生MediaPlayer的边下边播网络视频播放器VedioViewAndroid默认支持视频格式mp4,3gp,wmv音频:mp3,ogg直播用的是m3u8,加载快国际化软件扩展架构:推出程序的两种方式:1广播方式把自己finish();2容器保持,退出的时候遍历出来并finish开发环境:Eclipse3.7+adt18,JDK1.6.0_02,Android2.2,git测试机:motoXT702项目地址:启动类通常功能:检查网络,检查升级,创建程序缓存路径,log播放器类:声音资源缓存以声音资源的ID作为Key存到Map集合中图片缩略图的处理加载控制视频界面的是一个PopupWindow,作为一种用户提醒而且其开销也比activity要小媒体的声音0-15PopupWindow设置6秒隐藏,用到了handlerMessage消息机制,做了一个方法,6s中之后发一个消息,调用隐藏控制面板的方法用手势识别器做的双击让屏幕变大,变小Vitamio框架实现万能播放器错误监听,2.播放一半的时候,可能由于wifi环境不好造成的播放失败,自动重试3次,如果都出错在弹出错误提示,3.刚播放的时候就出错,就用第三方的2.3网络协议支持以下协议的音频和视频播放:*MMS*RTSP(RTP,SDP)*HTTP流式传输(progressivestreaming)*HTTPLiveStreaming(M3U8),Android2.1+Vitamio集成了许多音频和视频的解码包,相比Android内置默认的媒体格式,这里列出其中的一些:*divx/xvid*wmv*flv*ts*rmvb*mkv*mov*m4v*avi*mp4*3gp下一个按钮实现:播放下一个和快进功能(判断一下是否是文件列表,如果是就播放下一个不是就快进)监听卡的:1、2.3以后才有的:,videoview中mediaplayer中的setOnInfoListener方法,回调一个卡的情况和一个非卡的情况,如果播放网络的有可能存在网络不好的情况,卡的时候就要旋圈圈,给个提示播放时候卡和拖动的时候卡都旋圈圈,2、2.2以前的:消息机制,一秒钟给自己发个消息,判断当前这一秒的时间减去上一秒的时间,如果一秒钟播过的内容还没有大过500毫秒,就认为卡了,就把圈圈显示出来否则就隐藏,3.把解码器放在assets下,检查是否安装解码器,根据包名判断是否安装了,如果没有安装解码器提示安装,(可以判断是否安装了其他的播放器)安装的时候需要把这个解码器的apk文件复制到SD卡上或者没有SD卡放在缓存目录下面内部安装解码器:需要读取手机内部文件,需要设置读写权限,软解硬解都用了,硬解部分重新封装了系统播放器的逻辑,如果播放一个视频,系统播放不了的我会跳转到vatimio播放器,而且跳转过程界面都是一样的你会感觉是在同一个播放器手机直播:与电视直播走的信号不一样,电视台整理数据通过卫星信号传给电视,模拟信号,手机需要转码转换成数字信号会延迟一些,用手机需要转码,转换成数字信号,封装成文件,变成地址,传递给播放器,(重模拟信号转换成数据信号的过程)电视台与服务器传输数据要通过一种协议,通过这种协议,这种协议有很多种格式有很多种流媒体,这些流媒体有各种协议,通过这种协议为载体,在传具体流过来,就是具体数据,得到流之后解析,不断请求之后返回回来,M3u8:有的视频是高清的比较大,如果加载全部的时间可能比较长,把大视频切成一小块,所以用分块加载的方式,用m3u8的模式,但是会增加运行成本,带宽和流增加20-30%,拖动的时候速度也增加了,同样的视频有可能考到手机上不一定能播放,在一个视频列表中装载四种码率,高中低,当网络好的跳到高码率的网速不好就跳到低码率的,为了保证至少能听到声音电影网站包含的数据,用json封装数据,以前用xml,xml数量比较多,对于移动终端来说当然流量越少越好,json数据更轻量级可读性JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。·可扩展性XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。·编码难度XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。·解码难度XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。·流行度XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(AsynchronousJavascriptandJSON)了。,音乐播放器:自定义控件,显示页面切换自动扫描SD卡中的歌词文件放在集合中,解析歌词的形式(.lrc和.txt)异步加载歌词先排序,歌词内容在线时间点,每句歌词显示的时间,(第二句的时间点——-第一句歌词的时间=第一句显示的时间值),之后传给显示歌词的路径Mediaplayer,提供得到当前的位置,把当前时间存放在bundle中,发送这个消息得到当前位置,当前位置传递给显示歌词的,根据得到的当前位置计算出当前时间,之后获取到歌词,动态画出每句歌词,以及每句歌词的显示时间,新版的vitamio2.0,内部提供了解码器,放在一个库中,创建的时候就加载解码库最新版本是3.0,结构不会变,播放更流畅Webview实现抓包1,为什么不直接用第三方播放器系统播放器肯定比第三方好,只针对这个设备,解码器要针对不同的CPU型号安装相应的解码器才能体现更好的性能,效果最好第三方播放器用在所有播放器上要考虑兼容性,不是针对一个设备做的,效果不是最佳2.视频花屏:用的第三方播放器但是vitamio解码器不对联网引擎架构:做的是高端手机开发,BMP的,在开发图像/视频播放器时遇到以下问题:1.超大图像打开时,非常非常的慢,耗时快3分钟的都有2.视频播放时,画面非常的卡但是客户给的同硬件平台的手机效果却好的多,我们做的是中间层和上层APP的开发,这里有没有大牛从设计架构上给一些参考意见。分不是问题,谢谢了BMP的话,不知道你们用的平台有没有经过运营商封装,下面只是从嵌入式设计的一些基本原理上给一些参考意见:1.超大图像打开时,非常非常的慢,耗时快3分钟的都有由于你说你做的是高端手机开发,所以硬件问题应该不大,但是如果说耗时达到3分钟的话,这个应该是用的软解码,不是用的硬解码。你可以看看底层是否向上封装了硬解码接口。不过即使是软解码,也有办法提高一下效率的:a.通常做法,可以先进行thumbnail画像显示,在后台进行decode处理,当decode完成后,再用decode后的句柄进行画面刷新b.使用即时刷新的方法,例如每过100ms刷新一下句柄,这样不会出现画面长时间不更新的效果,会出现一张画像渐渐刷出的效果,用户体验会好很多c.在b的基础上,可以在中间层进行画
本文标题:手机商城整理
链接地址:https://www.777doc.com/doc-2415010 .html