【FastDev4Android框架開發(fā)】Android快速開發(fā)框架介紹(一)

轉(zhuǎn)載請(qǐng)標(biāo)明出處:

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

本文出自:【江清清博客-代號(hào)獨(dú)狼】

? ? ? ? 本項(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ì)再接下來的時(shí)間中慢慢加入進(jìn)入望侈,也非常歡迎和我同樣想法的牛人加入進(jìn)來,一起把這個(gè)項(xiàng)目完善好~Thankyou

項(xiàng)目地址:https://github.com/jiangqqlmj/FastDev4Android

文章主頁地址: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)行逐步添加勋桶。

模塊詳解如下:

(二):V1.0_001版本功能如下:

一.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工具類封裝

(三):實(shí)例代碼

1:SharedPerference模塊封裝類:

SharedPreferencesHelper.java

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

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.日志管理類封裝

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)系方式!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鹃锈,一起剝皮案震驚了整個(gè)濱河市荤胁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屎债,老刑警劉巖仅政,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異盆驹,居然都是意外死亡圆丹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門躯喇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來运褪,“玉大人,你說我怎么就攤上這事〗斩铮” “怎么了檀咙?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)璃诀。 經(jīng)常有香客問我弧可,道長(zhǎng),這世上最難降的妖魔是什么劣欢? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任棕诵,我火速辦了婚禮,結(jié)果婚禮上凿将,老公的妹妹穿的比我還像新娘校套。我一直安慰自己,他們只是感情好牧抵,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布笛匙。 她就那樣靜靜地躺著,像睡著了一般犀变。 火紅的嫁衣襯著肌膚如雪妹孙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天获枝,我揣著相機(jī)與錄音蠢正,去河邊找鬼。 笑死省店,一個(gè)胖子當(dāng)著我的面吹牛嚣崭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播懦傍,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼雹舀,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了谎脯?” 一聲冷哼從身側(cè)響起葱跋,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎源梭,沒想到半個(gè)月后娱俺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡废麻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年荠卷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烛愧。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡油宜,死狀恐怖掂碱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情慎冤,我是刑警寧澤疼燥,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站蚁堤,受9級(jí)特大地震影響醉者,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜披诗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一撬即、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧呈队,春花似錦剥槐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绍刮,卻和暖如春温圆,著一層夾襖步出監(jiān)牢的瞬間挨摸,已是汗流浹背孩革。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留得运,地道東北人膝蜈。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像熔掺,于是被迫代替她去往敵國和親饱搏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理置逻,服務(wù)發(fā)現(xiàn)推沸,斷路器,智...
    卡卡羅2017閱讀 134,693評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法券坞,類相關(guān)的語法鬓催,內(nèi)部類的語法,繼承相關(guān)的語法恨锚,異常的語法宇驾,線程的語...
    子非魚_t_閱讀 31,660評(píng)論 18 399
  • 2017年5月17日 Kylin_Wu 標(biāo)注(★☆)為考綱明確給出考點(diǎn)(必考) 常見手機(jī)系統(tǒng)(★☆) And...
    Azur_wxj閱讀 1,817評(píng)論 0 10
  • #Android 基礎(chǔ)知識(shí)點(diǎn)總結(jié) ---------- ##1.adb - android debug bridg...
    Mythqian閱讀 3,298評(píng)論 2 11
  • 精簡(jiǎn)课舍,小事 1.早英文朗讀 30min塌西! 2.讀書《語言的藝術(shù)》 1.5小時(shí)! 3.工程訓(xùn)練 5小時(shí)筝尾! 4.鍛煉...
    橘子俠閱讀 198評(píng)論 0 0