Android 细节积累 遇到的坑等

四种获取宽高的方法:


1.Activity/View#onWindowFocusChanged(boolean hasFocus){
		super(...);
		if(hashFocus){
			int width=view.getMeasuredWidth();
		}
	}
2.view.post(runnable);    在runnable 中获取 
3.ViewTreeObserver
4.view.measure(spec,spec);  需要根据父容器传递给自己的 mode区分计算。

ThreadPoolExecutor


1.  先满足核心线程数量
 * 2.  达到核心线程数量后,放置任务队列中
 * 3.  任务队列满了以后 ,满足最大线程数,如果没有达到,创建非核心线程数量。
 * 4.  达到最大线程数,拒绝执行此任务。

//自定义View的时候dp转换px

a.getDimensionPixelSize(attr,(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10f,
                            getResources().getDisplayMetrics()));

ProGuard作用

ProGuard提供4个功能, 压缩(shrinker), 优化(optimizer), 混淆(obfuscator)和预校验(preverifier), 但是在Android中默认会关闭优化和预校验功能.


6大基本设计模式

1.单一职责:不做超出自己职责范围内的事情。
2.开闭原则:对扩展式开放的,对修改是关闭的。强调扩展性,通过积尘等
3.里氏替换:所有引用基类的地方都可以使用其子类的对象,抽象。 父类出现的地方,子类都可以替换出现
4.依赖倒置:调用接口,由具体的子类实现。
5.接口隔离:类之间的依赖关系建立在最小接口上。  接口之间互不关联,实现最小接口原则;
6.迪米特:只和直接的朋友交互。


图片压缩

Android图片压缩结合多种压缩方式,常用的有尺寸压缩、质量压缩以及通过JNI调用libjpeg库来进行压缩,三种方式结合使用实现指定图片内存大小,清晰度达到最优。
Advertisements
Android 细节积累 遇到的坑等

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s