May
18th,
2016
1.尽管 Message
的构造器是公开的,但是获取 Message
对象的最好方法是调用 Message.obtain()
或者 Handler.obtainMessage()
,这样是从一个可回收对象池中获取Message对象。看下源码
/**
* Return a new Message instance from the global pool. Allows us to
* avoid allocating new objects in many cases.
*/
public static Message obtain() {
synchronized (sPoolSync) {
if (sPool != null) {
Message m = sPool;
sPool = m.next;
m.next = null;
m.flags = 0; // clear in-use flag
sPoolSize--;
return m;
}
}
return new Message();
}
2.加载so库时,抛出的是throwable不是exception。
3.Android中不允许在依赖库中使用switch-case访问资源id,原因是case后面跟的参数必须是常量,而library中的生成的资源id都不是常量。
4.API level 11+之后当使用 fragment
或者 dialogfragment
时出现异常
Can not perform this action after onSaveInstanceState
分析原因:记一个DialogFragment.show()的Bug,fragment中使用commitAllowingStateLoss替代commit
5.clipToPadding 表示空间的绘制范围是否在padding之内,默认值是true。在viewpager中设置为false可将多个fragment显示在同一视图。
clipChildren 表示是否限制其子View在其范围内。设置false子View的绘制范围可超出父view。
6.android:overScrollMode="never"
可将viewpager取消切换时的渐进效果。
7.矢量图的生成和引入
8.java常用集合类的原理,android线程分析,java内存管理