5 天花板之恋

尚未进行身份认证

在coding的路上

等级
博文 95
排名 4w+

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

车载定制化系统设置中实现平滑的语言切换

在每个车载系统中,都会有自己独特的UI风格。比如系统设置这个功能,为了统一风格,我们不能直接去调用Android原生的设置应用,而是应该重新做一个风格统一的符合需求的系统设置应用。我们要说的语言切换这个功能,就是其中一个设置项。如果简单地实现语言切换,应该是比较简单的,就是利用反射重新设置一下Locale就好了,这个时候Activity会异常销毁,并会重新加载刷新当前语言资源。但是客户的需求可...

2018-11-23 18:55:43

车机系统开发中的经验总结

1、ACCOFF代表的是车辆熄火,ACCON代表的是车辆打火;LOCKON代表的是打开车门,LOCKOFF代表的是关闭车门;B+代表的是车上的电源,连接B+就是把车前面的电瓶的电源连上,掉B+就是把电瓶的电源拔了。2、主机的运行状态有多种,需要注意区分。息屏状态:MCU只是单纯地把屏熄掉,这个时候ARM系统还在正常运行,MCU也在正常运行;休眠状态:此时ARM已经停止运行,但是MCU...

2018-11-19 18:24:03

MVP模式在车载系统中车身设置的运用

车载系统的中的关于车身相关的设置过程,是一个异步的过程,就像网络请求一样。只是和网络用的http协议不同的是,车载主机和车身各个控制器的通信,是通过CAN协议实现的。CAN线就像是一个神经网络,它允许各个控制器也包括主机去获取自己感兴趣的报文,而我们的主机更像是一个整辆车的大脑一样。我们以辅助驾驶中的车道偏离预警的报警声音设置为例,这是一个开关按键。一个完整的车身设置如下:1、首先点击了设置按...

2018-11-14 20:29:30

自定义Toast

我们可以根据自己UI的需求,加载布局xml文件来实现自定义Toast。同时,也可以根据需求,缩短Toast的显示时间。publicclassMyToast{ TextViewwtext=null; ToastmToast=null; publicMyToast(Contextct){ LayoutInflaterinflater=(LayoutInfl...

2018-11-14 19:10:58

讯飞汽车语音助理在其他外部应用唤醒

我们可以通过讯飞提供的外部唤醒适配功能,可以在不用唤醒语音关键词的情况下,监听我们所发出的语音命令。比如,我们用TTS播报一段消息,“规划前往北京鸟巢,是否前往?”,这个时候语音其实是还没有通过唤醒词唤醒的,我们就需要通过外部唤醒适配功能,让语音去识别到我们的命令,是前往还是取消。实现此功能有以下几步:添加custommvw.jar,并buildpath把jar包导入到library里;...

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