【FastDev4Android框架开发】Android快速开发框架介绍(一)

转载请标明出处:

http://www.jianshu.com/p/67dffeedc6ad

本文出自:【江清清博客-代号独狼】

        本项目是Android快速开发框架,采用AndroidStudio进行开发。 随着公司项目的不断深入,也相信每个公司都有自己的项目开发框架,同时也在不断的完善,本人在工作中也在不断总结,喜欢技术,热爱开源,也乐于和各种技术牛人一起交流。同时一直有一个想法可以做一套相对快速的开发框架用于工作中。所以就有了下面这个项目,各种工具方法都会再接下来的时间中慢慢加入进入,也非常欢迎和我同样想法的牛人加入进来,一起把这个项目完善好~Thankyou

项目地址:https://github.com/jiangqqlmj/FastDev4Android

文章主页地址:http://blog.csdn.net/developer_jiangqq

(一):初步想法集成如下:

1:开发工具类;

2:ORM;

3:网络请求(HTTPClint,Volley,OkHttps);

4:数据解析;

5:依赖注入;

6:xutils;

7:图片异步加载;

8:二维码扫描;

9:自定义控件;

10:传感器相关功能等等 后续会进行逐步添加。

模块详解如下:

(二):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)进行clone,也同时欢迎大家star或者fork一下哈,项目会不断更新,同时如果有兴趣一起完善项目的小伙伴联系我哈~博客资料有联系方式!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容