AndroidSDK提供了许多内置功能,但也有一些它不为处理的事情。API指南只能带走这么远。这个框架试图在Android示例停止的地方继续,并解决一些更棘手的问题。希望能在这个库中找到功能,帮助代码变得更加健壮。
数据库管理(如何使用):
提供了一个序列化访问框架,用于编写线程安全的(多线程)应用程序。
允许在每个表级别进行升级,而不是每个数据库。
支持方法以跟踪数据与远程服务器的同步。
网络工具(如何使用):
允许轻松检测和处理网络错误。
内置支持Cookie。
允许轻松使用网络重试模式(例如,尝试5次后才返回错误)。
处理经过认证和未经认证的网络请求。
隐藏SharedPreferences数据(如何使用):
com.worxforus.ObscuredSharedPreferences
共享数据通常以明文形式存储。这个工具可以轻松地加密SharedPreferences数据。
对象池- com.worxforus.Pool
将对象放入池中,以保持内存使用低并最小化对象创建。
有两种使用库的方法:
克隆GitHub上的源代码:
WorxForUs Library
并导入到IDE中。将WorxForUs库项目链接到项目。
从GitHub下载jar文件,并包含在项目/lib文件中。
如果使用网络工具,可能想要从他们的下载页面获取最新的Apache HttpClient包。
将需要httpcore-4.x.x.jar、httpclient-4.x.x.jar、httpclient-cache-4.x.x.jar和httpmime-4.x.x.jar。将这些导入到引用jar库中。截至本文撰写时,最新的二进制版本是4.3.3包。
除了编写软件时通常会收集或创建的典型实用程序外,还有一些特定的需求,需要健壮的数据库访问和网络处理。
在Android中使用SQLite数据库的典型示例显示扩展了SQLiteOpenHelper。这很好,但如果有几张表,每张表都有自己的版本怎么办?此外,示例项目显示了dbHelper.getWritableDatabase(),但没有说明如何处理多个线程争夺同一资源。这在单核CPU设备上可能没问题,但突然间应用程序可能会在多核Nexus 7上崩溃,因为数据库访问没有序列化。这个包使用单例来提供对SQLite数据库的访问,并使用信号量来提供锁定,这默认情况下序列化了数据库访问,并防止了许多常见的数据库异常发生。
网络工具:
需要处理Cookie并检测网络连接何时失败,并确定失败的类型。问题是服务器故障还是用户设备上的不良连接?在移动网络中,错误是常态,正确处理它们很重要。还想要一种简单的方法来重新尝试连接,直到成功。这个包基于Apache HttpClient,因为它很容易支持需要的东西,如Cookie和错误检测。计划未来的版本将使用Velocity框架。
http://stackoverflow.com/questions/785973/what-is-the-most-appropriate-way-to-store-user-settings-in-android-application/6393502#6393502