5 天花板之恋

尚未进行身份认证

在coding的路上

等级
TA的排名 4w+

StorageManager获取U盘挂载状态

StorageManager是AndroidSDK中管理存储设备的一个类。其中的存储设备分内部存储和外部存储,外部存储可以有SDCard、U盘等其他挂载的外设。StorageVolume代表的是一个设备信息的数据结构,里面包含了名称、路径、挂载状态等等信息。以前获取设备列表的方法大多是通过反射获getVolumeList()方法获取到StorageVolume[]数组,但是现在发现完全没有必...

2019-09-06 16:27:36

多媒体MediaScanner机制探究学习

概述:MediaScanner和媒体文件扫描有关,例如music的歌曲专辑名、播放时长,图片的大小、MINE类型等,都是它扫描得到的。我们应用程序通过MediaStore接口查询媒体数据库得到的多媒体数据也和MediaScanner有关,因为数据库里面的数据都是MediaScanner添加的。总体关系如下图:MediaScanner大体分为四个部分MediaScannerReceiver:...

2019-09-04 18:03:00

Android中设置线程优先级方法

有时候,我们会创建一个线程去操作一个比较耗时的任务,同时它的优先级不需要很高,不能应用这个耗时的工作线程,影响了整机的性能,那么我们可以通过Process.setThreadPriority(inti)这个函数,去设定线程的优先级。数值越大,那么优先级就越低。SDK中定义了很多的优先级数值等级,如下:THREAD_PRIORITY_DEFAULT,默认的线程优先级,值为0。THREAD_...

2019-09-04 10:15:10

Vold和MountService关系探究

1、VoldVold是VolumeDaemon的缩写,它是Android平台中外部存储系统的管控中心,包括SD卡的拔插事件检测、SD卡挂载、卸载、格式化等等。2、MountServiceMountService运行在system_server进程,它会和Vold交互,一方面它接受Vold的消息并处理,比如应用程序常监听的ACTION_MEDIA_MOUNTED/ACTION_MEDIA_...

2019-09-03 20:26:27

Android Studio 开发填坑小结

1、发现在gradle文件中有引入V4和V7包,但是在代码里面就是导入不进来support包里面的相关类。不管怎么clean、怎么rebuild都不行。答案原来是,当AndroidStudio版本在3.2以及之后的版本中,gradle会自动导入一个叫AndroidX这样一个包,这个包是谷歌在高版本中才有的,它是整合了V4和V7包。也就是说有了这个AndroidX,你就导入不进来V4和V7包了。...

2019-07-29 22:01:32

Android Studio加载library

1、project新建一个module2、选择ImportGradleProject3、选择你要导入的库4、导入之后,查看这里会有一个引用的描述5、做完以上步骤之后,我发现我还是不能使用library里面的类,提示找不到。后面我在主项目的build.gradle文件中添加了引用,然后再sync同步一下就OK了。...

2019-06-28 17:37:16

RecycleView底部刷新闪屏问题解决

使用NestedScrollView,当拉到底部的时候去请求服务器加载更多mNestedScrollView.setOnScrollChangeListener(newNestedScrollView.OnScrollChangeListener(){@OverridepublicvoidonScrollChange(NestedScr...

2019-06-26 11:34:51

JNI调用Java方法总结

1、首先了解一下native方法的方法签名,方法签名主要是描述了方法的参数和返回值,为了防止方法的重载而导致的调用混乱。

2019-06-07 00:57:17

Android Studio NDK 开发

1、SDKTools下载DNK,如果已经有下载有DNK的开发工具的话,可以直接导入当然,AS后面推荐使用CMake方式开发NDK,这个后面再说,这里还是先讲ndk+javah+Android.mk的方式方式。2、配置DNK的环境变量,这样才能在命令工具中方便使用DNK的命令,下面是我配置的环境变量\SDK\platform-tools;D:\GitDir\Git\cmd;D:\andr...

2019-06-06 23:16:56

window弹窗接收view以外的触摸事件

项目上遇到这样一个需求,按键增减音量的时候会有一个window弹窗出来,在点击弹窗以外的地方需要立刻让其消失。如果这个弹窗是dialog,那么可以设置方法setCanceledOnTouchOutside(true)来实现这个效果;但是如果是一个windowManager操作添加的window弹窗,这个时候就需要我们自己去监听外部的点击事件,然后把自己隐藏掉。1、弹窗的属性flag设置Wind...

2019-06-05 18:27:16

把一串十六进制的MAC地址放进一个字节数组里

比如有一串蓝牙的MAC地址字符串“00:15:83:7D:6D:FC”,把它们放进字节数组里面是没有问题的。因为每一个数据,刚好能够放在一个字节里面,下面是提取的过程:Stringmac="00:15:83:7D:6D:FC";String[]macstrings=mac.split(":");byte[]bts=newbyte[6];for(inti=0;i...

2019-05-23 19:25:54

光大DVR模块串口通信协议开发总结

之前我写了如何使用串口发送和接收数据,但这只是最原始的一步,下面分享一下我开发基于广大DVR串口通信协议的过程。概述:1、每一帧的协议数据必须要是完整的才能用,主要是通过冗余校验位来检测。校验位放在每一帧数据的最后面,它的值是除了它自己之外前面所有数据的总和。每一帧数据的协议头始终是aa开头。2、广大DVR串口协议要求主机系统每秒都要发送同步状态的请求给到DVR模块,于是在应用必须启动一个定...

2019-05-21 20:48:16

Android串口开发总结

在嵌入式的开发中,经常会用到串口通信,用来和不同的硬件模块通信。比如最近我在开发行车记录仪,就用到了串口通信,串口就像一个桥梁,连接起了核心板(imax6)和行车记录仪(DVR)之前的数据通路。使用串口,分为以下几个步骤:1、导入Google的开源串口项目,此项目通过jni的方式提供了打开和操作串口的方法,同时也提供了java层代码的示范使用。代码地址:https://github.com/j...

2019-05-13 20:20:16

基于IjkMediaPlayer的播放器

作为一个练手项目,基于IjkMediaPlayer的仿照腾讯视频风格的播放器,支持全屏缩放,对其中核心的代码做记录。播放器总体架构如图所示:player是继承frameLayout,自己内部拥有IjkMediaPlayer的实例,以及做渲染显示用的TextureView,同时player只有一个mContainer子控件,mContainer同样也是一个frameLayout容器,容纳Tex...

2019-03-19 17:57:07

解决TextView中文英文数字混排导致的自动换行问题

Android原生的TextView,在某些特定的时候(我是在ListView的适配器里面),遇到中文和数字或者中文和英文一起混排的时候,会出现自动换行的现象。本来第一行还有很多空间可以显示,却莫名其妙地换行显示。经过网上的资料查找,需要继承TextView并重写OnDraw方法,具体代码如下:protectedvoidonDraw(Canvascanvas){ TextPaint...

2019-03-19 15:14:54

车机屏幕适配方案总结

基本概念:1、px像素单位,构成图片的最小单位,1px相当于屏幕的一个物理像素点。2、分辨率屏幕的宽度上的像素点*高度上的像素点,例如1280*720。可以通过命名vmsize获取分辨率信息wmsizePhysicalsize:1280x4803、屏幕尺寸指的是屏幕对角线的长度,单位是英寸。1英寸=2.54厘米。4、dpi屏幕像素密度,指的是每英寸上面的像...

2019-03-11 15:11:09

OKHttp+Gson解析网络json数据

1、定义OKHttp的客户端,并设置一些常用属性OkHttpClientmOKHttpClient;OkHttpClient.Builderbuilder=newOkHttpClient.Builder();builder.connectTimeout(15,TimeUnit.SECONDS);//设置连接超时时间Filesdcachedi...

2019-03-08 12:39:18

车载系统Android WIFI开发小结

1、WifiManager操作wifi的管理类,通过系统服务获取:wifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);wifiManager.setWifiEnabled(true/false);//打开或者关闭wifiwifiManager.startScan();//开始扫描...

2019-03-04 17:22:16

车机中行车记录仪(DVR)MVP模式开发总结

现在的车机系统中,DVR已经是不可或缺的功能了,下面是本人在开发DVR应用中总结的一些经验。

2018-12-12 17:57:07

讯飞消噪处理的知识点总结

音频流是通过MIC录入的,录入的音频流会经过讯飞模块消除噪音之后,再给到讯飞识别模块,或者给到蓝牙电话等其他应用使用。首先这里有两种输入模式:外挂模式和顶灯模式。如果是单个麦克风,由于声音能量比较小,所以我们的硬件驱动会对输入增益后,再给到讯飞的降噪模块,此为外挂模式;如果是麦克风组,比如使用的是两个麦克风,模组的输入信号较强,则需要使用顶灯模式处理后再给到讯飞降噪模块。讯飞降噪模...

2018-12-11 19:43:28

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。