记一电子商城android客户端初探解析
记一电子商城android客户端初探解析
说明:是基于http协议通信json格式传输。
附件为jar文件,可使用java Decompiler进行浏览和反编译。
也是大致看的内容。进行的总结。说得不好望拍砖。指正。
附件地址:
https://files.cnblogs.com/haoyun/classesdex2jar.zip(仅限交流学习,禁止传播)
1. 主框架

流程:Activity 从网络接收数据,使用Handler 来进行解析,返回 Bean 或 Bean 集 合, 然后委托 Adapter 进行Bean数据的读取并自定义view,控制数据与界面。
2. Activity

BaseActivity对系统的Activity进行了封装,项目的所有Activity都继承BaseActivity,
BaseActivity定义了显示界面的框架,使用了模板方法模式,initView为模板方法,findViewById isLoadBottomBar loadLayout 等即为子算法。这样做的好处,很明显。就是规范界面的框架代码。
initView代码展示:
private void initView()
{
loadLayout();
this.isLoadBottomBarFlag = isLoadBottomBar();
if (this.isLoadBottomBarFlag)
{
initBottomBar();
setDefaultStyle(Constant.defaultIndex);
Tools.drawShopCarNum(this.textShopCarNum, Constant.SHOPCAR_NUM);
}
findViewById();
setListener();
processBiz();
}
3. BaseAdapter

Adapter 相当于 Activity与 Bean之间的连接器,继承与系统的ArrayAdapter
或BaseAdapter,他们三个的关系有点类似于mvc框架结构。
Adapter通过重写getView方法,来进行数据的读入,放入到自定义的控件中。
Api:
public View getView(int paramInt, View paramView, ViewGroup paramViewGroup)
4. Bean
数据的封装实体对象。 从网络获取数据,并封装成对象,以便于可以很好地传递数据。
5. BaseHandler
BaseHandler 定义了一个从网路解析数据并生成Bean的算法。
代码如下:
public abstract class BaseHandler
{
public abstract Object parseJSON(String paramString);
}
每个实现的Handler都是一个具体的算法。
客户端可以动态的更改算法。是一个策略模式的应用。
6. 网络部分
使用了base64进行加密解密,然后进行json格式与实体Bean的转换,使用了org.apache.commons.httpclient作为客户端网络包,还有线程池的管理。
7. 最后
手机终端的网络应用客户端和网络游戏客户端实现的框架基本差不多,网络部分和数据封装部分基本一致,只是表示层有些区别。 应用 用高级控件(系统控件)来表示,游戏用低级控件(自定义view)来实现。好了。自己时间,能力有限。也就只能看这么多了,功能细节等还没有仔细看。望有兴趣的可以一起学习下。共同交流。共同进步。
浙公网安备 33010602011771号