1、ThinkAndroid使用教程ThinkAndroid简介ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行 Android应用程序的开发,包含Android mvc、简易sqlite orm、ioc模块、封装Android httpclitent的http模块, 具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了图片缓存功能,在android中加载的图片的时候,对oom的问题,和对加载图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类
2、,如日志管理,配置文件管理,android下载器模块,网络切换检测等等工具。目前ThinkAndroid主要有以下模块: MVC模块:实现视图与模型的分离。 ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。 http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加载。 缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置 图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和a
3、ndroid容器快速滑动时候出现的图片错位等现象。 配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。 日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印 下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。 网络状态检测模块:当网络状态改变时,对其进行检测。使用ThinkAndroid快速开发框架需要有以下权限:配置: application必须配置以上格式Activity必须继承TAActivityThink
4、Android使用方法:关于ThinkAndroid的更多介绍,请点击这里MVC模块 MVC模块:实现视图与模型的分离。 getTAApplication().registerCommand(Rand,TAIdentityCommand.class); getTAApplication().registerCommand(Rand,TAIdentityCommand.class);TALogger.addLogger(newTAPrintToFileLogger();TARequest request =newTARequest(); doCommand(Rand, request, newT
5、AIResponseListener() Overridepublicvoid onStart(TAResponse response) / TODO Auto-generated method stub Overridepublicvoid onSuccess(TAResponse response) / TODO Auto-generated method stub Overridepublicvoid onRuning(TAResponse response) / TODO Auto-generated method stub Overridepublicvoid onFailure(T
6、AResponse response) / TODO Auto-generated method stub , false, true, true);mand;mon.TAIResponseListener;mon.TARequest;mon.TAResponse;publicclassTAIdentityCommandextendsTACommandOverrideprotectedvoidexecuteCommand() / TODO Auto-generated method stubTARequest request = getRequest();TAResponse response
7、 =newTAResponse(); response.setTag(request.getTag(); response.setData(request.getData(); response.setActivityKey(String) request.getActivityKey(); response.setActivityKeyResID(request.getActivityKeyResID(); setResponse(response); notifyListener(true); protectedvoidnotifyListener(booleansuccess) TAIR
8、esponseListener responseListener = getResponseListener();if (responseListener !=null) onComandUpdate(command_success); ioc模块使用方法: 完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。publicclassThinkAndroidDemoActivityextendsTAActivity TAInjectEntity entity; /目前只能对无参构造函数进行初始化TAInject(id=R.string.app_name)String appN
9、ameString;TAInjectResource(id=R.attr.test)int test; TAInjectView(id=R.id.add);Button addButton;数据库模块 android中的orm框架,使用了线程池对sqlite进行操作。publicclassThinkAndroidDemoActivityextendsTAActivity TASQLiteDatabasePool sqlitePool = getTAApplication() .getSQLiteDatabasePool();TASQLiteDatabase sqliteDatabase=sql
10、itePool.getSQLiteDatabase();/使用中 sqliteDatabase.insert(entity); sqlitePool.returnSQLiteDatabase(sqliteDatabase); Http模块使用方法:异步get方法AsyncHttpClient client =newAsyncHttpClient(); client.get( newAsyncHttpResponseHandler() Overridepublicvoid onSuccess(String content) / TODO Auto-generated method stubsup
11、er.onSuccess(content);TALogger.d(LoginActivity.this, content); Overridepublicvoid onStart() / TODO Auto-generated method stubsuper.onStart(); Overridepublicvoid onFailure(Throwable error) / TODO Auto-generated method stubsuper.onFailure(error); Overridepublicvoid onFinish() / TODO Auto-generated met
12、hod stubsuper.onFinish(); );Http模块使用方法:同步get方法TASyncHttpClient client =newTASyncHttpClient(); client.get( newAsyncHttpResponseHandler() Overridepublicvoid onSuccess(String content) / TODO Auto-generated method stubsuper.onSuccess(content);TALogger.d(LoginActivity.this, content); Overridepublicvoid o
13、nStart() / TODO Auto-generated method stubsuper.onStart(); Overridepublicvoid onFailure(Throwable error) / TODO Auto-generated method stubsuper.onFailure(error); Overridepublicvoid onFinish() / TODO Auto-generated method stubsuper.onFinish(); );使用http模块上传文件或者提交数据到服务器(post方法)RequestParams params =new
14、RequestParams(); params.put(username, white_cat); params.put(password, 123456); params.put(email, 2640017581); params.put(profile_picture, newFile(/mnt/sdcard/testpic.jpg); / 上传文件 params.put(profile_picture2, inputStream); / 上传数据流 params.put(profile_picture3, newByteArrayInputStream(bytes); / 提交字节流
15、client.post( newAsyncHttpResponseHandler() Overridepublicvoid onSuccess(String content) / TODO Auto-generated method stubsuper.onSuccess(content);TALogger.d(LoginActivity.this, content); Overridepublicvoid onStart() / TODO Auto-generated method stubsuper.onStart(); Overridepublicvoid onFailure(Throw
16、able error) / TODO Auto-generated method stubsuper.onFailure(error); Overridepublicvoid onFinish() / TODO Auto-generated method stubsuper.onFinish(); ); 使用http下载文件: 支持断点续传,随时停止下载任务或者开始任务AsyncHttpClient syncHttpClient =newAsyncHttpClient();FileHttpResponseHandler fHandler =newFileHttpResponseHandler(
17、TAExternalOverFroyoUtils.getDiskCacheDir(TestActivity.this,sdfsdfsdf).getAbsolutePath() Overridepublicvoid onProgress(String speed, String progress) /TODO Auto-generated method stub super.onProgress(speed, progress);TALogger.v(TestActivity.this, progress +-+ speed); Overridepublicvoid onFailure(Thro
18、wable error) / TODOAuto-generated method stub super.onFailure(error); Overridepublicvoid onSuccess(byte binaryData) / TODOAuto-generated method stub super.onSuccess(binaryData);TALogger.d(TestActivity.this, kaishi8了); ; syncHttpClient .download( fHandler);/停止 fHandler.setInterrupt(interrupt);图片模块方法
19、imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。packagecom.test;importcom.ta.TAApplication;importcom.ta.util.bitmap.TABitmapCacheWork;importcom.ta.util.bitmap.TADownloadBitmapHandler;importandroid.content.Context;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.vie
20、w.ViewGroup;importandroid.widget.BaseAdapter;importandroid.widget.ImageView;publicclassAdapterextendsBaseAdapterTABitmapCacheWork imageFetcher;Context mContext;publicAdapter(Contextcontext, TAApplicationapplication) TADownloadBitmapHandler downloadBitmapFetcher =newTADownloadBitmapHandler( context,
21、100); imageFetcher =newTABitmapCacheWork(context); imageFetcher.setProcessDataHandler(downloadBitmapFetcher); imageFetcher.setFileCache(application.getFileCache();this.mContext = context; OverridepublicintgetCount() / TODO Auto-generated method stubreturnImages.imageThumbUrls.length; OverridepublicO
22、bjectgetItem(intposition) / TODO Auto-generated method stubreturnImages.imageThumbUrlsposition; OverridepubliclonggetItemId(intposition) / TODO Auto-generated method stubreturn position; OverridepublicViewgetView(intposition, ViewconvertView, ViewGroupparent) / TODO Auto-generated method stubLayoutI
23、nflater inflater = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE);View baseView = inflater.inflate(R.layout.login_adapter, null);finalImageView imageView = (ImageView) baseView .findViewById(R.id.imageView);/加载图片 imageFetcher.loadFormCache(getItem(position), imageView);
24、return baseView; 使用 TAInjectView(id =R.id.gridView)GridView gridView;Adapter adapter =newAdapter(this, getTAApplication(); gridView.setAdapter(adapter);缓存模块方法 很简单的实现缓存,以一个简单的文件缓存为例 下载处理类packagecom.test.file;importcom.ta.util.cache.TAProcessDataHandler;/下载处理类publicclassTAProcessStringHandlerextendsTA
25、ProcessDataHandlerOverridepublicbyte processData(Objectdata) / TODO Auto-generated method stubString mynameString=white_cat;/这里对数据进行处理,如下载东西等等,转换为byte以供缓存存储使用return mynameString.getBytes(); 缓存结果返回操作类packagecom.test.file;importandroid.widget.TextView;importcom.ta.util.cache.TACallBackHandler;publiccl
26、assTAStringCallBackHandlerextendsTACallBackHandlerOverridepublicvoidonStart(TextViewt, Objectdata) / TODO Auto-generated method stubsuper.onStart(t, data); OverridepublicvoidonSuccess(TextViewt, Objectdata, byte buffer) / TODO Auto-generated method stubsuper.onSuccess(t, data, buffer); OverridepublicvoidonFailure(TextViewt, Objectdata) / TODO Auto-generated method stubsuper.onFailure(t, data); 程序调用TAFileCacheWork taFileCacheWork=newTAFileCacheWork(); taFileCacheWork.setFileCache(getTAApplication().getFileCach
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1