
原创
文章平均质量分 60
Android-大雄
这个作者很懒,什么都没留下…
展开
-
Android通信框架与Modem状态未同步——实际项目经验分享
背景知识: Android为了屏蔽各Modem厂商之间的差异,并未直接使用AT指令,而是定义了通用接口——RIL命令来控制Modem(当然,RIL命令与AT指令之间存在某种不固定的映射关系,因厂商而异)。各Modem厂商则负责提供对应于RIL命令的Vender RIL。RIL是Modem的HAL(硬件抽象),是android系统与Modem之间的通信桥梁,为AP提供了控制Modem的无线原创 2017-05-05 17:53:07 · 3350 阅读 · 0 评论 -
PhoneStateListener回调接口和Connectivity广播监听实际比较
平台:展讯8761;android版本:7.0PhoneStateListener设置监听的方法(当然这里传subid的方法是系统隐藏的):public void setPhoneListen(boolean isOpen) { try { if (mPhoneStateListener == null) { int subid原创 2017-12-26 18:06:02 · 1108 阅读 · 0 评论 -
WiFi和热点开发——tcp连接查看实时日志
本人从事多年的Android智能设备开发,做过手机、MiFi、智能门锁等产品,除了手机之外,其他的产品在后期的维护及版本迭代过程中,经常需要通过分析查看设备的日志来定位问题,比如智能门锁,遇到故障时,经常就抱着一台笔记本,打开设备的usb调试开关后,用usb线连接设备进行问题重现和日志分析。当然,获取日志的方式是多种多样的,也可以通过网络上传。但总免不了需要现场查看,现场查看就有个问题,笔记本并不是原创 2017-12-26 17:23:40 · 2784 阅读 · 0 评论 -
低功耗蓝牙(BLE)开发——如何妥善处理包大小(MTU)限制
最近出于项目需要,花了几天时间,研究了一下低功耗蓝牙(BLE)的开发,为了让有需要的小伙伴们少走弯路,现将我所遇到的问题分享出来。 刚开始,我被低功耗蓝牙(BLE)的基础概念所困扰,想当然的以为低功耗蓝牙仅仅是传统蓝牙的升级版本,只要传统蓝牙能做的,低功耗蓝牙理应可以做到。这从一开始就陷入误区了。此外,也想当然地把低功耗蓝牙外设和中心的概念直接往C/S模式硬套,认为低功耗蓝牙的外设就是client原创 2017-12-26 16:44:19 · 23119 阅读 · 0 评论 -
WiFi和热点开发
WIFI的有关操作,系统提供了完备的API,供第三方app调用; 比如,开启和关闭wifi,获取wifi的状态,获取已保存的配置信息:getConfiguredNetworks(),获取当前连接的网络信息:getConnectionInfo() 等。 搜索网络:startScan() 搜索完成后,会收到WifiManager.SCAN_RESULTS_AVAILABLE_ACTION类型的广播,原创 2017-12-12 18:01:03 · 548 阅读 · 0 评论 -
蓝牙开发经验小结——自动文件传输(OBEX)
场景:控制端——普通手机;被控制端——XX设备(无屏幕、无法用户操作、有系统权限) 网上关于文件传输实现的文章较少,没有发现满足我需求的资料,于是我索性深入到系统源码里头,研究了系统蓝牙(com.android.bluetooth不同的平台包名可能有差异)是如何实现文件收发的,然后再设计出自己的实现方案。原创 2017-12-05 16:32:29 · 6148 阅读 · 0 评论 -
蓝牙开发经验小结——蓝牙通讯
场景:控制端——普通手机;被控制端——XX设备(无屏幕、无法用户操作、有系统权限) 蓝牙通讯过程:蓝牙开启——找到设备——配对——建立蓝牙socket连接——通讯协议;然后,再搭建你的业务逻辑。原创 2017-12-05 15:43:17 · 1270 阅读 · 0 评论 -
蓝牙开发经验小结——自动配对
场景:控制端——普通手机;被控制端——XX设备(无屏幕、无法用户操作、有系统权限)。蓝牙开启后查找设备有两种方式:搜索和指定mac。用搜索功能查找蓝牙设备,涉及“可见性”的概念,蓝牙对外可见(即能被别的蓝牙设备搜索到)最多可设置为300s(即5分钟),而指定mac的方式则没有时间限制,只要蓝牙开启就可以找到设备。原创 2017-12-05 14:56:41 · 4847 阅读 · 0 评论 -
音频开发——录音与播放、音量调节
Android提供了两个API用于实现录音功能: android.media.AudioRecord和android.media.MediaRecorder,对比如下: API 应用场景 优点 缺点 AudioRecord 边录边播实时处理 可以用代码实现各种音频的封装 输出PCM语音数据,若保存成音频文件,不能被播放器识别的,必须开发者编写代码实现数据编码以及压缩。原创 2017-12-12 16:20:29 · 2286 阅读 · 0 评论 -
功耗问题研究——定时唤醒机制实际效果
实验设备android版本:7.0android开发的小伙伴们使用频度最高的Handler和Message,在系统进入深度休眠之后,是无法正确执行的,因此有些时候小伙伴们可能会疑惑为什么我明明由Handler发出了一个定时任务(Message或Runnable),但为什么没有执行呢?但是过度的担心休眠问题,而全程持有wacklock,也是没有必要的。因为实际情况下,系统有很多机会被唤醒,比如来电、短原创 2017-12-12 14:50:30 · 945 阅读 · 0 评论 -
功耗问题研究
简单列举如下研究及优化功耗的方法: 1. 通过稳压电源给设备供电,观测瞬时电流,输出电流变化曲线;设备关闭屏幕、键盘灯、wifi和热点、蓝牙等所有外设,进入深度休眠以后(CPU停止供电后),电流可低至5-7mA;开启热点而没有终端接入,CPU休眠后电流可低至60-70mA;若有接入但未使用网络,通常不会休眠,电流维持200mA-300mA范围;若有连接且持续使用网络,则电流达到300mA-400原创 2017-12-12 13:11:10 · 505 阅读 · 0 评论 -
视频与图像开发——摄像头访问
Android从5.0开始(API 21)推出了全新的摄像头访问接口:Camera2,相较与Camera1,使用复杂度提高了,但是同时相应的拍照和录像性能也更好了。理论上说,从5.0往后,Camera1仍然能用,但说实话既然推出了新的API,肯定会有适配性方面的问题。 本人的亲身经历是——开始时做MTK 4.4平台的智能设备开发,产品的视频通话(视频通话用过linphone和webrtc的框架,由原创 2017-12-27 17:23:24 · 1875 阅读 · 0 评论