本項(xiàng)目是Android快速開發(fā)框架,采用AndroidStudio進(jìn)行開發(fā)。 隨著公司項(xiàng)目的不斷深入,也相信每個(gè)公司都有自己的項(xiàng)目開發(fā)框架,同時(shí)也在不斷的完善,本人在工作中也在不斷總結(jié),喜歡技術(shù),熱愛開源,也樂于和各種技術(shù)牛人一起交流。同時(shí)一直有一個(gè)想法可以做一套相對(duì)快速的開發(fā)框架用于工作中。所以就有了下面這個(gè)項(xiàng)目,各種工具方法都會(huì)再接下來(lái)的時(shí)間中慢慢加入進(jìn)入,也非常歡迎和我同樣想法的牛人加入進(jìn)來(lái),一起把這個(gè)項(xiàng)目完善好~Thankyou
創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供蚌埠網(wǎng)站建設(shè)、蚌埠做網(wǎng)站、蚌埠網(wǎng)站設(shè)計(jì)、蚌埠網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、蚌埠企業(yè)網(wǎng)站模板建站服務(wù),十余年蚌埠做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
項(xiàng)目地址:https://github.com/jiangqqlmj/FastDev4Android
文章主頁(yè)地址:http://blog.csdn.net/developer_jiangqq
1:開發(fā)工具類;
2:ORM;
3:網(wǎng)絡(luò)請(qǐng)求(HTTPClint,Volley,OkHttps);
4:數(shù)據(jù)解析;
5:依賴注入;
6:xutils;
7:圖片異步加載;
8:二維碼掃描;
9:自定義控件;
10:傳感器相關(guān)功能等等 后續(xù)會(huì)進(jìn)行逐步添加。
模塊詳解如下:
一.Utils工具類加入(1.DataUtils 時(shí)間日期處理
2.GuideUtils 是否啟動(dòng)引導(dǎo)處理標(biāo)志管理
3.IoUtils 網(wǎng)絡(luò)請(qǐng)求工具類【特別注意】這邊采用HTTPClient 由于Android 6.0已經(jīng)刪除該類,
這邊libs目錄需要加入org.apache.http.legcy.jar依賴包
4.JudgeNetWorker 網(wǎng)絡(luò)狀態(tài)判斷工具類
5.Log 日志自定義管理
6.ManagerActivity Activity管理工具類
7.StrUtils 字符串相關(guān)處理工具類,系統(tǒng)信息獲取工具類)
二.sperferences加入SharePerferences加入封裝工具可以快速使用SP進(jìn)行數(shù)據(jù)保存配置文件
三.Activity基類簡(jiǎn)單封裝BaseActivity和BaseFrameActivity 暫時(shí)主要為Toast,LayoutInFlater,打開指定的Activity工具類封裝
1:SharedPerference模塊封裝類:
SharedPreferencesHelper.java
[java] view plaincopy
package com.chinaztt.fda.spreference;
import android.content.Context;
import android.content.SharedPreferences;
/**
* 當(dāng)前類注釋:當(dāng)前為SharedPerferences進(jìn)行封裝基本的方法,SharedPerferences已經(jīng)封裝成單例模式
* 可以通過SharedPreferences sp=SharedPreferencesHelper.getInstances(FDApplication.getInstance())進(jìn)行獲取當(dāng)前對(duì)象
* sp.putStringValue(key,value)進(jìn)行使用
* 項(xiàng)目名:FastDev4Android
* 包名:com.chinaztt.fda.spreference
* 作者:江清清 on 15/10/22 09:25
* 郵箱:jiangqqlmj@163.com
* QQ: 781931404
* 公司:江蘇中天科技軟件技術(shù)有限公司
*/
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
[java] view plaincopy
package com.chinaztt.fda.spreference;
/**
* 當(dāng)前類注釋:當(dāng)前類用戶SharedPreferences進(jìn)行save的時(shí)候 配置key常量
* 項(xiàng)目名:FastDev4Android
* 包名:com.chinaztt.fda.spreference
* 作者:江清清 on 15/10/22 09:26
* 郵箱:jiangqqlmj@163.com
* QQ: 781931404
* 公司:江蘇中天科技軟件技術(shù)有限公司
*/
public class SharedPreferencesTag {
public static final String DEMO_KEY="demo_key";
}
2.日志管理類封裝
[java] view plaincopy
package com.chinaztt.fda.utils;
/**
* 當(dāng)前類注釋:重寫系統(tǒng)日志管理類
* 使用方法:還是和平時(shí)Log.v(key,value)這樣使用,需要導(dǎo)入當(dāng)前類,該類會(huì)打印比系統(tǒng)更多的日志信息,
* 例如:類名稱,當(dāng)前運(yùn)行的方法,行數(shù),和日志信息
* 項(xiàng)目名:FastDev4Android
* 包名:com.chinaztt.fda.utils
* 作者:江清清 on 15/10/22 09:35
* 郵箱:jiangqqlmj@163.com
* QQ: 781931404
* 公司:江蘇中天科技軟件技術(shù)有限公司
*/
public class Log {
public static boolean mIsShow=true;
/**
* 設(shè)置是否打開log日志開關(guān)
* @param pIsShow
*/
public static void setShow(boolean pIsShow)
{
mIsShow=pIsShow;
}
/**
* 根據(jù)tag打印相關(guān)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);}
}
/**
* 根據(jù)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);
}
}
/**
* 根據(jù)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);
}}
/**
* 根據(jù)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);
}}
/**
* 根據(jù)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);
}}
/**
* 根據(jù)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);
}}
/**
* 根據(jù)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);
}}
/**
* 根據(jù)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)進(jìn)行clone,也同時(shí)歡迎大家star或者fork一下哈,項(xiàng)目會(huì)不斷更新,同時(shí)如果有興趣一起完善項(xiàng)目的小伙伴聯(lián)系我哈~博客資料有聯(lián)系方式!