Android笔记--对缓存、三级缓存和Android的Dalvik虚拟机和java编译过程的理解
2016-01-18 21:04
429 查看
对缓存、三级缓存的理解:
缓存:
1、缓存是用来避免频繁的到数据库或磁盘文件获取数据而建立的一个快速临时存储器。
2、缓存一般用来:1)存储频繁访问的数据。2)临时存储耗时的计算结果
3、客户端缓存,可以让用户请求一次之后,下一次不在从服务器端请求数据,而是从本地缓存读取,可以减轻服务器负担也可以加快用户的访问速度。
采用缓存,可以进一步大大缓解数据交互的压力,又能提供一定的离线浏览。
三级缓存:
在移动应用中,我们一般将网络图片分为三个级别:
第一级别是网络层,即根据图片的url地址可以找到服务器上相应图片,获取这一层的图片会消耗流量,所以我们希望可以获取后本地就永久使用,所以就会有接下来的缓存策略;第二层缓存是在手机内存层,是将第一层的图片下载到手机内存,这种缓存读取速度非常快,但当图片内存被回收时,图片就不会存在了;
第三层则是在手机硬盘层,是会下载到sd卡。
对Android的Dalvik虚拟机的理解:
1、Dalvik虚拟机是Google公司自己设计用于Android平台的Java虚拟机。
2、每个Android应用程序都运行在单独的Dalvik虚拟机内(就是说每个Android应用程序对应一条Davlik进程)。
3、Dalvik专门针对同时高效地运行多个虚拟机进行了优化,因此Android系统以方便的实现对应用程序进行隔离。
4、JVM虚拟机运行的是Java字节码(.class)文件,而Dalvik运行的是其专有的dex文件。
5、DX是一套工具,可以将 Java .class 转换成 .dex 格式. 一个dex档通常会有多个.class。由于dex有时必须进行最佳化,会使档案大小增加1-4倍,以ODEX结尾。
对java编译过程的理解:
1、当创建完源文件之后,程序会先被编译为.class文件 。
2、java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。
也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。
缓存:
1、缓存是用来避免频繁的到数据库或磁盘文件获取数据而建立的一个快速临时存储器。
2、缓存一般用来:1)存储频繁访问的数据。2)临时存储耗时的计算结果
3、客户端缓存,可以让用户请求一次之后,下一次不在从服务器端请求数据,而是从本地缓存读取,可以减轻服务器负担也可以加快用户的访问速度。
采用缓存,可以进一步大大缓解数据交互的压力,又能提供一定的离线浏览。
三级缓存:
在移动应用中,我们一般将网络图片分为三个级别:
第一级别是网络层,即根据图片的url地址可以找到服务器上相应图片,获取这一层的图片会消耗流量,所以我们希望可以获取后本地就永久使用,所以就会有接下来的缓存策略;第二层缓存是在手机内存层,是将第一层的图片下载到手机内存,这种缓存读取速度非常快,但当图片内存被回收时,图片就不会存在了;
第三层则是在手机硬盘层,是会下载到sd卡。
对Android的Dalvik虚拟机的理解:
1、Dalvik虚拟机是Google公司自己设计用于Android平台的Java虚拟机。
2、每个Android应用程序都运行在单独的Dalvik虚拟机内(就是说每个Android应用程序对应一条Davlik进程)。
3、Dalvik专门针对同时高效地运行多个虚拟机进行了优化,因此Android系统以方便的实现对应用程序进行隔离。
4、JVM虚拟机运行的是Java字节码(.class)文件,而Dalvik运行的是其专有的dex文件。
5、DX是一套工具,可以将 Java .class 转换成 .dex 格式. 一个dex档通常会有多个.class。由于dex有时必须进行最佳化,会使档案大小增加1-4倍,以ODEX结尾。
对java编译过程的理解:
1、当创建完源文件之后,程序会先被编译为.class文件 。
2、java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。
也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories