1.说说MVC模式的原理,它在Android中的运用,Android的官方建议应用程序的开发采用MVC模式。何谓MVC?
MVC是model, view, controller的缩写,MVC包含三个部分:
模型(model)对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。
视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个MVC架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。
控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,响应用户出发的相关事件,交给m层处理。
Android鼓励弱耦合和组件的重用,在Android中MVC的具体体现如下:
(1)视图层(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入,
(2)控制层(controller):Android的控制层的重任通常落在了众多的 activity的肩上,意味者不要在activity中写代码,要通过activity交割model业务逻辑层处理。这样做的另外一个原因是Android中的activity的响应时间是5s,如果耗时的操作放在这里,程序就很容易出现ANR。
(3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。
2.Application类的作用?
Android系统自动会为每个程序运行时,创建一个唯一的Application类的对象
Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它在全局中是单例的,所以在不同的Activity/Service中获得的对象都是同一个对象。因此可以通过Application类来进行一些,如:数据传递、数据共享和数据缓存等操作。
3.如何将打开res aw目录中的数据库文件?
在Android中不能直接打开res aw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。
复制的基本方法是使用getResources().openRawResource方法获得res aw目录中资源的 InputStream对象,然后将该InputStream对象中的数据写入其他的目录中相应文件中。在Android SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件。
InputStream is = getResources().openRawResource(R.raw.word);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {}
网友评论