- 博客(45)
- 收藏
- 关注
原创 AOSP Android14 部分页面使用触摸会崩溃
在应用层解决无果后遂向RK提问,原来这是一个AOSP已知问题。而且修复方法极其简单。修改某个打印的错误等级即可。应用部门同事反馈,某些页面如果本身不能响应触摸消息,但是此时接一块usb触摸屏进行触摸时,会导致系统崩溃。按照补丁修改后,问题果然解决~~ 无了个大语~
2025-02-18 16:17:01
402
原创 RK3576 Android14,内存大于4G时UVC应用无法申请内存
最近有个项目需要将Linux虚拟成UVC摄像头,开发过程中遇到一个奇怪的事情,通过V4l2框架接口申请内存时,相同的板子,只是内存一个4G一个8G。4G的内存可以申请成功,8G就不行。转念一想,是不是UVC所使用的DMA无法使用4G以外的内存地址导致的?内存更大反而内存不足?
2024-12-13 20:50:45
394
原创 Android14 AOSP 允许system分区和vendor分区应用进行AIDL通信
修改 frameworks/native/libs/binder/BpBinder.cpp 文件,找到status_t BpBinder::transact方法,屏蔽相关判断语句或者错误返回即可。在Android14上,出于种种原因,system分区的应用无法和vendor分区的应用直接通过AIDL的方法进行通信,但是项目的某个功能又需要如此。除非必要,不推荐这么做,所以还是保留了报错信息。好在Binder底层其实是支持的,只是在上层进行了屏蔽。
2024-12-13 20:42:23
579
原创 Android14 AOSP支持短按关机
修改framework/base/services/core/java/com/android/server/policy/PhoneWindowManager.java。
2024-12-13 20:31:30
349
原创 BufferQueue低延迟优化,以及SurfaceView帧率上限问题解决
因为消费者只能按照固定的显示速度显示,生产也会继续以相同的速率生产,此时BufferQueue内会永远积压大于1帧的数据。消费者(一般为SurfaceFlinger,负责图像的显示)接收到生产者的通知后,通过acquirebuffer方法从BufferQueue获取一个可显示的图形缓冲区,等待垂直同步事件到来后显示(每秒60次)。Android的显示框架使用了BufferQueue作为图形缓冲区的缓存队列,我们不需要深究BufferQueue的实现细节,只需要了解其大概工作原理即可。
2024-09-27 21:01:59
821
1
原创 使用C++实现FC红白机模拟器 Cartridge 与 Mapper(实现篇)
2.Cartridge 与 Mapper的实现首先我们在QT中创建两个类,Cartridge 与Mapper类:Cartridge 类负责加载和解析ROM,因为CPU和PPU的内存映射都有指向卡带的部分,因此需要分别提供CPU和PPU的读写接口。 Mapper 类负责地址空间与ROM的实际映射关系。2.1Cartridge 类实现在Qt中创建Cartridge类并生成cartridge.h与cartridge.cpp两个文件。cartridge.h内容如下:#ifndef C...
2021-08-26 12:54:22
2021
3
原创 使用C++实现FC红白机模拟器 Cartridge 与 Mapper(原理篇)
1. 认识nes文件我们既然是模拟,就不可能使用实体的卡带硬件。那我们如何获取游戏文件呢?好在已经有人为我们准备好了(心怀感恩)。.nes文件是NES(FC)的rom文件,关于它的来龙去脉这里就不做详细介绍了(我也不知道)。.nes有1.0和2.0之分,简单起见 这里只考虑1.0。NES文件由 Header、Trainer、PRG ROM、CHR ROM4个部分组成。Header 大小:16字节,用于ROM文件的校验,记录PRG和CHR大小等作用。 Trainer,这个区域很多时候并不.
2021-08-24 10:28:31
3018
原创 使用C++实现FC红白机模拟器 概述
想必提到Fc游戏机大家都应该不会陌生(陌生您也不会搜到这篇文章了 ),FC游戏机又称红白机,是任天堂在1983年退出,很快也火遍中国。不过国内更熟悉的可能是小霸王等一众兼容机(偷笑)~~但是不管怎么说,红白机依然使我们不少人的童年回忆。想必当初一起玩游戏的那些伙伴已经走入了各行各业,自然也少不了成为“程序猿”的。你没有想过自己实现一款红白机呢?或许这有些难度,毕竟我们还需要准备不同的硬件、设计电路焊接等。不过好在,我们可以通过纯代码的方式在PC(或者android)实现一个红白机模拟器。工欲善其事必先利
2021-08-23 12:40:54
3957
3
原创 Winform自定义控件:完全自绘滚动条
warning:本文默认您具有一定的基础知识,且对GDI+有一点了解。虽然系统已经自带了滚动条控件,大部分情况下也能适用。但是有时候我们对界面进行整体美化的时候,自带的就显得有点傻大黑粗 了。。虽然我们也完全可以在原有控件的基础上进行美化,但是本文更侧重学习新知识。故此本文决定重复造轮子。开始吧首先在项目右键选择添加新项(名字可能不同,相信您能找到正确的按钮),然后选择自定义控件,注意是自定义控件而不是用户组件。并重命名控件名称。新建以后除了构造方法外只有一个OnPaint方法,此方法在控件.
2021-02-27 17:14:45
2946
原创 WInform自定义控件:自定义下拉框/弹出框
在平常进行应用开发的时候,经常会看到如下的弹出窗口。如:系统菜单、ComboBox组合框等等。大部分时候,这些已经足够使用,通过集成原控件也能进行相当不错的美化。但是某些时候 ,我们系统弹出菜单能够显示自定义的控件内容。例如在弹出菜单中放置一个搜索框,或者自定义一个ComboBox等。那么就需要利用到一个系统组件:ToolStripDropDownToolStripDown的官方介绍:https://docs.microsoft.com/en-us/dotnet/api/system.windows.
2021-02-24 13:06:22
3804
1
原创 Winform 的 VScrollBar参数详解——为啥设置了最大值却滚动不到?
最近在写一个SSH的控制台应用,因为自带的文本编辑框总是不进入人意,另外本着学习新知识的原因,打算重写一个控件。然后就用到了这个VScrollBar纵向滚动条控件。先上图:**Maxinum :**可滚动的最大值,网上都是如此描述,导致误解。实际是Maxinum并不是“可滚动的最大值”,而应该是滚动条总高度代表的“值”,也就是说 Maxinum - Mininum = 可滚动的值+LargeChange**Mininum:**也就是滚动条最低端的值,一般写0就行**LargeChange:**滚
2020-11-24 10:09:51
3079
5
原创 迅为4412修改uboot以支持4G以上的分区
修改uboot以支持4G以上的分区接到任务需要:需要对itop4412的开发板给根目录分配4G以上的空间。因为uboot默认使不能分配4G以上分区的,因此需要修改源码。祭出“百度大法”,找到了下面的博客:博客地址:https://www.cnblogs.com/stay-foolish1984/p/10489625.html。关键内容:/common/Cmd_mmc_fdisk.c里面的 unsigned int calc_unit(unsigned int length,SDInfo sdI
2020-11-07 16:54:06
549
原创 PHP的yield:一个以时间换空间的方法
今天在闲逛PHP的官方文档的时候,发现了这么个用法:yield,叫 生成器官方是这么描述的(PHP 5 >= 5.5.0, PHP 7)生成器提供了一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。生成器允许你在 foreach 代码块中写代码来迭代一组数据而不需要在内存中创建一个数组, 那会使你的内存达到上限,或者会占据可观的处理时间。相反,你可以写一个生成器函数,就像一个普通的自定义函数一样, 和普通函数只返回一次不同的是,
2020-10-22 09:58:59
355
原创 php7交叉编译开启curl就报错的问题解决
这几天在折腾把php7移植到arm开发板中去,在几乎不加任何扩展的情况下,使用如下指令成功编译且顺利的移植到了开发板。(当然这个过程中还遇到了其他的坑,这个以后再说)。./configure --host=arm-none-linux \ --prefix=/usr/arm \ --disable-all \ --enable-fpm \ --enable-session \ --enable-tokenizer \ --with-zlib \ --without-iconv \
2020-09-01 11:41:54
637
原创 Android利用Fragment实现权限授权管理
实现背景:最近写项目有多处需要动态的申请权限,Android原生的权限申请方式虽然足够简单但是却并不是很方便。比如首先要通过checkSelfPermission去判断是否已经有权限,已经有权限则进行相应的业务处理,如果没有权限则通过requestPermissions申请权限,并且在onRequestPermissionsResult回调方法中再次进行判断,如果有权限再次调用业务代码。也就是业务代码需要进行两次调用,所以想要把权限申请的部分进行封装,并且不需要在onRequestPermission
2020-08-17 11:36:07
2250
原创 PhpStorm 64位打不开32位正常
网上有一些解决办法,可能是由于导致这种问题的原因有很多种,而我的恰巧与网上的不同导致。解决办法:找到以下路径(注意根据实际情况改成自己的)C:\Users\22071\AppData\Roaming\JetBrains\PhpStorm2020.2打开phpstorm64.exe.vmoptions可以看到如下内容这个插件所指向的文件已经删除了,可能是因为这个原因导致PhpStorm无法启动删除此行,PhpStrom恢复正常。...
2020-08-13 09:16:57
1029
原创 dhclient 移植到armhf(其他架构也大同小异)
简单到不想写字下载->配置->编译下载地址ftp://ftp.isc.org/isc/dhcp/4.4.1/dhcp-4.4.1.tar.gz或者使用我的网盘地址链接:https://pan.baidu.com/s/1_9gGpxUIOMNSjObOste60Q提取码:7md3解压后进入源码目录./configure CC=arm-linux-gnueabihf-gcc BUILD_CC=gcc ac_cv_file__dev_random=yes --host=arm-linu
2020-07-24 17:22:40
596
原创 OkHttp的Response使用注意(NetworkOnMainThreadException)
众所周知,在安卓中网络操作是不可放在主线程中进行的。那还不简单,放异步中不就行了。于是想当然的写下如下代码,代码看起来合情合理,doInBackground 中请求网络,返回response,再于onPostExecute 中解析数据并且更新界面。而且测试的时候没有报错。@Overrideprotected String doInBackground(Object[] objects) { Request request = new Request.Builder() .post(Req
2020-07-22 10:27:34
2127
转载 crontab常用指令
crontab -l -u root #查看root用户0 */1 * * * command0 */2 * * * commandcrontab -e #编辑定时任务,在编写时会检查语法,而echo,或者vi编辑配置时不会检查(visudo也会检查语法)0 */1 * * * command0 */2 * * * commandcront...
2019-03-26 10:17:51
400
原创 python实现实时监控文件改变并通过sftp上传
因为项目需要临时实现的小功能,有时间在做详细分析完善。import paramikoimport osimport hashlibimport time# transport = paramiko.Transport(('192.168.1.96', 22))# transport.connect(username='morra', password='357447218')...
2019-01-30 09:38:07
2912
1
原创 inputStream.read(data)导致的数据错误
哎,java学的不精各种百度copy代码,结果弄出各种奇葩问题。这不百度了一个HttpURLConnection 模拟http请求的就出问题了:String message = ""; try { URL url = new URL(uri); HttpURLConnection connection = (HttpURLConnection) url.openConnection...
2018-11-29 15:27:51
2270
转载 Mysql主从数据库 数据同步(复制)
近期的随着一个小项目的规模逐渐扩大,数据的安全性和稳定性也越来越重要。数据库实时备份,宕机切换自然提升了日程。 于是参考了下文:(下文为转载,进行了格式排版,和部分修改) mysql主从同步定义主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器...
2018-11-16 14:38:11
667
原创 Jquery的on绑定方法在Iphone下失效的问题
今日做项目的时候遇到一个奇怪的问题,例如:<div class="am-btn am-btn-default sure-btn" id="sure_id">确定</div>在js中是这样的:$("body").on("click","#sure_id",function(){ console.log("点击了"); }
2018-10-11 13:46:14
370
转载 MyISAM和InnoDB索引实现对比
MyISAM索引实现MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。如图: 这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索引(Primary key)示意。可以看出MyISAM的索引文件仅仅保存数据记录的地址。在MyISAM中,主索引和辅助索引(Secondary key)在结构上没有任何区别,只是主索引要求key是唯一的,而...
2018-05-25 17:54:20
230
原创 MYSQL8.0安装后 phpMyAdmin无法登陆解决
因为某些原因安装了8.0以后phpMyAdmin始终无法登陆 。我也是手残,没事更新什么mysql。原因在于MYSQL8.0的密码验证方式从mysql_native_password改为了caching_sha2_password。而目前为止,php的pdo和mysqli应该还是不支持的。所以在my.ini找到default_authentication_plugin=caching_sha2_p...
2018-05-16 02:40:19
7491
转载 USB3.0、PCIe、PCI等各总线速度对比与介绍
需要注意的是,在一些新的技术标准中,为了防止数据在高速传输中出错而加入了校验码,比如PCI-E 2.0、USB 3.0和SATA 3.0中采用的是8/10编码,每10位编码中只有8位是真实数据,这时单位换算就不再是1:8而是1:10了,USB 3.0的5Gbps速度实际上是理论500MB/s而非理论625MB/s,SATA 6Gbps的理论速度则是600MB/s而非750MB/s
2018-01-21 22:46:03
51113
1
原创 让Nginx支持php的PHP_INFO
通常我们在配置nginx使其支持php时,都是进行类似如下配置: location ~ .php$ { root /var/www/bbs.dingd.cn; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fas
2017-10-20 04:05:56
2093
原创 PHP的SESSION导致长连接阻塞
最近在开发一个网页版的即时聊天程序,后端采用的PHP。程序会定时轮训服务器,查询有没有新的消息。轮询采用的是长连接。然而遇到一个很奇怪的现象,每次刷新页面总是阻塞很久,一开始考虑难道是服务器的问题?可我是在本地测试的,应该不可能是性能瓶颈。然后反复刷新发现了一个规律:每次刷新阻塞的时间刚好和轮询长连接超时时间一致。总结:是轮询时,此链接阻塞了相同的域名的链接。浏览器会等到此链接技术后,
2017-09-09 18:17:54
863
转载 神经网络入门
以下图文转载于阮一峰博客。转载请保留署名。作者: 阮一峰日期: 2017年7月13日眼下最热门的技术,绝对是人工智能。人工智能的底层模型是"神经网络"(neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能,一定是从它开始。什么是神经网络呢?网上似乎缺乏通俗的解释。前两
2017-08-04 05:23:35
445
转载 WIN10中安装php manager
全部抄来的 因为自己老忘记,记一下。Windows10中自带的IIS:Microsoft-IIS/10.0。然后这个10却让原本支持组件无法安装了,php manager组件安装时提示“必须安装IIS7以上才可以安装”。那是不是真的就没法在新的IIS上安装了呢?显然不是的。自IIS7以来,微软的IIS更改并不大,架构一致,几乎所有IIS7能用的组件都能够在IIS7.7/8/8.5/
2017-07-31 15:43:56
1198
转载 MYSQL子查询和分组查询
一、子查询1、子查询(subquery):嵌套在其他查询中的查询。例如:select user_id from usertable where mobile_no in (select mobile_no from mobile where mobile_id = '10086');这条SQL语句中,括号内为从mobile表汇总检索mobile_id为10086的所有行中的
2017-07-14 22:53:08
639
原创 C实现LINUX命令行环境下的进度条功能
虽然Linux通过命令行操作时非常方便的,但是有时候那又臭又长的脚本执行过程的各种输出也实在看着乱七八糟,因此用C语言写了一个简单的进度条,因为是根据我自己的项目写的,所以只是单纯的循环进度条,而不是根据百分比显示。大神自己修改哦!#include #include #include #include #include #include #include
2017-07-04 14:30:10
1222
转载 为什么域名解析中CNAME记录和MX记录不能共存
技术剖析RFC 1034(http://tools.ietf.org/pdf/rfc1034)章节3.6.2中指出:If aCNAME RR is present at a node, no other data should be present; this ensuresthat the data for a canonical name and its aliases cannot
2017-06-22 14:28:31
6337
转载 Andorid webview 常见问题汇总
我们在native与网页相结合开发的过程中,难免会遇到关于WebView一些共通的问题。就我目前开发过程中遇到的问题以及最后得到的优化方案都将在这里列举出来。有些是老生常谈,有些则是个人摸索得出解决方法。下面就是整理得到的些干货。1.加快HTML网页装载完成的速度默认情况html代码下载到WebView后,webkit开始解析网页各个节点,发现有外部样式文件或者外部脚本文件时,会异
2017-06-05 17:47:22
518
原创 简单几步 对Liunx服务器的宽带进行测速
第一步,下载脚本:wget -O cs https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py第二步:移动脚步到/bin/方便全局执行mv cs /bin/给个小权限chmod 0777 /bin/cs然后直接执行cs就能测速啦:cs结果大致如下:Retrieving
2017-06-05 00:34:17
1892
原创 C实现的 CENTOS宽带监控小程序
Centos服务器宽带监控程序,其他Liunx系统请自己测试哦! 使用方法: 首先在新建/etc/rate.d/目录 并且赋予0777权限 运行本程序 会在上述提到的目录中 创建 hour.json 和 minute.json 文件 前者记录 当天24小时 的宽带流速 后者记录 30分钟以内宽带流速(均为平均值) RX是下行 TX是上行 对应的数据 *8/1024/1024 得到即为 Mbps/s 数据以JSON的格式保存 程序有诸多不完善之处 还望大虾自己研究 修改
2017-05-24 23:29:31
1383
原创 数据库密码忘了怎么办?CENTOS7下面重置mysql数据库密码的办法
我们在平常使用mysql的时候,有时候难免会忘记自己设置的密码,亦或者是数据库被人修改了密码,这时候我们要如何在不知道数据库密码的情况下,修改数据库密码呢?首先编辑my.ini文件vi /etc/my.cnf找到如下类似如下内容,并填写skip-grant-tables [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/
2017-05-14 01:21:00
9710
5
原创 HTML打开QQ对话窗口
分享一个打开QQ对话框的界面,这个不管对付是否开启了QQ在线状态服务,都能运行,代码如下点击给我发消息亲测,手机网页上也可以正常打开!
2017-05-10 21:40:26
7861
1
转载 开源编程中的性别差异与偏见:女性提交请求更易被接受
研究发现,对比男性和男性在开源社区做出的贡献认可度,几乎所有女性的贡献比男性更易被认可,然而一旦女性性别被确定,她们的付出通常会被拒绝。一位研究这方面且论文相当有权威的北卡罗莱纳州立大学副教授Emerson Murphy-Hill说,“对于计算机编程中存在的性别偏见,有一系列的问题需要关心,但是我们的项目专注于研究一个特定的问题:当在GitHub上提交修改等待接受审核时,存在何种程度上的性
2017-05-10 10:21:14
995
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人