Android开发之搜Ya项目说明(3)
项目
搜芽移动client
----seller,app,base三个包的简单说明
作者
曾金龙
Tel:18664312687 QQ :470910357@qq.com
时间
2014-10-14
说明
代码说明
第一部分 Seller包
1,启动页面 StartUpActivity.java
启动页面,搜芽的第一个页面。Android开发中须要在Manifest中设置程序的入口。
例如以下:
<activity
android:name="com.souya.seller.StartUpActivity"
android:label="@string/app_name"
android:theme="@style/notitle">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
启动页面的逻辑:
展示搜芽图片,有益停留2秒(2000毫秒),然后跳转到登入页面,採用new Handler().postDelayed方法实现
。详见代码,不再复述。
2,登入页面
LoginActivity.java
登入页面的逻辑:
接受用户输入,在本地保存,并向server发出登入请求,接收到回复假设成功,则跳转到主页面。
其逻辑框图例如以下:
在用户触发button的Onclick则进行登入。开启一个异步任务实现。异步任务中调用DataProxy进行登入包的构建与发送。DataProxy将会是我们整个程序和server打交道的代理。能够看看里面的代码,它是对http请求和对应的一个封装。
登入返回之后,我们会开启一个线程专门做心跳处理。定时发送心跳包。
详细见:SellerApplication.getInstance().mHeartbeatThread = new Thread(new Runnable() {
这行代码。
尚未实现:注冊。
3 ,程序主页面 MainActivity.java
程序的主界面
1)继承自 SellerActivity 主要是为了监听一些事件。详细能够去看代码。
2)ViewPager TabPageIndicator TabsAdapter 实现Tab页面,而这个Indicator是ViewPagerIndicator项目的(我们在project导入文档中有说明)。
须要知道掌握的就是怎样加入一个Tab页面放进来。
mTabsAdapter.addTab就可以。
3)ActionBar。知道怎样在ActionBar里面加入一个自己的文件夹选项。见onCreateOptionsMenu
4)TabsAdapter内部类。能够看看,无需修改。
第二部分 app包
1 活动页管理 ActivityManager
对Activity的管理,为什么要这个类,能够去网上搜,主要是为了解决回退时候的Activity管理问题。
2 崩溃日志捕获 CrashHandler
当APP异常退出的时候,记录日志到文件,这样方便我们分析哪里崩溃。详细见代码。
3 IP监控 IPMonitor
临时未用到。
4 SellerApplication 应用类
Application类一般用来保存全局数据,用来最開始的初始化。这类功能和设计能够去网上学习。
我们在这里初始化log4j的日志,保存用户登入账号信息。
第三部分 base包
这个包主要是几个基类。为了更好的抽象和监听事件,我们抽象了SellerFragment,它继承了Fragment。
1 SellerFragment
关于Android推荐使用Fragment取代Activity的文章,网上学习,这里不做介绍。
SellerFragment主要集成一些经常使用的功能。
1)图片缓存对象 ImageFetcher mImageFetcher(图片缓存对象的内部机制无需了解,是第三方的代码,兴许会用就可以)。
2)对Fagment常见操作的封装。
2 RefreshableFragment
继承了SellerFragment,主要加入了对刷新动作的处理。
3 BaseFragment
继承了RefreshableFragment
主要加了,对取到图片事件的监听;网络变化的监听;刷新操作的监听。
4 SellerActivity
Seller程序中各种Activity的基类。主要是在里面丰富了对菜单的处理。
注意:ClothSearch mClothSearch;域是为了在ActionBar中加入搜索而生的。在Actionbar中做搜索是一个行业通用设计也是个难点,兴许有时间仔细的学习一下。
Q&A:
1 为什么都是Fragment而不是Activity?
答:据我看到的,外包用的比較多的是Activity,而我们这里用到比較多的Fragment的,我们的原则是能用Fragment的地方就尽量不要用Activity。
2 有些代码看不懂,声明了却没有地方用到,为什么?
答:有些代码我没剔除干净,不是懒,由于可能如今用不到,但我认为兴许肯定会用到,所以就留了个引子在那里。假设看到这种代码,无需过多关注。
3 为什么这个版本号和设计需求有初入?
答:由于精力有限,以及设计有时候并不一定最好。比方,那个搜索,请看市面通用做法,大家的做法就是对的,我们无需怀疑那么多互联网公司的设计能力。当然,很多其它的丑是由于没时间去调。
Android开发之搜Ya项目说明(3)的更多相关文章
- Android开发之Java集合类性能分析
对于Android开发者来说深入了解Java的集合类很有必要主要是从Collection和Map接口衍生出来的,目前主要提供了List.Set和 Map这三大类的集合,今天Android吧(ard8. ...
- Android开发之InstanceState详解
Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...
- Android开发之Git配置
Android开发之Git配置 1.首先git配置: 输入命令: git config --global user.name "xxx.xx" git config --globa ...
- 【Android UI】Android开发之View的几种布局方式及实践
引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理 ...
- Android开发之旅: Intents和Intent Filters(理论部分)
引言 大部分移动设备平台上的应用程序都运行在他们自己的沙盒中.他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互. 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义 ...
- Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab
今天我们要实现的这个效果呢,在Android的应用中十分地常见,我们可以看到下面两张图,无论是系统内置的联系人应用,还是AnyView的阅读器应用,我们总能找到这样的影子,当我们滑动屏幕时,Tab可 ...
- Android开发之Java必备基础
Android开发之Java必备基础 Java类型系统 Java语言基础数据类型有两种:对象和基本类型(Primitives).Java通过强制使用静态类型来确保类型安全,要求每个变量在使用之前必须先 ...
- Android开发之PopupWindow
/* * Android开发之PopupWindow * * Created on: 2011-8-8 * Author: blueeagle * Email: liujiaxiang@g ...
- [置顶] Android开发之MediaPlayerService服务详解(一)
前面一节我们分析了Binder通信相关的两个重要类:ProcessState 和 IPCThreadState.ProcessState负责打开Binder 驱动,每个进程只有一个.而 IPCThre ...
随机推荐
- Vim 使用设置
转自:http://www.cnblogs.com/end/archive/2012/06/01/2531147.html Vim 作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的 ...
- awk 工具简介NF-NR
相较于 sed 常常作用于一整个行的处理, awk 则比较倾向于一行当中分成数个『字段』来处理. 因此,awk 相当的适合处理小型的数据数据处理呢!awk 通常运作的模式是这样的:[root@linu ...
- bzoj 2623 所罗门的咒语
这一题其实我没做出来.... 我只是想吐吐槽. 题目要求识别验证码,而且连一点特征信息都不给! 我去偷看了一下数据,然后根据数据生成了图片: 我相信当年没有人能拿分吧. 贴一下transform.cp ...
- hdu 3917 (最大权闭合图)
题意:政府有一些路,m个公司来修,每个公司修路要交税给政府,修路政府要付给公司费用,求政府能获得的最大利润,如果选择一个公司负责一个项目,那么该公司负责的其它项目也必须由他负责,并且与其有相连关系的公 ...
- 每天4个linux命令--步骤一
1 :Linux的诞生 Linux由芬兰赫尔辛基大学的Linus Torvalds创建 1991年10月,Linux第一个公开版 0.02版发布 1994年3月,Linux 1.0版发布 Linus ...
- Collections在sort()简单分析法源
Collections的sort方法代码: public static <T> void sort(List<T> list, Comparator<? super T& ...
- Join的实现步骤 以及连接的概念
Join的实现步骤 以及连接的概念 我们常说连接有三种,即 交叉连接.内连接.外连接,这三者的概念很容易模糊,现在我们先放下概念,搞清楚完整连接实现的步骤: 一个完整的连接有三个步骤:.做笛卡儿积: ...
- 总线接口与计算机通信(三)UART起止式异步通用串行数据总线
串口简介 1. 什么是串口? 串口是计算机上一种非常通用的设备通信的协议.串口通信的概念非常简单,串口按位(bit) 发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送 ...
- perl 调用方法 子例程说明
Perl does not provide any special syntax for class definitions Perl 不提供任何特殊的语法对于类的定义 A package is si ...
- SQL中on条件与where条件的区别(转载)
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1. on条件是在生成临时表时使用的条 ...