- 博客(7)
- 收藏
- 关注
原创 Android音视频学习——Camera2官方demo解析(1)
本篇内容主要解决屏幕旋转和Surface旋转之间的关系,使相机的预览画面与屏幕旋转方向一致。在官方demo的开始,定义了一个SparseIntArray,用来保存屏幕旋转的key和value:private static final SparseIntArray ORIENTATIONS = new SparseIntArray();接着是static语句块,用来初始化这个SparseIntArr
2018-02-28 20:23:17 6282
原创 scrollTo和getScrollY表象和源码结合效果更佳!
getScrollY()是自定义View中的常客,但是由于android特有的坐标系以及屏幕与View之间的复杂关系,往往是分析和看源码的难点,这里结合示意图帮助理解getScrollY,一劳永逸。名词理解首先我们需要了解清楚几个概念,就是我们经常看到的向上/下滚动以及上/下滑这四个名词:!!!记住滚动和滑动在android中的含义是不同的!!!上滑/下滑是我们手指相对于整个屏幕而言的,手指从屏幕
2018-02-13 21:48:03 358
原创 应用内存泄露起因与解决方案分析
java gc机制java内存管理与c/c++不同,java使用garbage collection机制,由虚拟机管理内存。在大部分虚拟机(包括android的ART)中,都采用了“可达性”分析算法来进行内存管理。原理是:选取某几个root节点,从root开始层层遍历,如果找不到对该对象的引用链,则该对象被标记为不可达,等待gc回收。内存泄漏的起因如果引用链中长期存在着对该对象的引用(强引用),则该
2018-02-11 17:01:15 328
原创 《java并发编程实践》第5章要点总结(阻塞队列、闭锁、关卡)
读完本文你将对以下几个同步异步的知识点有所了解:显式隐式迭代器和ConcurrentMidificationException并发容器ConcurrentHashMap和CopyOnWriteArrayList阻塞队列和生产者-消费者模式闭锁和关卡
2018-02-09 16:07:26 279
原创 《java并发编程实践》1-3章要点总结
名词解析1. 上下文切换调度程序临时挂起当前运行的线程时,另一个线程开始运行。也就是线程切换,在应用程序中很常见,带来的系统开销巨大。2. 原子性程序可以作为单独的、不可分割的一次操作执行,称为原子操作,具有原子性,例如赋值操作:a = 3,而看似紧凑的操作有的并不是原子操作:例如 a++,可看成“读-改-写”三步,非原子操作可能遗失更新。java.util.concurr
2018-02-06 21:22:22 133
原创 SQLite和RecyclerView使用过程中两处报错记录
Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.应用安装以后数据库不会再创建,helper的oncreate方法不会调用,在插入字段时,报上述错误,需要删除应用,重新启动安装。java.lang.No
2018-02-03 17:55:58 342
原创 android studio中运行main方法报错问题解决方法
as3.0中,在项目中新建一个类,无论点击run XXX.main()还是run XXX.main() with coverage,都会报如下的错:Error:Gradle: failed to create directory 'E:\AndriodStudioProjects\PhotoGallery\app\build\generated\source\r\debug\com\wyx\a
2018-02-03 11:25:30 4054 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人