本项目是Android快速开发框架,采用AndroidStudio进行开发。 随着公司项目的不断深入,也相信每个公司都有自己的项目开发框架,同时也在不断的完善,本人在工作中也在不断总结,喜欢技术,热爱开源,也乐于和各种技术牛人一起交流。同时一直有一个想法可以做一套相对快速的开发框架用于工作中。所以就有了下面这个项目,各种工具方法都会再接下来的时间中慢慢加入进入,也非常欢迎和我同样想法的牛人加入进来,一起把这个项目完善好~Thankyou
项目地址:[https://github.com/jiangqqlmj/FastDev4Android](https://github.com/jiangqqlmj/FastDev4Android)
文章主页地址:[http://blog.csdn.net/developer_jiangqq](http://blog.csdn.net/developer_jiangqq)
**(一):初步想法集成如下:**
1:开发工具类;
2:ORM;
3:网络请求(HTTPClint,Volley,OkHttps);
4:数据解析;
5:依赖注入;
6:xutils;
7:图片异步加载;
8:二维码扫描;
9:自定义控件;
10:传感器相关功能等等 后续会进行逐步添加。
![](https://box.kancloud.cn/2016-01-18_569c8eaf80ddf.jpg)
模块详解如下:
![](https://box.kancloud.cn/2016-01-18_569c8eafa9ca6.jpg)
**(二):V1.0_001版本功能如下:**
一.Utils工具类加入(1.DataUtils 时间日期处理
2.GuideUtils 是否启动引导处理标志管理
3.IoUtils 网络请求工具类【特别注意】这边采用HTTPClient 由于Android 6.0已经删除该类,
这边libs目录需要加入org.apache.http.legcy.jar依赖包
4.JudgeNetWorker 网络状态判断工具类
5.Log 日志自定义管理
6.ManagerActivity Activity管理工具类
7.StrUtils 字符串相关处理工具类,系统信息获取工具类)
二.sperferences加入SharePerferences加入封装工具可以快速使用SP进行数据保存配置文件
三.Activity基类简单封装BaseActivity和BaseFrameActivity 暂时主要为Toast,LayoutInFlater,打开指定的Activity工具类封装
**(三):实例代码**
1:SharedPerference模块封装类:
SharedPreferencesHelper.java
~~~
package com.chinaztt.fda.spreference;
import android.content.Context;
import android.content.SharedPreferences;
/**
* 当前类注释:当前为SharedPerferences进行封装基本的方法,SharedPerferences已经封装成单例模式
* 可以通过SharedPreferences sp=SharedPreferencesHelper.getInstances(FDApplication.getInstance())进行获取当前对象
* sp.putStringValue(key,value)进行使用
* 项目名:FastDev4Android
* 包名:com.chinaztt.fda.spreference
* 作者:江清清 on 15/10/22 09:25
* 邮箱:jiangqqlmj@163.com
* QQ: 781931404
* 公司:江苏中天科技软件技术有限公司
*/
public class SharedPreferencesHelper {
private static final String SHARED_PATH = "fda_shared";
private static SharedPreferencesHelper instance;
private SharedPreferences sp;
private SharedPreferences.Editor editor;
public static SharedPreferencesHelper getInstance(Context context) {
if (instance == null && context != null) {
instance = new SharedPreferencesHelper(context);
}
return instance;
}
private SharedPreferencesHelper(Context context) {
sp = context.getSharedPreferences(SHARED_PATH, Context.MODE_PRIVATE);
editor = sp.edit();
}
public long getLongValue(String key) {
if (key != null && !key.equals("")) {
return sp.getLong(key, 0);
}
return 0;
}
public String getStringValue(String key) {
if (key != null && !key.equals("")) {
return sp.getString(key, null);
}
return null;
}
public int getIntValue(String key) {
if (key != null && !key.equals("")) {
return sp.getInt(key, 0);
}
return 0;
}
public int getIntValueByDefault(String key)
{
if (key != null && !key.equals("")) {
return sp.getInt(key, 0);
}
return 0;
}
public boolean getBooleanValue(String key) {
if (key != null && !key.equals("")) {
return sp.getBoolean(key, false);
}
return true;
}
public float getFloatValue(String key) {
if (key != null && !key.equals("")) {
return sp.getFloat(key, 0);
}
return 0;
}
public void putStringValue(String key, String value) {
if (key != null && !key.equals("")) {
editor = sp.edit();
editor.putString(key, value);
editor.commit();
}
}
public void putIntValue(String key, int value) {
if (key != null && !key.equals("")) {
editor = sp.edit();
editor.putInt(key, value);
editor.commit();
}
}
public void putBooleanValue(String key, boolean value) {
if (key != null && !key.equals("")) {
editor = sp.edit();
editor.putBoolean(key, value);
editor.commit();
}
}
public void putLongValue(String key, long value) {
if (key != null && !key.equals("")) {
editor = sp.edit();
editor.putLong(key, value);
editor.commit();
}
}
public void putFloatValue(String key, Float value) {
if (key != null && !key.equals("")) {
editor = sp.edit();
editor.putFloat(key, value);
editor.commit();
}
}
}
~~~
SharedPerferencesTag.java
~~~
package com.chinaztt.fda.spreference;
/**
* 当前类注释:当前类用户SharedPreferences进行save的时候 配置key常量
* 项目名:FastDev4Android
* 包名:com.chinaztt.fda.spreference
* 作者:江清清 on 15/10/22 09:26
* 邮箱:jiangqqlmj@163.com
* QQ: 781931404
* 公司:江苏中天科技软件技术有限公司
*/
public class SharedPreferencesTag {
public static final String DEMO_KEY="demo_key";
}
~~~
2.日志管理类封装
~~~
package com.chinaztt.fda.utils;
/**
* 当前类注释:重写系统日志管理类
* 使用方法:还是和平时Log.v(key,value)这样使用,需要导入当前类,该类会打印比系统更多的日志信息,
* 例如:类名称,当前运行的方法,行数,和日志信息
* 项目名:FastDev4Android
* 包名:com.chinaztt.fda.utils
* 作者:江清清 on 15/10/22 09:35
* 邮箱:jiangqqlmj@163.com
* QQ: 781931404
* 公司:江苏中天科技软件技术有限公司
*/
public class Log {
public static boolean mIsShow=true;
/**
* 设置是否打开log日志开关
* @param pIsShow
*/
public static void setShow(boolean pIsShow)
{
mIsShow=pIsShow;
}
/**
* 根据tag打印相关v信息
* @param tag
* @param msg
*/
public static void v(String tag,String msg)
{
if(mIsShow){
StackTraceElement ste = new Throwable().getStackTrace()[1];
String traceInfo = ste.getClassName() + "::";
traceInfo += ste.getMethodName();
traceInfo += "@" + ste.getLineNumber() + ">>>";
android.util.Log.v(tag, traceInfo+msg);}
}
/**
* 根据tag打印v信息,包括Throwable的信息
* * @param tag
* @param msg
* @param tr
*/
public static void v(String tag,String msg,Throwable tr)
{
if(mIsShow){
android.util.Log.v(tag, msg, tr);
}
}
/**
* 根据tag打印输出debug信息
* @param tag
* @param msg
*/
public static void d(String tag,String msg)
{
if(mIsShow){
StackTraceElement ste = new Throwable().getStackTrace()[1];
String traceInfo = ste.getClassName() + "::";
traceInfo += ste.getMethodName();
traceInfo += "@" + ste.getLineNumber() + ">>>";
android.util.Log.d(tag, traceInfo+msg);
}}
/**
* 根据tag打印输出debug信息 包括Throwable的信息
* * @param tag
* @param msg
* @param tr
*/
public static void d(String tag,String msg,Throwable tr)
{
if(mIsShow){
android.util.Log.d(tag, msg, tr);
}}
/**
* 根据tag打印输出info的信息
* * @param tag
* @param msg
*/
public static void i(String tag,String msg)
{
if(mIsShow){
StackTraceElement ste = new Throwable().getStackTrace()[1];
String traceInfo = ste.getClassName() + "::";
traceInfo += ste.getMethodName();
traceInfo += "@" + ste.getLineNumber() + ">>>";
android.util.Log.i(tag, traceInfo+msg);
}}
/**
* 根据tag打印输出info信息 包括Throwable的信息
* @param tag
* @param msg
* @param tr
*/
public static void i(String tag,String msg,Throwable tr)
{
if(mIsShow){
android.util.Log.i(tag, msg, tr);
}}
/**
* 根据tag打印输出error信息
* @param tag
* @param msg
*/
public static void e(String tag,String msg)
{
if(mIsShow){
StackTraceElement ste = new Throwable().getStackTrace()[1];
String traceInfo = ste.getClassName() + "::";
traceInfo += ste.getMethodName();
traceInfo += "@" + ste.getLineNumber() + ">>>";
android.util.Log.e(tag, traceInfo+msg);
}}
/**
* 根据tag打印输出的error信息 包括Throwable的信息
* @param tag
* @param msg
* @param tr
*/
public static void e(String tag,String msg,Throwable tr)
{
if(mIsShow){
android.util.Log.e(tag, msg, tr);
}}
}
~~~
以上是部分工具类封装模块,有兴趣的童鞋可以去([https://github.com/jiangqqlmj/FastDev4Android](https://github.com/jiangqqlmj/FastDev4Android))进行clone,也同时欢迎大家star或者fork一下哈,项目会不断更新,同时如果有兴趣一起完善项目的小伙伴联系我哈~博客资料有联系方式!
- 前言
- Android快速开发框架介绍(一)
- Android首页图片自动无限循环轮播Gallery+FlowIndicator(二)
- Android 列表下拉刷新组件PullToRefreshListView使用(三)
- Android 数据缓存器ACache的详解和使用(四)
- Android崩溃异常捕捉CustomCrash,提升用户体验(五)
- Android实现沉浸式状态栏(六)
- AndroidAnnnotations注入框架介绍和Android Studios基本配置(七)
- AndroidAnnnotations注入框架的工作原理(八)
- AndroidAnnnotations注入框架使用之注入组件Components(九)
- AndroidAnnnotations注入框架使用之Injection标签详解(十)
- AndroidAnnnotations注入框架使用之事件绑定Event Binding(十一)
- AndroidAnnnotations注入框架使用之线程处理Threading(十二)
- AndroidAnnnotations注入框架使用之第三方框架集成RoboGuice(十三)
- AndroidAnnnotations注入框架使用之第三方框架集成Otto事件总线(十四)
- AndroidAnnnotations注入框架使用之第三方框架集成OrmLite(十五)
- AndroidAnnnotations注入框架使用之最佳实践之Adapters和lists(十六)
- AndroidAnnnotations注入框架使用之最佳实践SharedPreferences(十七)
- Android MVP开发模式详解(十九)
- 消息总线EventBus的基本使用(二十)
- 消息总线EventBus源码分析以及与Otto框架对比(二十一)
- 列表头生成带文本或者字母的图片开源库TextDrawable使用和详解(二十二)
- 重写WebView网页加载以及JavaScript注入详解(二十三)
- BaseAdapterHelper的基本使用介绍,让你摆脱狂写一堆Adapter烦恼(二十四)
- BaseAdapterHelper详解源码分析,让你摆脱狂写一堆Adapter烦恼(二十五)
- Volley完全解析之基础使用(二十六)
- Volley完全解析之进阶最佳实践与二次封装(二十七)
- RecyclerView完全解析,让你从此爱上它(二十八)
- RecyclerView完全解析之打造新版类Gallery效果(二十九)
- RecyclerView完全解析之结合AA(Android Annotations)注入框架实例(三十)
- RecyclerView完全解析之下拉刷新与上拉加载SwipeRefreshLayout(三十一)
- CardView完全解析与RecyclerView结合使用(三十二)
- 神器ViewDragHelper完全解析,妈妈再也不担心我自定义ViewGroup滑动View操作啦~(三十三)
- 神器ViewDragHelper完全解析之详解实现QQ5.X侧滑酷炫效果(三十四)
- 实例解析之SwipeRefreshLayout+RecyclerView+CardView(三十五)
- HorizontalScrollView,Fragment,FragmentStatePagerAdapter打造网易新闻Tab及滑动页面效果(三十六)
- Android Design支持库TabLayout打造仿网易新闻Tab标签效果(三十七)
- 打造QQ6.X最新版本侧滑界面效果(三十八)