摘要:
有几种方法可以新开一个线程:继承一个thread,实现一个runable接口,实现一个callable接口;需要注意线程导致的内存泄漏,不要随意新建线程池,尽量复用线程池;Android线程没有上限,但只享有一个进程的资源,所以合适的线程数量很重要,线程池中线程的数量一般CPU核数或者I/O效能有关 阅读全文
posted @ 2022-04-08 10:54
小小卷
阅读(205)
评论(0)
推荐(0)
摘要:
内存溢出OOM,当分配的内存不够加载相关资源时容易导致内存溢出,内存泄漏也是比较容易导致内存溢出的。开发中比较容易出现的地方: 1、加载大图、微博长图。在某些低端机容易OOM 2、bitmap大对象使用完没有关闭 3、文件流使用完没有关闭、广播和服务没有取消注册等 4、过多的耗时操作没有关闭,访问网 阅读全文
posted @ 2022-04-08 10:52
小小卷
阅读(173)
评论(0)
推荐(0)
摘要:
ANR原因: 1、主线程阻塞或者进行数据读取 2、CPU满负荷或者I/O阻塞 3、内存不足 4、各大组件生命周期ANR,比如广播onReceive(),输入5秒,前台服务20秒,后台服务60秒 解决办法: 根据log日志查找anr类型,复现; 分析trace.txt 的ANR日志; 借助DDMS进行 阅读全文
posted @ 2022-04-08 10:50
小小卷
阅读(121)
评论(0)
推荐(0)
摘要:
LinearLayout用在横向或者纵向控件比较多的时候,效率较高; RelativeLayout 执行两次绘制onMesure(),用在子布局有很多控件且布局不规则的时候; FrameLayout 使用在需要有视图效果重叠控件的地方比较方便; 绘制效率:FrameLayout >LinearLay 阅读全文
posted @ 2022-04-08 10:49
小小卷
阅读(339)
评论(0)
推荐(0)
摘要:
AIDL是一种接口语言,Binder的数据传输过程就是通过AIDL来实现的: 1、服务端中的Service给与其绑定的客户端提供Binder对象 2、客户端通过AIDL接口中的asInterface()将这个Binder对象转换为代理Proxy并通过它发起RPC请求 3、客户端挂起当前线程,并将数据 阅读全文
posted @ 2022-04-08 10:48
小小卷
阅读(186)
评论(0)
推荐(0)
摘要:
Serializable的设计初衷是为了序列化对象到本地文件、数据库、网络流、RMI以便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。而Android的Parcelable的设计初衷是由于Serializable效率过低,消耗大,而android中数据传递主要是在内存环境中(内存属于an 阅读全文
posted @ 2022-04-08 10:43
小小卷
阅读(146)
评论(0)
推荐(0)
摘要:
1、那些内存需要回收: 可以采用引用计数法,有引用就+1,为0的就是没有引用的直接回收,但无法回收两个对象相互引用的情况;这种情况需要使用可达性分析法,当一个对象到GC roots无引用,证明这个对象可以被回收,可以当作gc roots结点的对象有:虚拟机栈、方法区静态属性、方法区静态常量、本地方法 阅读全文
posted @ 2022-04-08 10:42
小小卷
阅读(98)
评论(0)
推荐(0)
摘要:
1、软引用是用来描述一些有用但并不是必需的对象,在Java中用java.lang.ref.SoftReference类来表示。对于软引用关联着的对象,只有在内存不足的时候JVM才会回收该对象。因此,这一点可以很好地用来解决OOM的问题,并且这个特性很适合用来实现缓存:比如网页缓存、图片缓存等。 2、 阅读全文
posted @ 2022-04-08 10:40
小小卷
阅读(1004)
评论(0)
推荐(0)
摘要:
android:layout_gravity:指定控件在布局中的对齐方式 android:gravity:指定文字在控件中的对齐方式 阅读全文
posted @ 2022-04-08 10:37
小小卷
阅读(19)
评论(0)
推荐(0)
摘要:
1、增强版List,不仅具有List的效果,还弥补了许多List的不足 2、RecyclerView属于是新增控件,使用之前必须先在build.gradle中添加相应的依赖库 3、RecyclerView有内置的ViewHolder,使用时直接继承它,提供了onCreateViewHolder与on 阅读全文
posted @ 2022-04-08 10:35
小小卷
阅读(365)
评论(0)
推荐(0)
浙公网安备 33010602011771号