java/android基础总结2

1.oom: out of memory.内存溢出
anr: application is no responding

2.使用LruCache来缓存图片的例子:(内存缓存)
http://www.cnblogs.com/lichenwei/p/4437773.html
http://my.oschina.net/ryanhoo/blog/93406

3.java.lang.Runtime类中的freeMeory(),totalMemory(),MaxMemory()
MaxMemory():返回这个进程从操作系统那里挖到的最大的内存,以字节为单位。
totalMemory():返回这个进程当时所占用的所有内存。
freeMemory():当java程序运行的过程中,内存总是慢慢的从操作系统那里挖的,基本上是用多少挖多少,但是,java虚拟机总是会多挖一些,这些多挖出来又没有用上的内存,就是FreeMemory()返回的值,一般都比较小。

4.AsyncTask轻量级异步类

5.MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(Cotroller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

6.ToggleButton、Switch、CheckBox和RadioButton都是继承自android.widget.CompoundButton,意思是可选择的,因此它们的用法都很类似。CompoundButton有两个状态,分别是checked和not checked。

7.native关键字表示可以调用操作系统的底层函数,那么这样的技术成为JNI技术(java Native Interface)

8.jre(java runtime environment,java运行环境),运行java程序所必须的环境集合,包括java虚拟机(jvm)、java核心类库和支持文件。你所写的java程序在经过javac编译后会形成字符行文件,这个java的中间文件,计算机是看不懂得,而这个文件是给jvm(java虚拟机)用的。由jvm进行解释后形成机器语言给计算机。而这个jvm就在jre中。
jdk(java Development kit)是java语言的软件开发工具包。
JDK包含的基本组件包括:
javac-编译器,将源程序转成字节码。
jar-打包工具,将相关的类文件打包成一个文件
javadoc-文档生成器,从源码注释中提取文档
jdb-debugger,查错工具
java-运行编译后的java程序(.class)

9.Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: de/greenrobot/event/AsyncPoster.class

duplicate entry:重复录用的意思。

10.启动Application时,系统会创建一个PID,即进程ID,所有的Activity就会在此进程上运行。那么我们在Application创建的时候初始化全局变量,同一个应用的所有Activity都可以取到这些全局变量的值,换句话说,我们在某一个Activity中改变了这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。

11.在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run方法就可以实现多线程操作了,但是一个类只能继承一个父类这是此方法的局限。
Thread
http://www.jb51.net/article/37465.htm
用run()调用的话,是先执行第一个,再执行第二个,没有相互运行。也就是说,是同步的。
用start()方法的话,程序是交互式运行的。也就是说是异步的。

在实际开发中一个多线程的操作很少使用Thread类,而是通过Runnable接口完成。

Thread认识Runnable 并且知道Runnable 里面有一个run方法. 一旦调用Thread的start方法,Runnable 方法里的run就会被Thread自动运行。 所以,当我们把我们的类继承(这里应该叫实现接口)自Runnable 的时候,我们的程序就是属于Runnable 一个类型的了。 虽然是Runnable 的子类,但人家认识你爸爸,当然也知道了你。

Runnable是一个接口,不是一个线程,一般线程会实现Runnable。所以如果我们使用匿名内部类是运行在UI主线程的,如果我们使用实现这个Runnable接口的线程类,则是运行在对应线程的。

首先说明Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而Handler和Thread就是相互绑定的,一一对应。
而Runnable是一个接口,Thread是Runnable的子类。所以说,他俩都算一个进程。

12.async异步
sync同步

你可能感兴趣的:(java/android基础总结2)