- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 Android SQLiteOpenHelper onUpgrade使用注意事项
Android SQLiteOpenHelper onUpgrade
2015-09-12 23:01:05 824
原创 leakcanary作者发现的一个Dialog的各种listener容易引发的内存泄露问题
地址:https://corner.squareup.com/2015/08/a-small-leak.html笔者也发现Dialog在设置OnCancelListener中,也会发生此问题而引发activity的内存泄露。所以除了以上链接提供的方法外,用内部静态类来实现listener并用使用当前activity的弱引用方法,也是一个防止内存泄露的好办法。
2015-09-12 20:46:03 878
原创 Multidex实战——指定需要的类到dex包中
Android开发中经常会遇到著名的“65536”问题,这个问题是在大型项目中,比如引用了众多第三方库之后,几乎不可避免的问题。现如今最常用的解决方案是multidex方案,不再独立生成单一的classes.dex包,而生成多个dex包。1. Ant方式:Ant方式Coolper兄已经详解的非常详细了,并分析了maindexclasses脚本原理。2. Gradle方式:G
2015-09-12 20:24:53 7227 1
转载 编写高校的Android代码
介绍对于如何判断一个系统的不合理,这里有两个基本的原则:不要做不必要做的事情。尽可能的节省内存的使用。下面的所有方法都是基于这两项的。有人会认为本页花了大量的篇幅去讲如何进行“初步优化”( premature optimization)。虽然有时候微观优化对开发高效的数据结构和算法很困难,但是在嵌入式手持设备上面你毫无选择。例如,如果把桌面电脑的虚拟机 移植到你的A
2014-04-28 21:16:03 473
转载 Java 内部类与静态类
Java 内部类与静态类我们一般不常用,开源框架经常用,有兴趣可以看看这篇文章,以下是我的一些总结,先了解一下,留着备用。内部类1:内部类拥有普通类的所有特性,也拥有类成员变量的特性2:内部类可以访问其外部类的成员变量,属性,方法,其它内部类静态类1:只有内部类才能声明为static,也可以说是静态内部类2:只有静态内部类才能拥有静态成员,普
2014-04-27 13:00:54 476
转载 最近看到的比较好的ViewHolder写法
public class ViewHolder { @SuppressWarnings("unchecked") public static T get(View view, int id) { SparseArray viewHolder = (SparseArray)view.getTag(); if(viewHolder == null) {
2014-04-26 10:01:45 508
原创 为你的Android应用申请更多内存
在3.0之后,manifest支持largeheap选项,设置为true后可以为应用申请分配更多内存,在你注意回收了所有bitmap,并确定自己没有其他的内存泄露情况存在时,这个选项往往可以救你一命。鄙人就在三星S4和note3上使用universalimageloader显示大量图片时一直遇到oom的问题,设置此选项之后解决问题。
2014-02-27 19:33:07 1139
原创 像微信、QQ一样,按返回键只是切activity到后台
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);或者PackageManager pm = getP
2014-02-25 21:33:50 640
原创 判断Intent服务是否存在
Android为我们提供了非常多的Intent,也有第三方提供了很多Intent供我们使用,但由于版本、用户是否安装等原因,我们不清楚该Intent是否在本机上能否使用,为此,就要进行判断。比如在某些平板上没有摄像头无法处理拍照请求,比如某些rom中没有播放器app来处理视频播放,那么在这些可能出现无法处理的地方加上判断防止crash:public static boolean isInt
2014-02-25 20:11:37 777
原创 用SparseArray代替key值为int的HashMap
SparseArray采用对key二分查找的方法get,按key值从大到小存储。比HashMap的效率高。除了Hashmap中也有的get,put之外,也提供很方便的按key的index值来查找存储。
2014-02-24 20:52:59 721
原创 Android重学之查漏补缺——Context引起的内存泄露
Android中很多资源文件都需要Context来加载。如果这些资源没有被释放,那么Context的引用不为null,造成对应的Activity即使调用了finish()但其占有的内存依然不能被释放。第一种情况比如: Soundmanager.getInstance(this).play(SoundManager.MAIN_BG_SOUND);这种单例模式的全局的静态方法,就不
2014-02-24 20:33:37 883
转载 Annotation注解处理器
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Anno
2014-01-11 23:18:36 576
转载 自定义Annotation
元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@Retention, 3.@Documented, 4.@Inherited@Target: @Ta
2014-01-11 22:59:12 545
无线自组网络管理软件
2009-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人