自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(373)
  • 资源 (22)
  • 收藏
  • 关注

原创 腾讯音视频服务的使用体验

腾讯音视频我从2015年就开始使用了,那时候还是从qavsdk1.01版本,刚开那几年错误一大堆,搞了几年了还是错误一堆,都不好意思收钱。刚开始叫互动直播,后来还弄了个随心播,随心播(ilivesdk)就是qavsdk的封装加强版。直到2019年腾讯音视频进行大的改动,命名实时音视频trtc,这是个功能稳定的完善的版本。...

2022-07-03 15:03:26 500 1

原创 使用sqlcipher打开加密的sqlite方法

Sqlcipher加密sqlite数据库之后,使用android版Sqlcipher访问数据库和原生的sqlite几乎一摸一样,只需要在打开数据库的时候设置密码,算法就可以打开

2022-06-28 13:40:06 1803 1

原创 批量转换json到java bean工具说明

之前写了一个小程序,使用java开发,批量把json转换为java bean,直接拷贝到项目中使用。

2022-06-27 18:09:12 776

原创 转换YV12到RGB565图像转换,附YUV转RGB测试

转换YUV420P到RGB565,并写入ddraw表面显存pdst中,先创建转换表,然后把每一个像素进行转换。

2022-06-27 16:44:04 391

原创 大华设备播放过程中设置播放速度

在网络不稳定的时候,控制播放速度总是让人头痛的事情。设置播放速度有两种方法,一种是按照速度进行传递和计算,一种是按照帧率来计算。因为大华的sdk默认使用帧率来计算,如果换算成速率工作量很大,出力不讨好。不如直接调用接口,设置帧率。...

2022-06-27 16:23:58 894

原创 大华sdk使用问题

这是十年前的问题了,大华sdk使用的时候存在速度控制,逆向播放,退出缓慢,定位控制,停止播放画面停留等问题

2022-06-27 16:11:42 2076

原创 axis设备的rtsp setup头中的url不能带参

使用axis服务器发现setup头中,必须把url?之后的参数取消掉才可以通过。也就是说,该消息头不能带参,这可能是那款设备的特例。

2022-06-27 15:53:47 185

原创 从MediaRecord录像中读取H264参数

mediarecorder(H264)的录制数据的开头就包含了SPS和pps参数,分析一下取出来即可,并且相同的设备、相同的配置获取的sps,pps都是相同的。

2022-06-26 14:23:15 976

原创 android列表下拉刷新上拉加载更多实现的几种文件组织方式

’android应用开发来说,列表始终是一个绕不开的论题,每种软件都有自己的实现方式,自己就遇到了几种,xListView, RefreshRecyclerView, BaseRecyclerViewAdapterHelper, SmartRefreshLayout

2022-06-22 15:21:22 666

原创 acmStreamOpen返回值问题

ACM(Audio Compression Manager,音频压缩管理器),它们负责管理系统中所有音频编解码器。只要在系统中注册号解码器就能使用acm解码,应用程序可以通过ACM或VCM提供的编程接口调用这些系统中现成的编解码器来实现音频或视频数据的压缩和解压缩。这东西看上去强大,对使用者却很不友好,不好用。.........

2022-06-21 17:29:36 94

原创 Windows中的wchar_t对应android中的什么编码?(蓝牙传输中)

Windows端连接android蓝牙发送字符串,发送端直接使用wchar_t发送,Android蓝牙接收后显示不正常。到底应该使用什么编码接收呢?

2022-06-14 16:43:27 149

原创 Java Service Wrapper 注意避免内存回收

Java Service Wrapper工具能够将Java程序注册为后台服务,随计算机自动启动,并且可以崩溃重启。以前有个功能希望在后台服务器某个时间定制执行一个任务,后来选用Java Service Wrapper来实现。编写的时候注意内存回收,定时器长时间定时执行就会有问题。.........

2022-06-13 12:56:14 114

原创 在Visual Studio 开发android时使用静态库a项目

前面讲了如何在Visual Studio android开发中使用so文件,那么a文件怎么创建使用呢?

2022-06-10 18:34:31 375

原创 使用Visual Studio 添加和调用动态库SO项目

最近接触Visual Studio开发android库的东西,发现创建并使用C++ so文件和a文件比android studio简化了很多,虽然说as在开发android上还是霸主地位,但是这个方向上,vs还是大有作为的。

2022-06-10 18:18:11 1162 1

原创 尝试使用Visual studio编写Android程序C++的跨平台开发Android

Vs编写android程序看上去有3种:Xamarin,Xamarin-Form(很快就会被MAUI代替), C++的跨平台开发Android。本文先看看官方的解释,然后尝试下C++的跨平台开发Android的使用效果。如果能够解决调试问题的话,在编写c++模块上还是有优势的...

2022-06-08 14:28:48 1424

原创 简化Fragment的权限请求

承接简化activity简化权限,介绍在fragment中简化权限。

2022-06-04 14:40:19 857

原创 简化Activity权限申请的方法

在需要处理权限地方都加入原始的请求和处理太麻烦,有没有好的方法呢?这里有官方的和非官方的处理。

2022-06-04 14:12:15 377

原创 如何看待面试?

人生难免起起伏伏,会遇到各种厌烦的事情,程序员也是。对于面试,送一份安慰自己和他人的心灵鸡汤。

2022-06-02 15:22:02 410

原创 华为外包的感受(CSDN)

对人力外包的认识

2022-06-01 12:03:52 810

原创 外行买笔记本的过程

自己的老爷机已经9年了,已经慢如蜗牛,早该换却一直拖着,直到现在因为疫情,有可能要居家办公,才觉得必要要买了。刚开始自己就是海选要买一台什么样的电脑呢?自己也没谱,只能在茫茫的商品中左看右看,觉得还可以,就放到购物车。最后购物车有好多,够用的,性能好的什么都有。最后和老婆商量,她还是比较明确,不想买个太低端的,也不想买二线品牌,一般店家不够靠谱。我想也是多用几年不好吗。于是把那些太便宜的,非京东自营和二线品牌的拿掉了,又开始了海选。需要指定自己的目标忽然发现自己要订个目标,于是设定了i7,1

2022-03-01 00:08:56 2554

原创 有没有可能没有root权限调用锁屏

问题描述:有次自己手机的电源键不好使了,想要灭屏很麻烦,但是还能有其他方法灭屏吗?还真没找到,能不能写个程序调用吗?我试了好几个接口,但还是没办法,也许只能获取root权限才能实现。以下测试若没有root权限均无效:测试1:测试2:测试3:测试4:测试5:测试6:总结:当前的android sdk环境下难以直接操作电源键,但是可以在有root权限的手机下实现。当前用户的手机基本上没有获取root权限,...

2022-02-01 15:38:00 546

原创 遇到的几个重要的android权限改变

主要简单谈了下遇到的root权限,权限弹窗,分区存储,app上架等权限相关问题

2022-01-26 17:01:35 1990

原创 曾经使用过的chart控件(mschart,XCL-Chart,vue-echart)

问题描述:图形的绘制几乎所有的软件都会多多少少的用到,细数一下chart组件也用过一些了。刚才开始编程的时候,能够使用的chart组件很少,如果是一般常使用的就是微软mschart,它用在数据量不大的时候,或者示意性的图形中。那时候mschart效率不过也有些丑,许多时候还需要自己写chart组件,我当时就用vc写过一个线图和柱图,放在胖客户端或者应用中。后来还接触过证券烛图的绘制,这些都是使用gdi进行的,但从效率来说还是可以的。有一阵cb和delphi比较流行,插件很多,其中也有一些

2022-01-08 22:28:21 1579

原创 android日志的代码定位

介绍每种语言都会有自己的日志系统,用来跟踪系统运行和用户行为,几乎是软件必不可少的东西。在android调试的时候,会发现控制台打印的日志非常繁杂,想找到有用信息并且定位也是件麻烦的事情。当然了,可以使用过滤条件,找到一些有用信息。更多的时候是在写代码的时候,对涉及某一类功能的日志添加必要标识,可以清晰的观察某个业务功能的流程。这里不谈这个。找到了有用的日志,想要定位到打印日志的代码,也是需要费一番功夫的。不过,android或者说java实现这项功能还是比较方便的。对于vc来说,可以使

2022-01-02 14:04:41 1716

原创 浅谈事件接口的一步步简化

早期的时候,并没有接口的说法,那是面向对象程序设计出现之后的事情,开始大家都是使用结构化编程方法。本文就从回调函数开始,捋一下接口的演进过程(这是随文,不当之处敬请谅解)。

2021-12-25 17:15:07 487

原创 C#的内存增长不易通过umdh查询出来

说明UMDH 的字面意思是The user-mode dump heap utility (用户模式转储堆实用程序)它是一款轻量级的内存泄露分析工具。以前使用过umdh查询过vc上的内存泄漏,通过比较的方法,比较出一段时间之后,内存的增长情况。但是c#可以使用这个工具吗?我写了一个简单c#app,不要内容如下:c#测试代码 public class MyThread { public void Thread1() {

2021-12-12 23:51:48 221

原创 GridLayout,LinearLayout,FlowLayout布局一组按钮或(radio checkbox)选项和并设置状态

说明:在android中会用到一组选项布局的问题,可以使用GridLayout,LinearLayout,FlowLayout等多种布局。如果容器内按钮或(radio checkbox)选项较多,使用LinearLayout就比较繁琐。可使用GridLayout替换LinearLayout以便把多个选项放到一个容器内。但如果每个按钮长度不一致,就会造成对齐问题,有些列很长,有些列很短,这样布局长短便不好把握。还有一种方式使用自定义的流式布局TagFlowLayout或WarpLinear

2021-12-11 19:39:06 1459

原创 当显示PopupWindow时如何设置透明度

在android中展示PopupWindow时设置透明背景的流程:1、点击view,更改view的状态(展示状态),然后弹出popwindow。弹出popwindow的同时,设置背景为半透明。2、操作或查看后关闭,关闭的同时回复view状态(原始状态),同时设置背景为不透明状态。例子: private MyPopupWindow popupWindow; private void showPopupWindow(int type) { if (popupWind..

2021-12-11 18:11:19 2799

原创 C中使用宏处理双向链表的经典例子

说明:这是一个在开源代码osip中使用的双向链表宏代码,堪称经典。这里贴出其中代码first_element是一个双向链表的元素指针,并不分配空间。element是一个占用空间的实际元素。从链表删除元素并不释放元素空间代码:#define REMOVE_ELEMENT(first_element, element) \ if (element->parent==NULL) \//element是头元素 { first_element

2021-12-04 17:13:21 970

原创 VC抛出带GetLastError()错误的异常

说明:十几年前,自己还在使用VC,有些地方需要特别注意,如果进入该逻辑就应该抛出异常。转发winrtp中抛出异常函数,在不符合逻辑的地方,直接写入MTVERIFY("这个地方有问题");要说它有什么特别之处吗?我觉得是它的宏定义很有特点。代码:/* *MtVerify.h *Error handing for application in "multithreading applicationgs in win32" */ #pragma comment(lib,"USE

2021-11-27 22:02:48 122

原创 android使用retrofit上传文件中包含中文的处理方法

说明:使用Retrofit上传文件,如果选择的上传文件名file.getName()包含中文会出现错误,需要进行编码.addFormDataPart("file",URLEncoder.encode(file.getName(), "utf-8"), fileBody)可能出问题的代码: public static Flowable<UploadModel> upload(int userId, String session, File file, UpLoadPr.

2021-11-27 21:38:30 2117

原创 VC中将中英文混合的字符转unicode的例子

在2005遇到的一个例子,记录下来的。一段有趣的程序:有个需求:需要将中英文混合的字符从GPRS模块中发出去,把“M中?”转换成unicode代码放在outmsg中后,需要加一个“ctrl+z”即“^z”作为结束符通知模块发送。代码:下面例子先行测试: CString str="M中?";//多字节 WCHAR szWideBuffer[20];//宽字节空间 memset(szWideBuffer, 0, sizeof(WCHAR) * 20);//初始化 MultiByte

2021-11-27 20:37:10 144

原创 慎用try...catch捕捉异常(原则)

问题描述:经常见到有人动不动就使用try catch语句,这样是一种偷懒的态度。一方面,有些语句根本就不会存在异常,还有些时候,只是把问题隐藏了,不愿意思考引起问题的原因,即便不会出现异常,也有可能出现非异常逻辑错误或几率性问题。自己在代码中很少使用try,除非使用第三方工具。需要捕捉错误,一般都是逻辑错误,如果真的没有逻辑错误,也根本用不上捕捉语句。原则:如果能避免异常,先进行避免,认真考虑各种情况和处理方法。 如果不可避免,确定要捕捉什么,并且确保捕捉到的异常类型没有错

2021-11-22 13:48:53 493

原创 当年的扒拉oSIP代码的经历

描述:2005年的时候,还没有软件的集成度还没现在那么高,自己也年轻,曾经预研过sip,因为也只是自己一个人在那里鼓弄,最后的结果也没有真的应用到产品,而是使用了第三方插件intellIPhoneSDK。这个项目要实现什么功能呢?就是需要在项目中可以打电话到对方手机。对这个功能实现的只有自己一个人,经理对我很支持,在业务逻辑方面做支撑。一共经历3各阶段,winrtp阶段,osip阶段,intellIPhoneSDK阶段。

2021-11-22 13:06:09 325

原创 TextView上使用inputType=“textMultiLine“问题

问题描述:发现点击ll_group的时候,如果点击位置在TextView上,无法触发contentBinding.llGroup.setOnClickListener(this::socialGroup); private void socialGroup(View view) { if (FastClick.running()) return; }查看发现此TextView使用了(android:inputType="textMultiLine")属性,...

2021-11-21 11:46:21 2751

原创 android studio中遇到资源错误Resource compilation failed怎么弄?

问题描述:在使用android studio编写代码的时候出现下面的问题FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':doctormodule:compileDebugLibraryResources'.> A failure occurred while executing com.android.build.gradle.tasks.CompileLibra

2021-11-21 11:34:30 6267

原创 Failed to save settings. Please restart Android Studio的问题

发生背景:Android studio安装使用问题:电脑坏了之后,换台机器的时候,直接拷贝android studio覆盖原有的程序,删除了C:\Users\Administrator\AppData\Local\Android文件夹下的sdk,然后重新启动Android studio,无法打开setting对话框,出现错误Failed to save settings. Please restart Android Studio。同时在android studio中无法打开任何文件。尝

2021-11-13 13:24:58 1476

原创 建立在RecyclerView基础上的含编辑框动态列表项增减异常

android中,会碰到需要动态实现列表项的增减,我选择了RecyclerView作为容器,后来出现了一个问题,再添加删除的时候,会出现列表项编辑框文字和输入的内容对应不上的情况。几经周折,终于调试好了,关键的部分就是这几个: 1、RecyclerView.ViewHolder的内容会根据情况动态调整 2、RecyclerView会与一个数据容器对应起来, 3、数据容器的数据变化需要及时反应到ViewHolder中的edit中。 3、每次修改ViewHolder中的edi...

2021-11-07 21:13:17 96

原创 ERROR:: AAPT: error: resource style/Widget.AppCompat.TextView not found. 原因及解决

把android项目从support-v4升级到androidx之后,出现错误ERROR:: AAPT: error: resource style/Widget.AppCompat.TextView (aka com.example:style/Widget.AppCompat.TextView) not found.一头雾水,在网上搜索,有人说是子项目和主项目版本不匹配,使用如下方式统一,统一之后,发现还是不行。除此也搜索不到什么有用的东西,根据经验,找不到答案,要么是问题太...

2021-11-07 09:55:07 3202

原创 根据过往例子,提醒写代码要注及时检查,不要等到后来

在程序开发中,调试的时间总是大于编码的时间,更多时候,我们程序员不是在写功能,而是在调试。作为程序员,不知道喜欢按自己的想法优化代码算不算职业病。但是不管怎么说,每一次更改代码都需要进行必要的检查,而不能过程中不做任何检查,总想把所有的东西做完了再去检查。如果不及时做检查,后果就是,因为走得太远而难以纠正,甚至付出巨大的时间成本。一个不经意的小检查,可能再后来带来若明奇妙的问题,头发掉光了也不容易找到问题所在。例如, public List<PopupwindowMode...

2021-11-06 22:40:24 56

nodejs-express-sequelize-mysql 项目结构图

使用nodejs express创建后台项目所使用的项目结构

2023-02-05

批量转换json到java类工具

将json转换为javebean的工具,封装jsonschema2pojo,用户可以修改配置文件json2Beans.json,然后运行Json2JavaBean2.bat直接生成对应类。 能够批量转换json为bean,直接拷贝到项目中使用。 提醒: 需要提前安装java sdk。 如果应对restful的请求和回应,输入和输出类可以放在同一个包里。否则json文件路径,class名,package名需要一一对应,避免出现同一个包里有相同的类。 具体使用方法参考 https://mp.csdn.net/mp_blog/creation/editor/125489040

2022-06-27

使用批处理获取字符串的文字

例如:截取从"@dimen/mm_到"的内容 android:paddingLeft="@dimen/mm_30" 获取到30 android:paddingLeft="@dimen/mm_30f" 获取到-30 使用方法 @echo off chcp 65001 cd "%~dp0" %~d0% @REM 分别测试 @REM "@dimen/mm_30f" 负数 @REM "@dimen/mm_30" 正数 @REM @dimen/mm_30 其他 set line_str1=android:paddingLeft="@dimen/mm_30f" set token_start1=mm_ set token_len1=3 call str_token_file.bat "%line_str1%" %token_start1% %token_len1% echo 在字符串"%line_str1%"中的获取的数据为%ERRORLEVEL% goto :eof

2021-09-21

rar_split.bat

使用winrar,把一个大文件进行分卷rar压缩。 把文件拖动到bat文件上,可指定每个rar的大小。 用在对大文件分割上传的情况。

2020-03-17

win10下弹出内存不足的word文档.rar

在win10下面打开某些word文档提示“内存或磁盘空间不足”,有时候非常的烦人,只有使用word,怎么要消除不了。 这些文件一步步的删除内容,看看到底问题出在什么地方。(关联文档-排查在win10下面打开某些word文档提示内存或磁盘空间不足的原因)

2020-03-11

ffmpeg 录像照片瘦身.rar

现在的手机分辨率和帧率普遍比较高,一分钟的手机视频100M左右,一张普通的图片也有2到6M。对于这些不太重要的视频资料,丢弃又有些可惜,那么仅仅需要保留简单影像即可,我们可以使用ffmpeg.exe对文件进行瘦身,ffmpeg.exe本身没有批处理选项,需要使用bat批处理命令。 这里提供两个批处理文件,实现对mp4和jpg的瘦身,大约瘦身10倍以上。

2019-11-28

timepickerdialog.aar

Android app中,时间选择器是一种常见的弹出框,用户可以从中指定一个具体的时间。这里介绍一款不错的选择插件。来源是腾讯TIM sdk中使用的自定义对话框。 此弹出框可以设定年月日时分秒中,哪些日期的显示,然后动画显示。源码中可以调节显示方式。我把它封装为aar,可以下载使用。

2019-11-18

winsocket写的udp发送日志到服务端的客户端和服务端代码

使用此方法,好处是不会阻塞,当日志量比较大的时候能够快速反应。坏处就是udp发送大于最小传输单元的数据,或把不相关的数据连续密集发送,很可能造成数据错乱丢失。

2019-08-14

android电子书阅读程序

现阶段主要内容 1)、包含了中国古代4大名著,唐诗300,几篇著名古代散文 2)、几个文学相关新闻组地址可以查看 有时间会有更多内容添加进去。

2018-09-29

使用tls生成腾讯云的密钥

关于使用腾讯云音视频需要帐号,有关部分可是查看他们的文档,这里只介绍一个小工具。参考《TLS独立模式帐号集成接入文档》。 参考我的blog 《使用tls生成腾讯云的密钥》

2018-03-31

2005年VC面试题汇总

(这是在2005年刚来深圳找工作时,碰到的常见面试题,聊作参考)。

2017-12-26

KDE桌面环境综览—附感想

Linux桌面环境综览,这不过是个读后感,因为blog编辑太麻烦,所有放在这里了。

2017-12-22

BeneCheck使用蓝牙模块BLE获取血糖尿酸胆固醇数据-

BeneCheck获取血糖值的代码

2016-08-29

benecheck血糖仪BLE分析公式

按说明书检查编码器,插入试纸,启动app,滴血检验,检测结果会通过notify的形式传递到蓝牙的接收回调函数onCharacteristicChanged中。 使用该公式进行分析

2016-08-29

小型超市管理

2003自娱自乐的程序,这个程序是自己第一次独立设计一个小型系统,初步使用rose工具,初步建立起系统和文档的概念。

2011-11-13

选课程序例子

2003年写的实验性的小程序,使用VC,ODBC,Access数据库技术,可以作为VC和数据库操作入门参考。 当时自己也是自己摸索的,写的很浅,也比较简单,就是几个数据表和对话框。 压缩包里有源代码,数据库文件需要加入到ODBC数据源中,和可执行文件。

2011-11-13

IE屏幕取词dll

俺在2005年写的屏幕取词小程序,改了一些只读取浏览器、记事板中的()中间的文字,写入moText.dat文件里。 具体,打开mo.exe,单击菜单"测试",然后使用记事本打开一个txt文件,鼠标移动到括号里面,比如"(XXXX)", 钩子函数就会把(XXXX)写入motext.dat里面,覆盖掉以前的词汇。 附带使用钩子dll的vc例子

2011-11-06

简单折线图和柱状图控件

早年写的一个chart,很简单。能显示折线图和柱状图

2011-11-06

jrtp 一秒10个关键帧发送测试 EXE

以前写的一个测试程序,抓取屏幕,使用ffmpeg4的420p压缩,然后使用jrtp发送,另一端接收并播放。简单测试程序。

2011-11-06

使用共享内存在不同程序直接传递数据

以前写的小程序,一个程序抓取屏幕,显示并写到共享内存,然后另一个程序读出共享内存数据显示出来。

2011-11-06

简单的下载一个页面中所有链接的html文件

使用vc的http类下载一个网页中所有的url文件,用来脱机浏览。

2011-11-06

从本机的3000端口接收日志

从网络接收日志并存储,查询。一般用来本机调试。 SOCKET nsockSend;// global sock for debug log nsockSend=socket(AF_INET,SOCK_DGRAM,0);// UDP struct sockaddr_in addrSendMinitor; memset(&addrSendMinitor,0,sizeof(sockaddr_in)); addrSendMinitor.sin_family = AF_INET; addrSendMinitor.sin_addr.s_addr = inet_addr("127.0.0.1");// 从配置文件获取 IP addrSendMinitor.sin_port = htons(3000); // local port memset( &(addrSendMinitor.sin_zero),0,8); char * pInfo = (char *)sendcontentbuf; int ret=sendto(nsockSend, pInfo, (int)strlen(pInfo)+1,0, (const sockaddr *)&addrSendMinitor, sizeof(addrSendMinitor));

2011-11-05

200年写的VC屏幕取词dll使用例子

俺在2005年写的屏幕取词小程序,改了一些只读取记事板中的()中间的文字,写入moText.dat文件里。 具体,打开mo.exe,单击菜单"测试",然后使用记事本打开一个txt文件,鼠标移动到括号里面,比如"(XXXX)", 钩子函数就会把(XXXX)写入motext.dat里面。 呵呵,本来是读取ie里面()里文字的,现在取消了。

2011-11-04

空空如也

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

TA关注的人

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