一种基于Android操作系统的开发框架及其执行方法

文档序号:6398507阅读:273来源:国知局
专利名称:一种基于Android操作系统的开发框架及其执行方法
技术领域
本发明涉及Android操作系统。更具体地,本发明涉及一种基于Android操作系统的开发框架及其执行方法。
背景技术
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于便携设备,如智能手机和平板电脑。随着移动互联网的高速发展,据不完全统计,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。在这股大的移动浪潮中,很多公司为了能够抢先一步占领移动市场,一味追求产品的速度而不注重代码的规范,前期没有做好项目统筹工作,没有一个完整的框架,开发人员无法协同合作,进而导致整个项目代码凌乱不堪,漏洞百出,给后期维护带来了极大的困难。另外因为Android操作系统进入中国不到三四年,很多技术论坛和博客上都还没有提供成熟的框架,所以很难参考成熟的案例。MVC (Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分数据模型(Model)、视图(View)和控制器(Controller)。模型(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法,相当于数据层。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。视图(View)能够实现数据有目的的显示(理论上,这不是必需的),相当于显示层。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model ),因此应该事先在被它监视的数据那里注册。控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和模型(Model)上的改变。

发明内容
本发明目的在于提供一种基于Android操作系统的开发框架及其执行方法,解决了现阶段Android开发协同合作困难和代码凌乱的问题。技术方案如下一种基于Android操作系统的开发框架,包括以下模块业务逻辑处理模块,用于处理包括线程和数据的业务逻辑;显示模块,用于根据界面数据显示界面;以及,控制模块,用于调用业务逻辑模块和获取界面数据并将该数据传入所述显示模块。
进一步地,所述业务逻辑处理模块进一步包括线程处理模块和数据处理模块;所述线程处理模块用于根据所述控制模块的调用来执行联网获取所述界面数据;所述数据处理模块用于根据所述控制模块的调用存储所述界面数据及其网络地址和请求参数,以及用于对所述界面数据进行解析。进一步地,所述基于Android操作系统的开发框架还包括以下模块异常捕获模块,用于根据所述线程处理模块的线程方法进行异常的捕获和处理。相应地,一种基于Android操作系统开发框架的执行方法,该框架包括线程处理模块、数据处理模块、显示模块和控制模块,该方法包括以下步骤在所述控制模块中,创建数据处理模块对象,将界面数据的网络地址和请求参数存储于该数据处理模块对象;在所述控制模块中,调用所述线程处理模块的后台线程方法启动后台线程,在该后台线程中,根据传入所述数据处理模块对象执行联网操作并将获取的界面数据交给所述数据处理模块;所述数据处理模块进行界面数据的解析和存储;后台线程结束,进入主线程;所述控制模块通过所述线程处理模块的主线程方法从所述数据处理模块中取出解析后的界面数据,并将该数据传入显示模块;所述显示模块将界面数据填充至视图控件中,将界面呈现出来。进一步地,该框架还包括异常捕获模块;所述在所述控制模块中,调用所述线程处理模块启动后台线程,在该后台线程中,根据传入所述数据处理模块对象执行联网操作并将获取的界面数据交给所述数据处理模块中进一步包括以下步骤根据所述异常捕获模块,在执行联网操作时,所有异常被抛出;在所述线程处理模块的线程方法中对所述异常进行捕获并统一处理。本发明的有益效果在于可以更好的规范代码,降低技术的开发难度,删减无用的冗余代码,同时为开发人员之间的协同合作提供约束和参考,对后期的维护起到了重要的辅助作用。


下面将参照附图并结合实施例对本发明进行具体说明。图1为本发明的框架图;图2为本发明的框架执行流程图;图3为本发明具体实施例的流程图。
具体实施例方式下面参照附图并借助本发明的实施例,对本发明的技术方案做详细描述。本发明的基于Android操作系统的开发框架是根据MVC模式设计,根据图1,该框架包括业务逻辑处理模块、显示模块和控制模块。所述业务逻辑处理模块用于处理包括线程和数据的业务逻辑,相当于MVC中的模型(Model);所述显示模块,用于根据界面数据显示界面,相当于MVC中的视图(View);所述控制模块用于调用所述业务逻辑模块和获取界面数据并将该数据传入显示模块。所述控制模块,相当于控制器(Controller)。进一步地,所述业务逻辑处理模块包括线程处理模块和数据处理模块;所述线程处理模块用于根据所述控制模块的调用来执行联网获取所述界面数据;所述数据处理模块用于根据所述控制模块的调用存储所述界面数据及其网络地址和请求参数,以及用于对所述界面数据进行解析。相应地,根据图2,基于Android操作系统的开发框架执行方法包括以下步骤在所述控制模块中,创建数据处理模块对象,将界面数据的网络地址和请求参数存储于该数据处理模块对象;在所述控制模块中,调用所述线程处理模块的线程方法启动后台线程,在该后台线程中,根据传入所述数据处理模块对象执行联网操作并将获取的界面数据交给所述数据处理模块;所述数据处理模块进行界面数据的解析和存储;数据处理模块解析和存储完毕后,后台线程结束,进入主线程。所述控制模块通过所述线程处理模块的主线程方法从所述数据处理模块中取出解析后的界面数据,并将该数据传入显示模块。需要说明的是,框架中的所述数据处理模块一方面存储着所述显示模块所需的界面数据的网络地址和请求参数,用于所述线程处理模块的联网和获取数据。另一方面还用于将所述线程处理模块中获取到的界面数据进行解析,解析成所述显示模块可以识别的数据,并将该解析后的数据存储到该数据处理模块中,等待控制模块的调用。在Android开发中一般利用继承Android SDK (开发工具包)提供的基类并且重写基类中的一些方法来实现特定的功能。本发明的所述开发框架中,BaseView是所述显示模块的基类,继承自AndroidSDK中的View类,用于Android控件的初始化和界面的显示操作;BaseActivity是所述控制模块的基类,继承自Android SDK中的Activity类,用于调用业务逻辑和界面转向;BaseAysncTask是线程处理模块的基类,继承自AndroidSDK中的AysncTask类,用于联网获取数据并将数据交给BaseRequest处理;BaseRequest是数据处理模块的基类,用来将获取的数据进行解析操作。进一步地,本发明的框架还包括异常捕获模块,ErrorMessage是该模块的基类,所有的异常(例如用ErrorMsg表示)统一由该类捕获和处理。在本发明中,执行联网操作时所有异常被抛出。具体地,比如首先调用联网类HttpUtils的getlnstO方法获取联网类实例,然后调用该类的getStringO方法获取联网后的界面数据,在getStringO方法里统一抛出EirorMsg异常,然后在后台线程方法doInBackground()中捕捉调用 android 系统提供的 AsyncTask 类的 publishProgress ()方法,执行AsyncTask的onProgressUpdate ()方法回到主线程,在该方法里调用传入参数OnUICallback类的onProgressO方法将该异常抛到主线程的方法中进行处理。如图3所示,以下将结合Android SDK的基类及其方法对本发明的基于Android操作系统开发框架的具体实施方式
进行详细说明。
步骤S1、新建显示子类TestView继承所述显示模块的基类BaseView,从而实现该基类BaseView中的三种方法显示控件UI初始化方法initUI ()、数据初始化方法initData ()和界面数据填充方法SetDataForview ();InitUI ()和initDataO方法都是在TestView的构造方法中调用。SetDataForviewO方法是当联网获取界面数据并将该数据解析之后通过线程的回调方法在主线程中执行。步骤S2、新建数据处理子类TestRequest继承所述数据处理模块的基类BaseRequest,该数据处理子类TestRequest用于存储网络地址(或简称url)和请求参数以及数据的解析和存储。在TestRequest的构造方法TestRequest ()中传入url和请求参数,在解析方法read()方法中新建数据解析对象并将解析后的界面数据存储到该对象中。步骤S3、新建控制子类TestActivity继承所述控制模块的基类BaseActivity,该新建控制子类TestActivity用于调用线程处理模块的基类BaseAysncTask的线程方法,以及用于创建显示对象和数据处理模块对象,并将该显示对象(即本实施例中TestView对象)和数据处理模块对象(即本实施例中TestRequest对象)作为所述线程方法的参数;其中基类BaseAysncTask的线程方法包括主线程方法onPostExecute和后台线程方法 DoInBackground0实现基类BaseActivity中的onCreate ()方法,在该方法中新建一个BaseAysncTask实例执行联网操作,传入OnUICallback类的实例,用于步骤S6中,即当后台线程执行完毕后,回到主线程执行OnUICallback类的onGetResultO和onProgressO方法,在onGetResult ()方法中调用Testview的SetDataForView()方法,将界面数据传入Testview中显示,而onProgressO方法用于异常的处理,后面将有详述。其中OnUICallback 为 BaseActivity 的内部接 口类,内部包括 onGetResult ()和 onProgressO方法两个方法。步骤S4、执行后台线程方法DoInBackground,在后台线程中,通过传入的作为DoInBackground的参数的TestRequest对象获取网络地址和请求参数,根据该网络地址和请求参数执行耗时的联网操作以获取界面数据。此时,获取到的界面数据尚不能被显示模块所识别。例如,调用TestRequest基类BaseRequest的url获取方法getUrl ()和请求参数获取方法getRequestMapValues ()获取url和请求参数,调用联网处理类的getStringO方法获取联网后的界面数据。步骤S5、回调数据处理子类TestRequest的解析方法read()将界面数据解析为可识别的界面数据并存入数据处理子类TestRequest的变量中。至此后台线程方法DoInBackground 执行完毕。步骤S6、通过执行线程处理模块的基类BaseAysncTask中主线程方法onPostExecute,调用传入参数OnUICallback的onGetResult ()方法,从而取出解析后的界面数据。该onGetResult ()方法中调用了 Testview的SetDataForview()方法,详见前述步骤S3中的描述。步骤S7、在 Testview 的 SetDataForview()方法中将 BaseRequest 强制转化为TestRequest,通过TestRequest取出承载数据的全局变量,填充UI控件从而进行界面呈现。具体代码如下所示
//OnUICallback为BaseActivity的内部接口类,后台线程的回调方法,返回主
线程执行
public interface OnUICallback {
//数据获取成功处理结果
public void onGetResult(AbstractRequest result);
//出现异常在此处理
void onProgress(int progressj String msg);
}`//在TestActivity里的initData()里面调用HttpAsyncTask的构造方法,传入
OnUICallback的实例执行联网操作
new HttpAsyncTask(thisj new OnUICallback() {
@0verride
public void onProgress(int progress. String msg) {
//异常处理
>
@0verride
public void onGetResult(BaseRequest result^ BaseView view) {
//调用Testview的SetDataForViewO方法,将界面数据传入Testview中显示
权利要求
1.一种基于Android操作系统的开发框架,其特征在于,包括以下模块 业务逻辑处理模块,用于处理包括线程和数据的业务逻辑; 显示模块,用于根据界面数据显示界面;以及, 控制模块,用于调用业务逻辑模块和获取界面数据并将该数据传入所述显示模块。
2.根据权利要求1所述的基于Android操作系统开发框架,其特征在于, 所述业务逻辑处理模块进一步包括线程处理模块和数据处理模块; 所述线程处理模块用于根据所述控制模块的调用来执行联网获取所述界面数据;所述数据处理模块用于根据所述控制模块的调用存储所述界面数据及其网络地址和请求参数,以及用于对所述界面数据进行解析。
3.根据权利要求2所述的基于Android操作系统开发框架,其特征在于,还包括以下模块 异常捕获模块,用于根据所述线程处理模块的线程方法进行异常的捕获和处理。
4.一种基于Android操作系统开发框架的执行方法, 该框架包括线程处理模块、数据处理模块、显示模块和控制模块, 其特征在于,该方法包括以下步骤 在所述控制模块中,创建数据处理模块对象,将界面数据的网络地址和请求参数存储于该数据处理模块对象; 在所述控制模块中,调用所述线程处理模块的后台线程方法启动后台线程,在该后台线程中,根据传入所述数据处理模块对象执行联网操作并将获取的界面数据交给所述数据处理模块; 所述数据处理模块进行界面数据的解析和存储;后台线程结束,进入主线程; 所述控制模块通过所述线程处理模块的主线程方法从所述数据处理模块中取出解析后的界面数据,并将该数据传入显示模块; 所述显示模块将界面数据填充至视图控件中,将界面呈现出来。
5.根据权利要求4所述的基于Android操作系统开发框架的执行方法, 该框架还包括异常捕获模块,其特征在于, 所述在所述控制模块中,调用所述线程处理模块启动后台线程,在该后台线程中,根据传入所述数据处理模块对象执行联网操作并将获取的界面数据交给所述数据处理模块中进一步包括以下步骤 根据所述异常捕获模块,在执行联网操作时,所有异常被抛出; 在所述线程处理模块的线程方法中对所述异常进行捕获并统一处理。
全文摘要
本发明公开了一种基于Android操作系统的开发框架及其执行方法,该框架包括线程处理模块、数据处理模块、显示模块以及控制模块。方法包括将界面数据的网络地址和请求参数存储于数据处理模块对象;调用所述线程处理模块的方法启动后台线程,根据传入所述数据处理模块对象执行联网操作并将获取的界面数据交给数据处理模块;所述数据处理模块进行界面数据的解析和存储;后台线程结束,进入主线程;所述控制模块通过所述线程处理模块的主线程方法取出解析后的界面数据,并将该数据传入显示模块;所述显示模块将界面数据填充至视图控件中,将界面呈现出来。本发明可以更好的规范代码,为开发人员之间的协同合作提供约束和参考。
文档编号G06F9/44GK103064690SQ201310027630
公开日2013年4月24日 申请日期2013年1月24日 优先权日2012年12月16日
发明者潘海东, 梅春, 王三军 申请人:互动在线(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1