abstrak:學(xué)習(xí)Android 有一個(gè)很重要的設(shè)計(jì)思想就是——MVC設(shè)計(jì)模式。應(yīng)用對象按模型、控制器和視圖的類別分為三部分。Android應(yīng)用基于模型——控制器——視圖(Model—View—Controller、MVC)的架構(gòu)模式進(jìn)行設(shè)計(jì)。 MVC設(shè)計(jì)模式表明,應(yīng)用的任何對象,歸根結(jié)底都屬于模型對象、視圖對象、以及控制對象中的一種。模型對象:存儲著應(yīng)用的數(shù)據(jù)和業(yè)務(wù)邏輯。 視圖對象知道如
學(xué)習(xí)Android 有一個(gè)很重要的設(shè)計(jì)思想就是——MVC設(shè)計(jì)模式。
應(yīng)用對象按模型、控制器和視圖的類別分為三部分。Android應(yīng)用基于模型——控制器——視圖(Model—View—Controller、MVC)的架構(gòu)模式進(jìn)行設(shè)計(jì)。
MVC設(shè)計(jì)模式表明,應(yīng)用的任何對象,歸根結(jié)底都屬于模型對象、視圖對象、以及控制對象中的一種。
模型對象:存儲著應(yīng)用的數(shù)據(jù)和業(yè)務(wù)邏輯。 視圖對象知道如何在屏幕上繪制自己如何響應(yīng)用戶的輸入,如用戶的觸摸等。 控制對象含有應(yīng)用的邏輯單元,是視圖與模型對象的聯(lián)系紐帶。
使用MVC設(shè)計(jì)模式的好處:
把java類以模型、視圖和控制層進(jìn)行分類組織,也有助于我們設(shè)計(jì)和理解應(yīng)用。
額。。最近重新把a(bǔ)ndroid基礎(chǔ)看了一遍。然后買了一本書叫做《Android編程指南》(第二版) .個(gè)人感覺此書還不錯(cuò)。今天寫一下在書中聯(lián)系的一個(gè)簡單的程序。
我也是因?yàn)榭戳诉@本書之后更改了我自己的一些編譯習(xí)慣。因?yàn)閍ndroid的一個(gè)很中要的一個(gè)編譯思想就是MVC模式,不管是你在給一個(gè)簡單按鈕Button定義它的名字也好,還是給一堆按鈕定義它們的信息也好,都要想到這個(gè)編譯思想。
當(dāng)一個(gè)用戶使用一個(gè)app時(shí),當(dāng)他進(jìn)行點(diǎn)擊一個(gè)按鈕的時(shí)候,你要去響應(yīng)這個(gè)點(diǎn)擊時(shí)間,你要去給這個(gè)控件去寫它的方法,而不是一個(gè)死板的按鈕,是一個(gè)有生命力,有自己的構(gòu)造方法的按鈕。
下面我來畫一個(gè)MVC數(shù)據(jù)控制流與用戶交互的時(shí)候響應(yīng)的數(shù)據(jù)流圖:
額... 圖雖然畫的有點(diǎn)丑,但是大體的意思就是個(gè)樣子了。
接下來來描述下Activity的生命周期.
每個(gè)Activity都有其生命周期,activity在運(yùn)行、暫停和停止三種可能的狀態(tài)間進(jìn)行轉(zhuǎn)換。
Activity的生命周期、狀態(tài)以及狀態(tài)切換時(shí)系統(tǒng)調(diào)用的方法有如下幾種:
1.onPause()、onStop()、onDestory()、onCreate()、onStart()、onReasume()。
日志跟蹤Activity的生命周期:
Android 的android.util.Log類能夠發(fā)送日志信息到系統(tǒng)級別的共享日志中心。Log類中有好幾個(gè)日志記錄方法:
其中使用最多的是:
public static int d(String tag,String msg): ddaibiao "debug” ,用來表示日志信息的級別,第一個(gè)參數(shù)是表示日志的來源,第二個(gè)參數(shù)表示日志的具體內(nèi)容。
第一個(gè)參數(shù)通常以類名為值的TAG常量傳入
private static final String TAG="MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(TAG, "onCreate(Bundle) called"); setContentView(R.layout.activity_main); }
小提示:@Override注解,就是要求編譯器保證當(dāng)前類具有你要覆蓋的方法。
覆蓋onSaveInstanceState(Bundle)方法, 可通過此方法將一些數(shù)據(jù)保存在bundle中,然后在onCreate()方法中取出這些數(shù)據(jù)。
當(dāng)用戶離開當(dāng)前activity管理的用戶界面,或Android需要回收內(nèi)存時(shí),acitivity也會被銷毀,所以,為了用戶的體驗(yàn),Android 不會為了回收內(nèi)存,而去銷毀正在運(yùn)行的activity。
activity只有在暫?;蛘咄V?fàn)顟B(tài)下才可能會被銷毀
在使用Android studio進(jìn)行開發(fā)的時(shí)候,查看Log日志是非常重要的。
使用android.util類記錄日志信息,不僅可以控制日志的內(nèi)容,還可以用來控制信息重要程度的日志級別。 Android支持五種日志級別:
1.ERROR: Log.e(...) 說明:錯(cuò)誤
2.WARNING: Log.w(...) 說明:警告
3.INFO : Log.i(..) 說明:信息型消息
4.DEBUG: Log.d(...) 說明:調(diào)試輸出:可能被過濾掉
5.VERBOSE: Log.v(...) 說明:只用于開發(fā)..
在做開發(fā)的時(shí)候R文件是一個(gè)令人非常頭疼的地方,當(dāng)你不經(jīng)意去刪改R文件里面的一些東西,R文件就會報(bào)錯(cuò),然后就導(dǎo)致你整個(gè)項(xiàng)目都會出錯(cuò),所以處理R類的問題是非常重要的。
若當(dāng)你資源編譯錯(cuò)誤有時(shí)出現(xiàn)一些莫名其妙錯(cuò)誤的狀況的時(shí)候,你不妨可以試試以下這幾種方法:
1.重新檢查資源文件中XML文件的有效性
2.清理項(xiàng)目
3.使用Gradle 同步項(xiàng)目
4.運(yùn)行Android Lint