
android
文章平均质量分 57
coding码场
毕业十几年都是从事嵌入式系统开发,熟悉Linux、freeRTOS、Android,参与了HDTV、智能手机平板电脑、车载导航、扫地机方面的开发工作,主要负责系统、驱动方面的工作,应用系统也做过一些,做过高工、架构师、带过团队,先后发表过多篇学术论文,已通过软考项目管理师,熟悉IATF16949,CMMI,市工信局项目评审和验收专家。目前在芯片原厂从事嵌入式系统开发。
展开
-
经常会用到的时间戳
时间戳在实际开发中经常用到,比如同步时间,网络传输,RTC时钟都用到。在不同开发语言里有不同的获取方法:1、shell里: date +%s2、java(int) (System.currentTimeMillis() / 1000)3、Linux C/C++ intgettimeofday(struct timeval*restrict tp,void*restrict tzp);4、python import time time...原创 2021-08-22 15:55:32 · 355 阅读 · 0 评论 -
Input子系统上报按键--模板,让开发更简易
按键多是采用GPIO检测的,有用GPIO电平触发的,也有用边沿触发的,这都只是中断的触发方式不一样,为了保证采集的可靠性,可以采用延时处理,比如触发中断了后30ms以后我再读一下这个GPIO的值是不是还是跟预期一样的,如果不一样,可能就要丢弃这次的IRQ处理。在延迟处理线程里面要获取按键的值,按照定义对照,上报到系统上去,通过input_report_key(),前面当然需要一个input设备,采用input_register_device(),如何注册IRQ处理。 整个...原创 2021-07-13 12:01:33 · 436 阅读 · 0 评论 -
Linux字符型设备驱动模板,简化开发工作
写linux驱动,无法也就那么几类,字符型,块设备型,网络设备型,管道流型等,为了便捷开发,平时积累一些模块确实大有裨益!首先可以先把程序框架给跑起来了,如何就是想办法往里面添东西,这样慢慢做加法,总比一股脑的写出来再慢慢调试编译错误做减法来得实际一些。 下面就写一个常见的字符型设备驱动,套用一下模板,事半功倍,效率喜人。#include <linux/init.h>#include <linux/module.h>#include <l...原创 2021-07-10 11:30:10 · 215 阅读 · 0 评论 -
道路运输大型车辆新型行车安全系统设计
道路运输大型车辆新型行车安全系统设计,根据实际项目工作经验总结,2021年6月发表在《电子产品世界》杂志上,也算是电子类知名期刊,从以前的纯读者,到了供稿者,传承jis。原创 2021-06-21 09:43:55 · 154 阅读 · 0 评论 -
创建GIT仓库工程
创建git仓库工程,采用如下方法:创建裸仓库git init --bare voxsc200r.git最好的方式建立裸仓库获取创建的裸仓库git clone /data/voxsc200r.git/增加一个readme文件;git add readme.txt提交commit信息git commit -m "add readme file"修改默认的mast...原创 2020-04-06 19:40:51 · 322 阅读 · 0 评论 -
android FakeWindow的小应用大用途
android FakeWindow的小应用大用途 在windowmanager里面有一个FakeWindow,仔细一看也就是一个透明的应用覆盖到屏幕的最前端,这样有什么好处呢?首先我们还是从应用的需求来看这个问题。在android系统里不管是手机还是平板,状态栏一般都是在的,导航栏在有些设备里面是没有的,因为android需要的那些HOME\BACK\MENU\SERCACH可能已经原创 2014-04-25 16:34:18 · 2374 阅读 · 0 评论 -
android系统cpu资源相关查询
android系统cpu资源相关查询 我们都知道android是基于linux系统内核的,在linux系统中我们查看系统资源消耗情况,一个可以直接通过命令行的top命令来看,里面有cpu具体的使用情况,当然在android系统上也还是保留了的。top还是很有用,那在android应用上怎么表现出来呢? 在【设置】应用中,在开发者选项里面就有一项现成的看cpu使用情况的,具体情原创 2014-09-12 19:43:22 · 2389 阅读 · 1 评论 -
gitweb无法访问android仓库中的某一个git project
gitweb无法访问android仓库中的某一个git project 笔者最近遇到gitweb的一个问题,明明前几天还可以通过gitweb在浏览器上访问的git project,这两天突然从gitweb上消失了,怎么回事呢?大家也有体会,用怪了gitweb,没有它还真不大习惯,虽然说可以在命令行里可以看到这种git log的每一个具体修改的代码,这哪有浏览器上操作来得直接啊!原创 2014-09-27 09:45:04 · 2327 阅读 · 0 评论 -
android4.4系统LoadAverageService服务分析
android4.4系统LoadAverageService服务分析 在前一段时间写的《android系统cpu资源相关查询》感觉还比较实用,上次没有对LoadAverageService做深入一点的分析,今天我们接着来看看。首先看看大智慧低调的LoadAverageService的源代码小心翼翼的潜伏在android\frameworks\base\packages\SystemU原创 2014-10-18 12:31:57 · 5497 阅读 · 0 评论 -
基于android4.4系统行车记录应用黑屏问题分析及对策
基于android4.4系统行车记录应用黑屏问题分析及对策 笔者最近遇到一个棘手的问题,那就是行车记录应用出现黑屏的问题,现象就是进入行车记录应用surface是黑的,录像文件几分钟一个的那种,每个文件的大小都是零。看到这个大家都非常重视,对于车载产品来说,行车记录功能需要保持长时间正常工作,出现这种问题肯定是不能接受的,必须解决!那这个问题是怎么出现的呢? 跟了很长时原创 2014-10-25 19:23:05 · 4731 阅读 · 6 评论 -
该收收心,静下心来苦作舟
该收收心,静下心来苦作舟 前面一段时间,恰逢考驾照,拖了快两年了,好不容易有个考试指标,自然重视程度就高很多了,还好公司高层领导非常支持,练车请了不少假,前后大概持续了一周,请了3个下午,另加一个完整工作日,当然请下午假的时候,基本上还是赶回公司的,晚上加一下班,工作也不至于丢太多,这样老板给个宽松的政策,自己也得对得起老板,自觉一点就是了。说实话,那段时间,干活要差不少,晚上有时还得做做原创 2014-10-08 11:44:56 · 4561 阅读 · 1 评论 -
android5.0来了,血雨腥风
android5.0来了,按理说是件好事,是件值得庆幸的事,但是对于车载这一块来说,喜忧参半!由于车载Android导航系统一般来说研发的时间周期比手机平板要长不少,这里面有很多原因,其一专门用着车载的芯片较少,其二专门用于车载行业的SDK很少,其三芯片原厂投入较少,因为投在手机还是平板见效更快,量也更大,其四就是车载的开发环境开发门槛相对要高一些,比如说模具,手机的一个产品的模具比起车载中控来说原创 2014-10-29 22:13:24 · 2795 阅读 · 2 评论 -
GPS北斗双模技术应用开发研究--几个基本关键词
最近在调试GPS北斗双模,目前已经都调试通了,下面就来说一下涉及的几个关键词。 GPS: GPS是英文Global Positioning System(全球定位系统)的简称。GPS起始于1958年美国军方的一个项目,1964年投入使用。20世纪70年代,美国陆海空三军联合研制了新一代卫星定位系统GPS 。主要目的是为陆海空三大领域提供实时、全天候和全球性的导航服务,并用于情报搜原创 2014-12-05 20:27:48 · 6184 阅读 · 0 评论 -
基于ContentObserver来动态取消或添加屏幕超时任务
前面也说了,ContentObserver可以来监控数据库里某一项数据的变化,当然也可以同时监控多个数据项的变化。笔者在项目中需要修改到屏幕超时的需求,比如在车载业务中,倒车事件发生的时候,是不需要屏幕超时变黑的,相当于这个计时timer要Reset一下,同样在蓝牙电话也要Reset一下,最好就是在这种特殊任务的时候,这个屏幕超时计时任务就不要跑起来,这样是最好的,那怎么实现呢?原创 2014-08-26 21:11:32 · 1984 阅读 · 1 评论 -
动态使用ContentObserver的问题
笔者在使用ContentObserver来监控一些设置的变化时,对于跨进程来通讯来说是非常方便的。但是笔者也遇到一些问题,比如我能不能动态的监控呢? 好比这种情况,我设置了某个设置的监听,也收到了这个设置的变化通知,但是处于有些原因,我又要把这个设置项的值修改成其他特殊需求的值,如果不改变监听的话,我自己设置进入新值以后,我的监听函数不是一样被执行了嘛!这是我不希望发生的,笔者也不想发生这种情况原创 2014-08-25 20:21:26 · 1685 阅读 · 0 评论 -
芯片手册写错了,很悲剧
芯片手册写错了,很悲剧 芯片手册是一个非常严谨的东西,至关重要,但是芯片手册上的描述都是正确的吗?从笔者的经验来说,未必啊!可以这样说99%是不大可能出错,也还存在1%可能是有错误的。当然我们日常开发碰到问题的时候,首先还是不要怀疑芯片手册会不会有错,需要做大量的实验,研究一些资料,再根据实际情况来综合判断。/*****************************************原创 2014-06-05 19:29:11 · 1919 阅读 · 2 评论 -
YUV422蓝屏显示输出功能辅助调试
YUV422蓝屏显示输出功能辅助调试 YUV422有YUYV,YVYU,UYVY,VYUY四种,下面笔者就就以UYVY为例介绍一下数据构成。由于经常要跟视频输入打交道,所以YUV422这种常见的视频信号是经常碰到的。有时候我们调试一个模块输出YUV422,然后再显示出来。很多时候,可能没法准确判断你那个模块是不是已经正常跑起来了,跑起来来的情况下,是不是真的有数据输出,有了数据输出后来的数原创 2014-05-24 17:33:47 · 2034 阅读 · 0 评论 -
快速修改android系统默认日期方法
快速修改android系统默认日期方法 在android系统的设备上,都有一个默认的开始日期,看过很多设备,有些设备在没有联网的时候没有同步到系统时间的时候,居然默认的还是1970年的日期,也见过有些设备默认到2000年1月1日的,这样相对进了一步,但是还不够。笔者下面很简单的介绍一下一个超级简单的方法:/************************************原创 2014-07-01 18:54:25 · 3033 阅读 · 0 评论 -
android4.4系统解决“ERRORcouldn't find native method”方法
android4.4系统解决“ERRORcouldn't find native method”方法 今天笔者在移植一个tv模块从android4.2到android4.4系统的设备上,同样的代码,同样的方法,就是运行不起来。大概方法就是上层写一个apk,调用一个静态的java库,java库加载调用JNI的库文件,这一套代码在4.2上都是好好的,正常能跑,移到4.4上编译也都没原创 2014-07-02 20:30:42 · 5518 阅读 · 1 评论 -
录像过程中系统时间改变了,怎么避免带来的悲剧
录像过程中系统时间改变了,怎么避免带来的悲剧 在android系统上,我们知道改变系统时间的方法有两种,一种就是通过再设置应用里面设置日期时间,另外一种就是通过网络后台同步时间,在手机平板上这两种是比较多的,当然作为车载设备,一般还会增加用GPS时间来同步系统时间。系统时间改变有这么几种方式,但是在录像过程中系统时间改变了,会有什么危害呢? 通过笔者的实验,如果开始录像是原创 2014-07-01 19:02:40 · 2118 阅读 · 0 评论 -
android中特殊应用跟系统特殊功能协助配合通讯问题
在实际项目应用中,最近有一个需求就是进入一个特殊的应用后,系统的某个功能不能起作用。当然,这个通信有很多办法可以做到。笔者可以想到的至少有如下几种1、利用property熟悉来实现,这样的话需要增加一个特殊的属性;2、利用数据库,在数据库中加一条记录,进入应用的时候设置一下,在系统部分可以利用content observer或者在特殊事件来的时候先判断读取一下这个值也可以;3、利用intent,发原创 2014-08-05 20:00:26 · 1406 阅读 · 0 评论 -
android各种声音类型级数设定及默认值
android各种声音类型级数设定及默认值原创 2014-07-15 20:38:43 · 2280 阅读 · 0 评论 -
自定义库引用时编译出错“collect2: error: ld returned 1 exit status”
想必很多人都遇到过这样的事情,需要写一个共享库,这个库又不能让所有的人都了解里面是怎么实现的,所以只能提供一个库出来供项目使用,可能是处于保密、核心业务的需要,这些都能够理解。笔者也写了一个简单的东西测试了一下,里面还是有不少东西。 “collect2: error: ld returned 1 exit status”首先就遇到了这个问题。查了一下,这种错误网上说法也一大堆,起作原创 2014-09-05 18:47:26 · 4205 阅读 · 0 评论 -
GPS北斗双模技术应用开发研究--数据解析
上一篇文章大家介绍了几个重要的概念,那下面我们就来解析一下这样的双模输出log,在解析之前我们来看看各个重要标准字段的意义。笔者在实际开发中只用到了其中的四个,分别是GGA,GSA,GSV,RMC,GLL,当然还有其他一些字段,感觉有些是重复的,根据需要解析就好了。下面就分别介绍一下:$XXGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),原创 2014-12-06 17:09:16 · 8891 阅读 · 2 评论 -
GPS北斗双模技术应用开发研究—数据结构扩展
GPS北斗双模技术应用开发研究—数据结构扩展 还是从gps.h头文件入手,首先 GpsSvStatus结构体需要改造,GpsSvStatus当时设计的时候是考虑存储gps卫星信息的,但是我们现在是要存储双模的数据,因此我们需要扩展这个数据结构,那怎么扩展呢? 当然要代价小一点,不能完全推倒重来的,笔者想到的就是增加一个北斗卫星数量的变量,以及北斗的epemeris、alman原创 2014-12-09 18:23:45 · 3716 阅读 · 0 评论 -
GPS北斗双模技术应用开发研究—应用数据交互
GPS北斗双模技术应用开发研究—应用数据交互 Android开发原则就是谁对哪个数据感兴趣就可以通过listener去监听一下,那边定位数据肯定也是这样的,关于位置上报的话,笔者不准备在这累赘了,网上好多文章,下面就讲一下双模相关的北斗gps卫星星图搜星具体情况的数据上报以及私有协议的定制。 在locationmanager里面有一个接口addGpsStatusList原创 2014-12-11 20:29:10 · 3639 阅读 · 2 评论 -
常用的设置默认日期的time tick值查询
前面写过“ Andorid平台在systemServer里设置默认时间存在原生BUG”https://blog.youkuaiyun.com/edsam49/article/details/80990790 这篇文章中介绍了怎么修改默认的日期时间的,这种事情经常会遇到因为产品在不停的迭代,时间也在滚滚向前。 在SystemServer中先比较当前的时间值跟默认时间的tick值来对比,如果晚...原创 2019-01-03 10:30:43 · 1516 阅读 · 0 评论 -
Android定制系统里如何让APP可以有root权限
在基于Android系统的嵌入式设备中,发布软件大多使用user的版本,也有一些产品直接释放eng的版本,里面内置了su,用户可以轻松获得root权限,当然这种风险还是比较大的,系统容易被破坏。 在使用user模式的版本上,一般都不会让用户能够切换到root权限,有些直接就不把su给building进去。在有些时候,我们又可能有这种需求,要让app拿到root权限去做一些事情,那怎么办呢...原创 2019-01-04 17:16:11 · 6258 阅读 · 3 评论 -
高通平台user模式下串口输入及使用QFIL在线烧录的问题解决
一般产品发布都是使用的user版本,但是在user版本的时候,我们有时候又需要通过串口敲一些命令查看一些状态。默认情况下在user模式串口是有输出没有输入的,那怎么打开这个输入呢?可以通过下面的方法: 同样,在user模式下,我们有时调试一些东西需要反复烧录版本,默认情况下高通平台使用QFIL是不能烧录,会提示找不到端口“fail to findQDLoader po...原创 2018-12-29 17:20:02 · 6492 阅读 · 0 评论 -
Andorid平台在systemServer里设置默认时间存在原生BUG
Andorid平台在systemServer里设置默认时间的问题 最近在项目中,需要设备起来的时候默认的系统时间设置到一个相对较新的时间点去,比如2018-07-01 08:00,那么怎么修改呢?我们知道在systemSever里有比较时间的原始功能代码如下: 在android4.4及以前的平台在这里执行是没有问题的,也就是说在这个地方修改就可以了。然而在android6.0、andro...原创 2018-07-10 19:30:11 · 792 阅读 · 2 评论 -
怎么优化SD卡的识别率
SD在大量的电子设备上都有使用,携带方便,价格也不贵,存储容量大,目前在平板手机、车载、播放器等等电子产品上使用的非常频繁,但是SD卡的问题又比较多,一个是基于nand flash的先天性问题,一个是制程的问题,另外还存在许多仿冒的卡,以金斯顿的仿冒品最常见。在诸多的SD卡问题上,首先就是一个识别的问题,如果系统都识别不到,就谈不上使用,更谈不上体验了。那怎么优化识别呢?/******...原创 2018-05-19 20:00:26 · 736 阅读 · 1 评论 -
基于android系统DVR稳定性问题分析及对策
基于android系统DVR稳定性问题分析及对策 DVR,全名Digital Video Recorder,数字视频录像机,在车载行业大家通俗的叫行车记录仪,因为这个数字视频的内容是行车的形式动态。如今,在道德滑坡的社会不良风气的影响下,出现了诸多的碰瓷党,因此行车记录仪就成了车主的保护神,有了视频录像作为证据,交警来了自己心里都更有底气。但是如何把这个功能做得稳定可靠呢? ...原创 2018-05-05 17:15:00 · 2614 阅读 · 5 评论 -
”ninja: error“并非都是Java环境导致
最近在下载高通开发平台的代码的时候,下过来的原始代码,我们做building,一开始building就发现building不下去,报错如下:ninja: error: 'out/target/product/msm8953_64/obj_arm/SHARED_LIBRARIES/libqct_resampler_intermediates/export_includes', needed by ...原创 2018-05-10 11:46:39 · 10327 阅读 · 6 评论 -
repo下载SDK遇到的gpg问题
从https://source.codeaurora.org/上下载一个开放平台的SDK代码,在执行repo init的时候就出错了。 gpg: Signature made Fri 02 May 2014 04:34:18 AM CST using RSA key ID 692B382Cgpg: Can't check signature: public key not found erro...原创 2018-05-09 16:13:40 · 1237 阅读 · 0 评论 -
yuv420数据快速裁剪
yuv420数据快速裁剪 最近碰到一个项目需求,这个项目是两年多年已经量产的项目,这是一个车载后视镜项目,当时配置的后视摄像头是确定的,也就是说这个后视摄像头是厂家定制出去的,当时研发在做倒车显示的时候,显示的画面是完整的裸数据,没有裁剪过,也就是后视摄像头出来的CVBS数据是N制式的时候就是720X480的原始数据来显示的。 但是最近又接到一个需求,就是这个原创 2017-10-16 20:05:47 · 2361 阅读 · 2 评论 -
关于软件研发的一些体会总结
关于软件研发的一些体会总结 都说码农是个苦逼的群体,果真如此?的确,程序员在我的印象中没有多少人能够是正常下班的,大多是需要加班加点的,有些行业的程序员高峰期需要通宵达旦来保障产品的上线,不少程序员在休息日还需要过来加班工作,不得已把家庭丢下奋战在代码的战壕里,真的我们需要理解支持程序员,程序员家属通常需要做出很多牺牲,特别是照顾小孩、老人、整个家庭。但是,这样的路要一直下去...原创 2017-03-21 11:33:01 · 6591 阅读 · 28 评论 -
Android平台日志收集系统
Android平台日志收集系统 在产品开发测试中以及产品投放到终端客户后,我们经常会遇到各种各样的问题,产品出异常,比较严重的就是使用过程中死机,用户无法操作。对于这种情况,将问题反馈给研发,问题能够快速重现的研发还比较好解决,有些问题不常见,研发短时间内也很难找到问题根源。为了提高研发的效率,那么每次出异常的时候我们都最好有系统的打印系统,通过系统打印异常的蛛丝马迹去查找问题的元凶。但原创 2017-03-07 15:04:03 · 4457 阅读 · 0 评论 -
双路录像利用静态变量做多对象之间简单写互斥
双路录像利用静态变量做多对象之间简单写互斥 笔者目前在研的项目是基于android6.0的智能后视镜产品,目前存在前视录像跟后视录像的功能,存储的文件路径都是保持到外部的同一张SD卡上的。我们都有一个这样的经验:比如往SD卡拷文件,比如2个文件都是50M,先拷贝第一个50M文件完成后,再拷贝另外一个50M的文件,这样拷贝这2个总共100M文件花费的时间比会先拷贝一个50M文件,在还没有原创 2016-09-07 11:58:50 · 3335 阅读 · 0 评论 -
从零开始怎么写android native service?
从零开始怎么写android native service Android service对于从事android开发的人都不是一个陌生的东西,很多人可能会觉得服务很简单。服务是简单,因为复杂的别人做了,所以才会觉得简单。我们先梳理一下服务的分类,首先有本地服务跟系统服务的区分,而在APP里写的服务大多就成为Java服务或者应用服务。/*************************原创 2016-02-19 21:05:20 · 4405 阅读 · 1 评论 -
ADAS在车载导航设备上的应用
ADAS在车载导航设备上的应用 首先我们来了解一下ADAS的基本概念,ADAS全称是Advanced DriverAssistance Systems,中文翻译是高级驾驶辅助系统。随着城市化的进一步发展,居民生活水平的提高,路上的车越来越多了,一个可悲的事就是交通事故越来越多了,这里面有很多原因驾驶人员的安全意识、违法驾驶、路况、疲劳驾驶等等原因很复杂,因此有一个ADAS来帮原创 2015-09-05 17:01:12 · 8302 阅读 · 2 评论