自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android 系统属性定制

需求:客户想要这个只读的系统属性可直接被应用修改 ro.product.model方案1:使用root权限,修改system/build.prop文件应用通过调用shell脚本执行su指令SystemProperties.set("ctl.start", "db_chmod");#!/system/bin/shsuchmod 666 system/build.prop那么系统如何找到db_chmod.sh文件呢?init.rc中声明db_chmod服...

2021-06-22 15:36:06 409

转载 Android属性:所设属性值为何在重起后被清除

问题:发现adb sehll setProp所设属性值在下次重起后被清除adb shell setprop testing.mediascanner.skiplist /storage/sdcard1/test结论:1.必须采用persist.开头的属性名才能永久保存。2.如果具有root权限,可以直接编辑/system/build.prop并加入需要永久保存的属性On system initialization, Android will allocates a block of shar

2021-06-22 14:47:05 783

原创 javadoc 使用Eclipse制作java sdk说明文档

效果图工具:Eclipse javadoc.exe使用方法:1、首先编写Javadoc注释,(最好是在项目开发过程中就写好),注意Javadoc注释写法为: /** 注释内容 */ (跟java注释/* 注释内容*/ 是不一样的,而且颜色也不同)2、project->Generate Javadoc...(如果没有看到,就在全局搜索)3、Javadoc command 选择你电脑上JDK 的bin目录下的 javadoc.exe,然后勾选你要生成Javadoc的...

2021-01-27 15:30:12 242

转载 Android O Android P 自定义开机广播

背景一般来说,我们都是用的监听android.intent.action.BOOT_COMPLETED。但凡稍有些经验的开发者都知道,这个广播很慢,非常慢。因为它是一个有序广播,根据优先级来的,而且监听这个广播的apk又非常多。打个log感受一下,这个广播开始到结束在我司的机器上持续了30s!关键是你把优先级调高了,即便你是前几个收到android.intent.action.BOOT_COMPLETED的,从开机动画走完,锁屏界面跳出来到你的apk收到这个广播,大概还是有个5s左右的时间.

2020-11-07 16:42:49 883

转载 Linux /dev/uinput

1. 简介 uinput可在以下情况大显身手: 1) 不需要自己写驱动 2) 用户态向/dev/input/eventX写入事件,即用户向Kernel注入数据2. 使用流程2.1打开UInput DeviceAPP: char *dev = "/dev/uinput“; open(dev, O_WRONLY | O_NDELAY); Kernel: static int uinput_open(struct...

2020-10-22 19:30:21 349

转载 Linux /dev目录详解

Linux /dev目录详解    在linux下,/dev目录是很重要的,各种设备都在下面。下面简单总结一下:  dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。  Linux沿袭Unix的风格,将所有设备认成

2020-09-30 10:44:01 358

转载 Linux之访问/dev/hidraw

一、HIDRAW overviewHIDRAW -原生的USB 和Bluetooth 人类交互设备==================================================================hidraw驱动提供了原生的接口为USB 和Bluetooth 人类交互设备。它与hiddev的不同之处在于,发送和接收的报表没有被hiddev解析器解析,而是从未修改的设备中发送到和接收到的。如果用户空间应用程序知道怎么恰当和硬件设备通信,和能够手动构建HID 报表

2020-09-30 10:41:35 1754

转载 安卓与单片机进行usb hid通信

安卓USB_HID通信文档因为一直在研究stm32,需要用到usb hid通信,就研究了安卓与stm32进行usb hid通信,目前已经能进行正常通信,我这里只跟大家说一下通信时需要注意的问题。usb hid通信 单次最多发送64字节,这64字节中:第一个字节代表了数据长度,所以 这就相当于单次最多发送63字节,这里要注意的是编写发送程序时,第一字节要写数据包长度。下面主要讲解一下流程,进行通信前,要检查手机是否支持usb hid,即手机是否支持OTG,只有手机支持otg,手机才可以通过usb

2020-09-29 16:08:39 1268

原创 PC上位机通过RS232协议与Android系统进行通讯

一.需求:1.PC上位机发送RS232指令与Android系统进行通讯:如烧写主板的mac地址,控制主板的开关机,系统音量等二.实现方式:1.Android 系统上写一个应用,系统开机起来跑一个后台服务,以只读、阻塞方式打开主板上com挂载的设备节点,当接收到发送过来的数据时,对数据进行处理并返回。三.框架结构:四.代码功能实现:SerialPort.javapackage com.mzm.jniserialport;import java.io.File;.

2020-09-18 11:45:30 964

原创 Android 系统SDK封装

需求:1.客制化项目需要提供系统的接口给客户开发定制,如:开关背光,获取背光值等功能接口。2.系统多个应用多个地方同时调用某个功能实现,存在多处代码耦合,需要统一接口,统一调用。实现方式:1.定义一个系统service:FuctionService, 一直在后台运行,服务可以只对外提供接口,具体功能在服务内部实现2.应用可以通过aidl和FuctionService进行通讯,调用FuctionService中的接口框架结构图:...

2020-09-16 10:49:29 634

转载 Hexo搭建博客教程

现在越来越多的人喜欢利用Github搭建静态网站,原因不外乎简单省钱。本人也利用hexo+github搭建了本博客,用于分享一些心得。在此过程中,折腾博客的各种配置以及功能占具了我一部分时间,在此详细记录下我是如何利用hexo+github搭建静态博客以及一些配置相关问题,以免过后遗忘,且当备份之用。准备工作下载node.js并安装(官网下载安装),默认会安装npm。 下载安装git(官网下载安装) 下载安装hexo。方法:打开cmd 运行npm install -g hexo(要翻墙).

2020-06-17 19:10:12 531

原创 window10系统上编译 window系统上bitcoin的Qt钱包

一 window10系统上去Mircrosoft Store 安装ubuntu16.04二 git clone bitcoin 源代码git clone https://github.com/bitcoin/bitcoin.git -b 0.15三 编译参考doc目录下的build-unix.md build-windows.md sudo apt-get install software-properties-common sudo add-apt-repository ...

2020-06-01 15:54:12 438

原创 Activity A 跳转到Activity B 生命周期

从Activity A 跳转到Activity B 其实是这样: onPause(A)— onCreate(B)— onStart(B)— onResume(B)— onStop(A)

2020-04-30 08:47:43 454

转载 android通过读取/dev/graphics/fb0文件解析出系统界面的图片

在网上找了一些读取/dev/graphics/fb0文件的办法并解析出图片的办法。大部分都是比较笼统一点的,经过一些网上示例和研究,找到个比较简单的办法读取解析数据当然目前读取系统文件还是需要先将机器进行root后才能读取,具体怎么root,有很多种办法和工具的root完成后,先通过代码将/dev/graphics/fb0文件修改为可读的权限ShellUtil.getInstance(...

2020-04-29 19:51:25 1001 1

原创 android 进入Recovery模式自动升级指定固件包

1.获取update.zip文件2.验证签名文件3.通过installPackage接口升级,往/cache/recovery/command中写入recoveryELF的执行参数4.系统重新启动进入recovery界面(判断/cache/recovery 是否有cmd文件)5.try_update_binary执行升级脚本6.finish_recovery 重启app执行安装...

2020-04-29 18:50:52 819

原创 android 系统开机流程

1.用户按下电源键,引导芯片代码从预定义的地方开始执行,加载引导程序bootloader到RAM,然后开始执行;2.启动引导程序bootloader,然后linux内核启动;3.linux内核启动后,设置缓存,设置保护存储器,计划列表,加载驱动等操作。当内核完成系统设置之后,会查找init文件,然后启动Root进程;4.Linux内核创建用户级别进程,init进程;5.init进程...

2020-04-29 09:18:33 248

转载 团队项目的Git分支管理规范

许多公司的开发团队都采用Git来做代码版本控制。如何有效地协同开发人员之间,以及开发、测试、上线各环节的工作,可能都有各自的流程与规范。本文分享的是作者一直沿用的团队项目Git分支管理规范,希望给有缘阅读的人以参考,如果有更好的实践,也欢迎探讨、交流。分支管理创建项目时(一般是服务型项目,工具型或辅助型项目可以简单一些),会针对不同环境创建三个常设分支:develop:开发环境的稳...

2019-12-11 17:16:50 255

转载 Java 单例模式

最常用最安全的两种方法:它们共同的特点是:懒加载、线程安全、效率较高。1.双重检查锁定”(Double Check Lock(DCL))方式:2.“静态内部类”方式:参考文章:题记度娘上对设计模式(Design pattern)的定义是:“一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。”它由著名的“四人帮”,又称 GOF (即 Gan...

2019-10-25 14:17:03 254

转载 USB Device 数据读取方式的研究

随着越来越多的设备通过USB接口与主机连接,我们需要读取USB设备的数据。现就几种不同读取USB Device Data的方法进行探讨。非常欢迎网友补充。方法一:读取/dev/input/eventX此方法只对HID设备有效。只要USB设备注明是HID Input设备,则它的数据就会被解析为输入设备并填入/dev/input/eventX.对此设备的操作和数据读取。见...

2019-10-21 17:08:27 671

原创 安卓外挂红外触摸屏的软件设计

安卓外挂红外触摸屏的软件设计许海燕, 黄贤立(淮阴师范学院计算机科学与技术学院 江苏 淮安 223300)【 摘 要】基于 Android 输入系统开发了 安卓外挂红外触摸屏的驱动软件。 USB 接口的红外触摸屏连接到 A83T 开发板上,触摸点数据通过安卓 Input 子系统上报。 本文描述了 触摸系统的硬件架构和安卓输入系统的编程体系,给出了 触屏驱动的主要设计和实现过程。【关键词...

2019-10-21 16:18:22 2451

原创 Linux 设备驱动程序

第一章 简介1. 内核功能模块划分:2.Linux 设备分成三种类型:字符设备,块设备,网络设备。字符设备: 是个能够像字节流(类似文件)一样被访问的设备,由于字符设备驱动程序来实现这种特性。字符设备驱动程序至少要实现open,close,read和write系统调用。字符终端(dev/console)和串口(/dev/ttys0一级类似设备)就是两个字符设备。第二...

2019-10-17 21:00:48 182

转载 常见硬件通信协议总结

(正好手上的nodemcu支持UART、SPI、I2C协议,所以这篇文章干脆就用nodemcu来分析协议了~)UART用逻辑分析仪捕捉nodemcu init.lua给上位机发送 “A”:-- init.luatmr.alarm(1, 1000, tmr.ALARM_AUTO, function() print('A')end)1234解码设置:解码结...

2019-10-15 20:44:54 642

转载 Android Framebuffer介绍及使用

FrameBuffer 介绍FrameBuffer中文译名为帧缓冲驱动,它是出现在2.2.xx内核中的一种驱动程序接口。主设备号为29,次设备号递增。Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。FrameBuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过FrameBuffer的读写直接对显存进行操作。用户可以将FrameBuffer看成是显示...

2019-09-05 11:23:27 1495

转载 Android FrameBuffer 中绘图的简单例子

1,调用linux函数打开framebuffer设备文件 fp = open ("/dev/graphics/fb0",O_RDWR); 打开上面的设备文件后,利用内存映射,可以实现向framebuffer写数据来刷新屏幕。但是现在有一个问题。貌似Android系统自己也会刷新屏幕,而且往设备文件里写的数据,也不知道什么时候能刷新。 手机上试过的,移动屏幕会一闪一闪,有时候屏幕...

2019-09-05 11:15:14 433

转载 Linux /dev目录详解

在linux下,/dev目录是很重要的,各种设备都在下面。下面简单总结一下:  dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个...

2019-09-05 10:48:40 378

转载 Android USB Host与HID通讯

前端时间捣鼓一个HID的硬件, 需要和android通信, 网上搜索了一圈,收获不小.比较好的文章是: Android USB Host与HID通讯 Android Service创建USB HOST通信其中代码之处有些地方需要注意的, 特此注明一下:/** * USB HOST 连接 HID * @author IVAN * */public ...

2019-09-04 11:08:46 227

转载 对51单片机中断系统的理解

51单片机的中断系统十分重要,前几次我在学习的时候,根本分不清外部中断、定时器中断的区别以及正确使用方法。今天,偶然打破了自己的常规思路,得到了一点点理解,与大家分享下,希望大家不吝指出其中的不足与错误。1.单片机的中断分类:只有两类,外部中断和定时器中断。这两种中断使用时可以完全分离。2.最常用的自动中断是定时器中断,也就是自己设定一个“倒计时”,该倒计时与主程序同时开始...

2019-08-28 14:37:44 812

转载 [经验] 从业将近十年!手把手教你单片机程序框架(连载)

大家好,我叫吴坚鸿。times New Roman">第一节:吴坚鸿谈初学单片机的误区。http://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=406259&pid=2513087&fromuid=635735第二节:delay()延时实现LED灯的闪烁。htt...

2019-08-27 11:24:48 1083

转载 [经验] 从业十年,教你单片机入门基础。(连载)

大家好,我是吴坚鸿,自从去年在本论坛写了《从业将近十年,手把手教你单片机程序框架》后,赢得了一部分网友的好评,同时也发现了一些网友没有C语言基础,没有单片机基础,不懂keil的安装和使用,不懂74hc595的使用原理,不懂动态扫描数码管的原理,甚至连如何烧录程序也不清楚,这样阅读我那程序框架的贴子就很吃力,所以我决定新开这个连载基础贴。我2006年毕业出来工作,到现在只工作了九年,为何标题取名“从...

2019-08-27 11:22:33 301

转载 区分:串口,COM口,UART,USART

本文主要简述串口,COM口,UART,USART之间的联系和区别,另外也讲述了串口的RS-232电平和TTL电平,以及单片机与电脑之间的串口连接方式。串口 串口,即串行接口,与之相对应的另一种接口叫并口,并行接口。两者的区别是,传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输,而并口则将8个位一字排开,分别在8条连接线上同时传输。 ...

2019-08-24 15:53:33 485

转载 USB HID设备数据的读取

https://blog.csdn.net/DFSAE/article/details/81876573USB设备(HID)Android下获取HID数据的方式:1.通过读取/dev/hidrawX设备节点 看名字就知道意思了(这个需要在编译的时候打开)2.如果是标准HID设备,还可以通过/dev/input里的设备节点读取方式一.通过input/event获得数据这里的数...

2019-03-01 18:25:07 2246

原创 一段程序看懂 C中字符类型类型指针,字符类型数组

一段程序看懂 C中字符类型类型指针,字符类型数组:#include <stdio.h>;int main(){ char* p1 = "20190118"; char* p2 = "happynewyear"; printf("%%s:p1=%s,p2=%s\n",p1,p2); //内容值 printf("%%p:p1=%p,p2=%p\n",p1...

2019-02-28 09:36:08 252

原创 android 8.0 ota升级完成后,进入安卓系统后会执行factroy reset,然后进入recovery中,提示: Can't load Android System. Your data

问题描述:android 8.0 ota升级完成后,进入安卓系统后会自动执行factroy reset,然后进入recovery中,提示: Can't load Android System. Your data may be corrupt. 如下图,如果此时选择 Factory data reset, 那么将会擦除data 分区和cache分区中的数据。擦除完后,系统能够正常启动并运行。...

2019-02-27 19:54:21 10298 1

转载 android手机各大分区详解

1. bootloader  当我们拿到一款手机,第一件事应该就是按下电源键开机,那么从开机到进入到桌面程序这中间发生了些什么呢,我们从下面这张简化了的手机结构图开始:   注意:该结构图并不反映手机的实际分区顺序和位置,只是一个逻辑结构图。  大家可以简单的把手机的ROM存储类比为我们电脑上的硬盘,这个硬盘被分成了几个分区:bootloader分区,boot分区,sy

2016-11-29 20:42:33 19474 1

转载 Android——4.2.2 文件系统目录分析

版权声明:免责声明: 本人在此发文(包括但不限于汉字、拼音、拉丁字母)均为随意敲击键盘所出,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能,并不代表本人局部或全部同意、支持或者反对观点。如需要详查请直接与键盘生产厂商法人代表联系 .挖井挑水无水表,不会网购无快递目录(?)[+]    最近公司要整Android内部培训,分配给我写个培训文档,这里记录如下

2016-11-23 10:35:19 399

转载 init进程【2】——解析配置文件

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]欢迎转载,转载请注明:http://blog.csdn.net/zhgxhuaa在前面的一篇文章中分析了init进程的启动过程和main函数,本文将着重对配置文件(init.rc)的解析做一下分析。init.rc脚本语法init.rc文件不同于init进程

2016-11-23 10:32:48 735

转载 彻底明白Android中AIDL及其使用

1、为什么要有AIDL?无论学什么东西,最先得弄明白为什么要有这个东西,不要说存在即是合理,存在肯定合理,但是你还是没有明白。对于AIDL有一些人的浅显概念就是,AIDL可以跨进程访问其他应用程序,和其他应用程序通讯,那我告诉你,很多技术都可以访问,如广播(应用A在AndroidManifest.xml中注册指定Action的广播)应用B发送指定Action的广播,A就能收到信息,这样也能看成

2016-09-21 16:29:31 400 1

转载 Framework中的AIDL(原)

在上一节(应用层的AIDL调用)中我们介绍了应用层中的AIDL用法, 这一节中,我们来看一下系统Framework层中更为普通的AIDL用法。        为了便于分析,我们挑选了ITelephonyRegistry这个SystemService进行分析。这个服务的主要作用就是对通话相关的事件进行监听,我们把重心放在AIDL的实现结构上,不去关注ITelephonyRegistry具体的

2016-09-21 16:28:03 230

转载 ifeq ifneq ifdef ifndef

通常我们会使用它来判断一个变量的值是否为空(不是任何字符)。参数值可能是通过引用变量或者函数得到的,因而在展开过程中可能造成参数值中包含空字符(空格等)。一般在这种情况时我们使用make的“strip”函数来对它变量的值进行处理,去掉其中的空字符。格式为:ifeq ($(strip $(foo)),)TEXT-IF-EMPTYendif

2016-09-18 10:47:09 385

转载 Android编译系统详解(三)——编译流程详解

本文原创作者:Cloud Chou. 欢迎转载,请注明出处和本文链接1.概述编译Android的第三步是使用mka命令进行编译,当然我们也可以使用make –j4,但是推荐使用mka命令。因为mka将自动计算-j选项的数字,让我们不用纠结这个数字到底是多少(这个数字其实就是所有cpu的核心数)。在编译时我们可以带上我们需要编译的目标,假设你想生成recovery,那么使用mka r

2016-09-18 09:49:32 1597

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除