Android开发简要编码规范

请使用 UTF-8 格式来查看代码,避免出现中文乱码。 至于注释应该使用中文还是英文,请自己行决定,根据公司或项目的要求而定,推荐使用英文。 1. 整理代码 1.1. Java 代码中不允许出现警告,无法消除的警告要用 @SuppressWarnings。 1.2. 去掉无用的包、方法、变量等,减少僵尸代码。 1.3. 使用 Lint 工具来查看并消除警告和错误。 1.4. 使用 Ctrl Shi

声音设备返回的input buffer总是320个字节

首先简单介绍下,G711的压缩比,其实比较低2:1的压缩,一般采样的数据都是一次性的读取320字节,至于为什么是320呢? 原因是这样的: 语音帧的最小单位是20ms,也就是在8KHZ 16bit的基础上,一帧语音可以播放20ms,这20ms对应的长度就是320字节,按帧的概念来说,就是最少必须编码一帧的数据,也就是达到最小的语音播放单位. 320个字节是这么算出来的: 8Khz=8000个采样/

对Thread.interrupt()方法很详细的介绍

在JDK1.0中,可以用stop方法来终止,但是现在这种方法已经被禁用了,改用interrupt方法。 Thread.interrupt()方法不会中断一个正在运行的线程。 它的作用是,在线程受到阻塞时抛出一个中断信号,这样线程就得以退出阻塞的状态。更确切的说,如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞,那么,它将接收到一个中断异常(Int

JNI静态方法和非静态方法

在java中声明的JNI的静态方法(native static)和非静态方法,对于底层的C/C++代码来说是有区别的。 JNI函数的参数也由三部分组成: 首先是JNIEnv*,是一个指向JNI运行环境的指针; 第二个参数随本地方法是静态还是非静态而有所不同一一非静态本地方法的第二个参数是对对象的引用,而静态本地方法的第二个参数是对其Java类的引用; 其余的参数对应通常Java方法的参数,参数类型

Java关键字synchronized详解

      synchronized 关键字, 代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程A,没有的话,直接运行 它包括两种用法:synchronized 方法和 synchronized 块。 1. synchronized 方法: 通过在方法

java中float/double浮点数的计算失去精度问题

今天在数值计算时碰到一个问题.程序如下: double a = (3.3-2.4)/0.1; System.out.println(a); 你可能认为结果很简单,不就是9嘛,是事实上,结果为:8.999999998,为什么呢?我翻阅了一些资料,终于找出了原因. 为什么浮点数会丢失精度? 十进制数的二进制表示可能不够精确 浮点数或是双精度浮点数无法精确表示的情况并不少见。浮点数值没办法用十进制来精确