死锁问题探究(Android方向)

什么是死锁 说到死锁,大家可能都不陌生,每次遇到死锁,总会让计算机产生比较严重的后果,比如资源耗尽,界面无响应等。 死锁的精确定义: 集合中的每一个进程(或线程)都在等待只能由本集合中的其他进程(或线程)才能引发的事件,那么该组进程是死锁的。 对于这个定义大家可能有点迷惑,换一种通俗的说法就是:

Continue Reading →

不安分的android开发者(小程序初尝试,前后台都自己做)

前言 作为一个稍微有点想法的程序员来说,拥有一个自己开发,自己运营,完全属于自己的应用,应该是很多人的梦想。刚毕业那会,自己的工作是做游戏,于是也和朋友业余时间开发一些小游戏玩玩,可是终究不成气候,而且自己也只能做做单机小游戏。于是慢慢的也就失去了兴趣,尤其是自己从游戏行业转到app开发,对游戏也就没那么大兴趣了。再到后来自己买了一个windowsphone手机,当时判断windowsphone会崛起(现在看来,当时自己的眼光还是歪了,哈哈),于是呼买了一个开发者账号,自己学习c#开发,做了一个wp平台的世界杯应用。当前还写了一篇文章纪念了一下,文章链接,不过当时用的是别人的接口。一晃四年过去了,马上就是俄罗斯世界杯了,难道又要写一个世界杯应用,哈哈,那肯定不是了,同一个东西做两遍也没意思,何况世界杯也就几天时间,应用没有持久存活能力。 前期准备

Continue Reading →

volley源码学习

之前一直对于源码学习抱着一种又爱又恨的心情。爱的是因为知道源码有一些特别好的设计思路,可以让自己借鉴,而且对于设计模式来说是最好的实战场。那为啥还会恨呢,曾经很多次下载了很多开源库的源码,可是看的看的就感觉云里雾里,不知所踪。心中没有一个总体的框架,总感觉看的细如牛毛,一叶障目。今天又找时间翻出最简单的volley,准备从头再看一遍。没想到收获很多,写下这篇文章,用来记录。

Continue Reading →

android句柄泄漏

前言 在android开发过程中,跑一些单元测试,很容易暴露出文件句柄泄漏的问题。前段时间就有这么一个bug,最后确定是文件句柄泄漏的问题。下面我记录下当时一步步如何查找定位句柄泄漏。 正文 首先让我们看一眼抛错的log日志。

Continue Reading →

AIDL 跨进程通信总结

最近几天系统的看了下android跨进程通信的一些方式,主要的一个部分就是通过AIDL,利用binder进行跨进程通信。 跨进程通信的方式 共享文件(包括sharedpreferences) 共享内存 socket AIDL(Messager,ContentProvider,普通aidl) AIDL介绍 首先aidl并不是一个通信方式,aidl只是一个android接口规范语言,用来生成最后实际需要的java类。 下面是主要注意点:

Continue Reading →

视频编辑总结

最近公司在做视频编辑相关的功能,现在将做项目过程中遇到的问题总结如下: 1.视频格式概念       平常所见的视频格式比如MP4,AVI,MKV,MOV,FLV等是视频的包装格式。是将音频部分与视频播放包转起来。也就是通常英文里面说的container。而每一种视频包装格式,里面视频与音频的编码又是多种多样的。 2.视频轨道     我们通常所说的视频压缩就是在视频轨道里面做的,比如H263,H264,H265,VP8,VP9,这些都是视频压缩编码格式,目的是将一帧帧原始视频帧数据,通过一定的算法(包括帧内压缩,帧间压缩),将原始很大的数据量,压缩到很小。压缩这里涉及到I,B,P帧的概念,后面有需要了解.

Continue Reading →

android studio 调试技巧(简直太好用)

说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原来可以玩的这么牛。下面我分别一一做介绍。 条件断点(Conditional Breakpoints) 这个调试模式是我最喜欢的,简直不能再方便了,以前遇到在循环里面打断点,需要看某个条件下的值,我只能一遍遍点击,直到满足条件。 那么这个条件断点改怎么用呢,在你的断点上点击右键,就会弹出一个选择对话框,在里面的condition框里面填写上你所需要中断的条件即可,这有程序就会在满足你的条件下才会断点停下。下面放张动态图,一看就明白,之后的几个技巧也都会附一张动态图来形象的展示。

Continue Reading →