0%

2. 模块介绍

2.1. 模块功能介绍

2.1.1. audiocodec 功能

A64 audiocodec 硬件上的实现是通过 I2S 接口与 cpu 进行数据流传输,cpu 通过 apb 总线对audiocodec 进行寄存器配置,软件上采用 alsa-asoc 架构实现,具有以下功能。
(1) 支持多种采样率格式(8khz, 11.025 KHz, 12 KHz, 16 KHz, 22.05 KHz, 24 KHz, 32 KHz, 44.1KHz , 48 KHz, 96KHz, 192KHz);
(2)支持 mono 和 stereo 模式;
(3)支持同时 playback 和 record(全双工模式);
(4)支持 3、4 段耳机插拔检测,hook 键检测,耳机音量加减键定制。

2.1.2. Daudio 功能

(1)支持多种采样率格式(8khz, 11.025 khz, 12 khz, 16 khz, 22.05 khz, 24 khz, 32 khz, 44.1khz , 48 khz, 96khz, 192khz);
(2)支持 mono 和 stereo 模式;
(3)支持同时 playback 和 record(全双工模式);
(4)支持 i2s/pcm

阅读全文 »

迟来的更新。从4月份以来项目中断续在对接好几个共享产品,关于蓝牙BLE设备,通过蓝牙设备之间通信进行使用产品。
开发中也遇到不少问题哈,后面抽时间续篇。写得不好,请各位大神多多指教。

此篇主要介绍一些API操作及一些返回数据结构, 项目已上线。后面抽时间上demo

关于字节

字节(Byte):计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串。

其中下发指令或处理数据时都可以应用到

  • 1B(byte,字节)= 8 bit(比特), 相当于一个字符
  • 一个字节能表示的最大的整数就是255
  • 例如: 数据为5d000001be5d理解为6个字节(6B)
阅读全文 »

上篇主要介绍在开发过程中应用到相关API操作。接下来介绍个人在项目开发中应用蓝牙BLE一些事情。

由于时间比较仓促, 有些注释没那么详细。请理解~写的不好欢迎各位大神指。

项目介绍

由于公司近阶段开发的共享产品比较多,有共享充电宝、陪护床等,这里就不一一介绍哈。大部分产品通过蓝牙通讯的。

快捷方便通过扫设备二维码进入小程序使用设备

  • 这里拿最近开发一个产品售卖机,生活中比较常见的一个,例如: 储物柜、格子柜等。
  • 特点: 一个售卖机中有n个小格子(根据产品分类)
    阅读全文 »

关于字节理解

字节(Byte):计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串。

其中下发指令或处理数据时都可以应用到

  • 1B(byte,字节)= 8 bit(比特), 相当于一个字符
  • 一个字节能表示的最大的整数就是255
  • 例如: 数据为5d000001be5d理解为6个字节(6B)

ARRAYBUFFER转16进度字符串

1
2
3
4
5
6
7
8
9
10
// ArrayBuffer转16进度字符串示例
function ab2hex(buffer) {
var hexArr = Array.prototype.map.call(
new Uint8Array(buffer),
function(bit) {
return ('00' + bit.toString(16)).slice(-2)
}
)
return hexArr.join('');
}
阅读全文 »

Android开发 动态申请存储权限、短信权限等的方式
软件首次安装在有新版本时,下载新版本出错,查看错误后发现是读写存储权限未授予,到设置中手动给权限后下载就会正常,解决方法就是动态申请存储权限,如下:

阅读全文 »

简介

NTP是从时间协议(Time Protocol)和ICMP时间戳报文(ICMP TimeStamp Message)演变而来,在准确性和健壮性方面进行了特殊的设计,理论上精度可达十亿分之一秒。
NTP协议应用于分布式时间服务器和客户端之间,实现客户端和服务器的时间同步,从而使网络内所有设备的时钟基本保持一致。
NTP协议是基于UDP进行传输的,使用端口号为123。

阅读全文 »

最近在做广告发布终端,基于安卓开发的app,但是在系统或者其他原因会导致异常错误弹窗提示,所以本文旨在去掉这些异常弹窗,增加使用体验

Android7.1屏蔽掉弹出无响应对话框和已停止对话框
代码路径:
/frameworks/base/services/core/java/com/android/server/am/AppErrors.java

handleShowAppErrorUi()handleShowAnrUi() dialog.show()之前 添加包名的判断、过滤或者屏蔽掉弹窗显示即可
以下是实际修改的内容

阅读全文 »

很多初学者听到线程会觉得晦涩难懂,很多资料一堆专有名词也是让人心烦意乱,本着学习加分享的态度,这里做一个简单的实例分享帮助初学者们初识多线程。
首先大概讲述一下多线程和多进程的区别,任务管理器里各种不同的进程就是多进程,或者是你同时运行多个”.exe’程序就可以理解为多进程,多进程是要更多消耗CPU资源的。
多线程是相对于进程里更小的单位,比如3个线程在1个进程里进行不同的操作,他们所拥有的资源就是那个进程里的资源,不会占用更多资源,只是通过线程更合理的分配资源。
好,大概区分清楚两者后我们进入线程模式!

阅读全文 »