首页 > 代码库 > Android——基础(2)

Android——基础(2)

学习Android 有一个很重要的设计思想就是——MVC设计模式。

应用对象按模型、控制器和视图的类别分为三部分。Android应用基于模型——控制器——视图(Model—View—Controller、MVC)的架构模式进行设计。 

MVC设计模式表明,应用的任何对象,归根结底都属于模型对象、视图对象、以及控制对象中的一种。

模型对象:存储着应用的数据和业务逻辑。  视图对象知道如何在屏幕上绘制自己如何响应用户的输入,如用户的触摸等。    控制对象含有应用的逻辑单元,是视图与模型对象的联系纽带。

 

使用MVC设计模式的好处:

把java类以模型、视图和控制层进行分类组织,也有助于我们设计和理解应用。

 

额。。最近重新把android基础看了一遍。然后买了一本书叫做《Android编程指南》(第二版) .个人感觉此书还不错。今天写一下在书中联系的一个简单的程序。

 我也是因为看了这本书之后更改了我自己的一些编译习惯。因为android的一个很中要的一个编译思想就是MVC模式,不管是你在给一个简单按钮Button定义它的名字也好,还是给一堆按钮定义它们的信息也好,都要想到这个编译思想。

 

当一个用户使用一个app时,当他进行点击一个按钮的时候,你要去响应这个点击时间,你要去给这个控件去写它的方法,而不是一个死板的按钮,是一个有生命力,有自己的构造方法的按钮。

 

下面我来画一个MVC数据控制流与用户交互的时候响应的数据流图:

技术分享

额...  图虽然画的有点丑,但是大体的意思就是个样子了。

接下来来描述下Activity的生命周期.

 

每个Activity都有其生命周期,activity在运行、暂停和停止三种可能的状态间进行转换。

Activity的生命周期、状态以及状态切换时系统调用的方法有如下几种:

1.onPause()、onStop()、onDestory()、onCreate()、onStart()、onReasume()。

 

日志跟踪Activity的生命周期:

Android 的android.util.Log类能够发送日志信息到系统级别的共享日志中心。Log类中有好几个日志记录方法:

其中使用最多的是:

public static int d(String tag,String msg):  ddaibiao "debug” ,用来表示日志信息的级别,第一个参数是表示日志的来源,第二个参数表示日志的具体内容。

第一个参数通常以类名为值的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注解,就是要求编译器保证当前类具有你要覆盖的方法。

覆盖onSaveInstanceState(Bundle)方法, 可通过此方法将一些数据保存在bundle中,然后在onCreate()方法中取出这些数据。

当用户离开当前activity管理的用户界面,或Android需要回收内存时,acitivity也会被销毁,所以,为了用户的体验,Android 不会为了回收内存,而去销毁正在运行的activity。

activity只有在暂停或者停止状态下才可能会被销毁

 

在使用Android studio进行开发的时候,查看Log日志是非常重要的。

使用android.util类记录日志信息,不仅可以控制日志的内容,还可以用来控制信息重要程度的日志级别。  Android支持五种日志级别:

1.ERROR:  Log.e(...)  说明:错误

2.WARNING: Log.w(...) 说明:警告

3.INFO : Log.i(..) 说明:信息型消息

4.DEBUG: Log.d(...) 说明:调试输出:可能被过滤掉

5.VERBOSE: Log.v(...) 说明:只用于开发..   

 

在做开发的时候R文件是一个令人非常头疼的地方,当你不经意去删改R文件里面的一些东西,R文件就会报错,然后就导致你整个项目都会出错,所以处理R类的问题是非常重要的。

若当你资源编译错误有时出现一些莫名其妙错误的状况的时候,你不妨可以试试以下这几种方法:

1.重新检查资源文件中XML文件的有效性

2.清理项目

3.使用Gradle 同步项目

4.运行Android Lint

 

 

 

 

 

   

Android——基础(2)