自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 Java特殊语法糖记录

【代码】Java特殊语法糖记录。

2024-04-14 11:23:28 145 1

原创 android基础学习【六、控件(RecyclerView)】

RecyclerView在使用该控件之前,需要在build.gradle中添加如下代码:implementation 'androidx.recyclerview:recyclerview:1.1.0'与ListView不同:可以自定义布局需要写监听接口需要定义MyViewHolderMainActivity.javapublic class MainActivity extends AppCompatActivity { private List<Bean> da

2021-05-12 21:58:00 181

原创 设计模式实例小结

Adapter设计模式ListView自定义控件

2021-05-12 16:13:51 110

原创 android基础学习【五、控件(ListView)】

ListViewCannot resolve symbol ‘bean’ 解决办法: File->Invalidate Caches/Restart清除缓存重启

2021-05-12 16:10:45 140

原创 android基础学习【四、基础布局(TableLayout、RelativeLayout、ConstraintLayout)】

TableLayoutTableLayout可与表示一行的TableRow配合使用,TableLayout有如下属性:android:stretchColumns:当该行不被占满时,使用该属性指定可以被拉伸的列。android:shrinkColumns:当控件超出显示范围时,使用该属性指定可以被压缩的列。android:collapseColumns:指定被隐藏的列。<TableLayout xmlns:android="http://schemas.android.com/a

2021-05-11 10:20:40 172

原创 android基础学习【三、基础布局(LinearLayout、RelativeLayout、FrameLayout)】

LinearLayout<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" android:gravity="center_vertical" android:d

2021-05-10 21:23:34 277 2

原创 android基础学习【三、基础控件(ToolBar、AlertDialog、PopupWindow)】

简单属性设置如下图所示 <androidx.appcompat.widget.Toolbar android:id="@+id/tb" android:background="#ffff00" app:navigationIcon="@drawable/ic_apps_black_24dp" app:title="test" app:titleTextColor="#

2021-05-10 15:19:20 184 1

原创 android基础学习【二、基础控件(ImageView、ProgressBar、Notification)】

常用控件ImageView <ImageView android:src="@drawable/nowifi" android:scaleType="fitXY" android:layout_width="200dp" android:layout_height="100dp"/>ctrl + B查看定义 <enum name="matrix" value=

2021-05-07 23:21:49 129 2

原创 android基础学习【一、Button】

选择器简介stateListDrawable是Drawable资源的一种。通过设置button的background属性设置为该资源即可实现在按钮处于不同状态下的按钮颜色或背景。实现在Drawable目录下创建xml文件<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item andro

2021-05-07 10:47:44 95 1

原创 C++细节总结

类型比较unsigned类型int nlen = needle.size();if(needle.size() == 0) return 0;while(i <= haystack.size() - nlen){}haystack.size()返回值为size_t即unsigned类型比较运算符会自动转换为unsigned类型比较haystack.size() - nlen结果是正数double类型double类型之间比较需要考虑其小数点后的位数,例如1.0有可能 不等

2021-04-20 11:08:21 57

原创 HTTP的发展历史

http的发展历史https://blog.csdn.net/liujianfei526/article/details/53289350HTTP/0.9只有GET命令,建立连接后只能回应HTML格式的字符串HTTP/1.0引入POST命令和HEAD命令、状态码(status code)、多字符集支持、多部分发送(multi-part type)、权限(authorization)、缓存(cache)、内容编码(content encoding)等。关于字符的编码,1.0版规定,头信息

2021-03-13 13:17:05 87

原创 【CC3200】【eegRudp】OSI_OK重复定义(枚举类型问题)

问题描述在编译udp库代码时出现了OSI重复定义问题,提示如下:OSI_OK = 0, ^"F:\ti\CC3200SDK_1.1.0\cc3200-sdk\oslib\osi.h",59 Error[Pe040]: expected an identifier原因探究由错误代码来看,错误是由OSI_OK重复定义导致,那么注销osi.h下的代码如下:typedef enum{ //OSI_OK = 0, OSI_FAILURE = -1, OSI_OPERATION_F

2021-03-01 19:49:07 328

原创 【FFmpeg】 H.264基础

H.264简介单纯的宏块发送是无序的,h.264编码对宏块进行结构化的处理,它制定了相互传输的格式,将宏块有组织,有结构有顺序的形程一系列码流,这种码流可以通过网络流进行传输,而也可以封装成一个文件来保存。在H264标准中有一个叫做“Annex-B”的字节流格式,他是H264编码的主要字节流格式。H.264网络传输header起始码0x 00 00 00 01或者0x 00 00 01作为分割符H.264的编码序列包括一系列的NAL单元,每个NAL单元包含一个RBSP(Raw Byte Sequ

2021-02-27 21:59:30 172

原创 【CC3200】【bug:20120225】semihost浅析与Bug解决

semihost半主机模式printf可以向控制台输出,scanf可以从控制台获取输入,这里的printf/scanf都是标准库函数,利用操作系统的这些函数,我们可以很方便的调试程序。在嵌入式设备上(如stm32单片机平台上)开发工具(如MDK/IAR)也可以使用这些输入输出函数。嵌入式设备一般的使用仿真器,如常见Jlink/ulink,可以实现烧录,单步,下断点,查看变量,等等。仿真器将PC机和单片机连接器来。如果在IAR WorkBench中设置了半主机模式,标准库中的printf实际上调用 fpu

2021-02-25 19:42:42 545

原创 【CC3200】【eegRudp】使用CMake组织工程

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-02-25 00:09:11 206

原创 【github】【eegRudp】常用命令

create a new repository on the command lineecho “# eegRudp” >> README.mdgit initgit add README.mdgit commit -m “first commit”git branch -M maingit remote add origin https://github.com/EEGWIFI/eegRudp.gitgit push -u origin mainpush an existing

2021-02-24 11:56:53 73

原创 【github】github访问速度太慢问题

修改本地电脑系统 hosts 文件C:\Windows\System32\drivers\etc,直接在最后加入以下代码,对应IP可以在网站 https://www.ipaddress.com/ 中找到:192.30.253.112 github.com192.30.253.113 github.com151.101.184.133 assets-cdn.github.com151.101.185.194 github.global.ssl.fastly.net打开命令行 使用ipconfig .

2021-02-23 17:25:58 1490 2

原创 【eegRudp】UDP网络编程

UDP报文大小0-1617-32源端口目的端口长度校验值在链路层,由以太网的物理特性决定了数据帧的长度为(46+18)-(1500+18),其中的18是数据帧的头和尾,也就是说数据帧的内容最大为1500(不包括帧头和帧尾),即MTU(Maximum Transmission Unit)为1500;在网络层,因为IP包的首部要占用20字节,所以这的MTU为1500-20=1480;在传输层,对于UDP包的首部要占用8字节,所以这的MTU为1480-8=1472;(U

2021-02-22 00:07:59 88

原创 FFmpeg开发(四):音视频同步与音视频播放器

时间戳1、I 帧/P 帧/B 帧 I 帧:I 帧(Intra-coded picture, 帧内编码帧,常称为关键帧)包含一幅完整的图像信息,属于帧内编码图像,不含运动矢量,在解码时不需要参考其他帧图像。因此在 I帧图像处可以切换频道,而不会导致图像丢失或无法解码。I 帧图像用于阻止误差的累积和扩散。在闭合式 GOP 中,每个 GOP 的第一个帧一定是I 帧,且当前 GOP 的数据不会参考前后 GOP 的数据。P 帧:P 帧(Predictive-coded picture, 预测编码图像帧)是

2021-02-21 20:11:52 193

原创 【FFmpeg】ANativeWindow sws_scale视频大小适配问题

格式转换函数简介FFmpeg里面的sws_scale库可以实现的功能有:1.图像色彩空间转换;2.分辨率缩放;3.前后图像滤波处理。函数// 初始化sws_scalestruct SwsContext *sws_getContext(int srcW, int srcH,enum AVPixelFormat srcFormat,int dstW, int dstH,enum AVPixelFormat dstFormat,int flags,SwsFilter *srcFilte

2021-02-20 21:25:26 561

原创 FFmpeg开发(三):音频播放器的实现

OpenSL基础OpenSLES接口可以直接载Native层处理音频数据,减少了Java层到Native层在采集、播放和编解码过程中的数据拷贝。OpenSLES文档:OpenSL_ES_Specification1.1.pdf优点C语言接口,使用NDK,翻边深度优化,例如NEON优化。没有垃圾回收机制,需要自己实现垃圾回收支持PCM数据采集支持PCM数据的播放Objects 和 Interfaces官方为每一种Objects都定义了一系列Interface先通过GetInterfa

2021-02-19 23:51:20 299

原创 【FFmpeg】源码分析:avcodec_send_packet

旧API使用avcodec_decode_video2来进行写法: //旧API需要循环获取视频帧,需要自己实现video_queue while (av_read_frame(fmt_ctx.get(), &pkt) >= 0) { if (pkt.stream_index == video_stream_index) { //packet_queue_put(&video_queue, &pkt); } e

2021-02-17 19:25:21 772

原创 FFmpeg开发(二):源码架构分析基础开发

源码架构分析

2021-02-17 16:22:20 165 1

原创 【FFmpeg】【bug: #20210217】C++模版多重定义问题

在我的音视频项目中使用了模版特化的RAII,问题描述在对音视频上下文进行封装的时候遇到了重定义问题(即模版特化导致多重定义链接错误),代码如下(AVGuard.h)://模版特化的安全退出函数//AVFormateContexttemplate <>AVGuard<AVFormatContext>::AVGuard(){ m_ctx = avformat_alloc_context();}template <>AVGuard<AVForma

2021-02-17 13:48:31 120 1

原创 FFmpeg开发(一):mac项目环境搭建

FFmpeg简介FFmpeg 有六个常用的功能模块:libavformat:多媒体文件或协议的封装和解封装库,如 Mp4、Flv 等文件封装格式,RTMP、RTSP 等网络协议封装格式;libavcodec:音视频编解码库;libavfilter:音视频、字幕滤镜库;libswscale:图像格式转换库;libswresample:音频重采样库;libavutil:工具库;Android C开发...

2021-02-12 01:41:01 2440 2

原创 400.第N位数字

在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 位数字class Solution {public: int findNthDigit(int n) { long digits = 1,base = 9; while(n - digits * base > 0) { n -= digits * base; digits ++; .

2021-01-17 22:17:54 272

原创 买卖股票的最佳时机(交易次数限制)

买卖股票的最佳时机(交易次数限制)给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。状态转移方程buy[i][j]=max{buy[i−1][j],sell[i−1][j]−price[I]}sell[i][j]=max{sell[i−1][j],buy[i−1][j−1]+price[i]}class Solution {public: int maxProfit(vector<int&g

2021-01-10 14:41:01 715

转载 C++新特性

C++2b 功能特性请注意,随 C++2b 标准草案的逐步推进,此列表可能会发生变化。C++23 核心语言功能特性C++23 功能特性提案GCCClangMSVCApple ClangEDG eccpIntel C++IBM XLC++Sun/Oracle C++Embarcadero C++ BuilderCrayPortland Group (PGI)Nvidia nvcc[折叠](有符号) size_t的字面量后缀P0330R8

2021-01-03 19:02:55 724

原创 2020-9-21服务器问题记录

服务器问题记录错误描述:解析http报文时,当使用get方式传输或者使用post字段并且content-lenght = 0时,服务器运行正常,而当使用post字段并且content-lenght 部位0时,服务器解析http出错,下面贴出这部分源代码:/*prase header*/ while(m_read_buf[0] != '\n' && m_read_buf[1] != '\n'){ int len = Readline(m_sockfd,m_read_buf,MAXLI

2020-09-21 17:34:39 105

转载 内存泄漏检查工具

C++内存泄漏检查工具——Valgrind(–tool = memcheck)在写大型C/C++工程时难免会发生内存泄漏现象,系统编程中一个重要的方面就是有效地处理与内存相关的问题。你的工作越接近系统,你就需要面对越多的内存问题。有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦。 常见的内存问题一共七种:1. 动态内存泄露;2. 资源泄露,比如文件指针不关闭;3. 动态内存越界;4.数组内存越界;5.动态内存double free;6.使用野指针,即未初始化的指针;7.释放野指针,即未初始

2020-09-20 18:04:02 1974

原创 青蛙跳台阶问题总结

青蛙跳台阶问题总结一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。取模 1e9+7(1000000007)。PS:运行时间为10000次 50阶的结果。time_test.cpp文件里有相应代码。经典递归方法运行时间: ∞class Solution {public: int numWays(int n) { if(n == 0 || n == 1) return 1; return (numWays(n

2020-09-17 16:09:10 141

原创 1.redis数据类型实战

listtips 7 :redis应用于最新消息的展示#利用list性质应用于最新消息的展示rpush logs a1..lrange logs 0 -1set存储大量数据,在查询方面提供更高的效率基于hash变形。(不允许有重复)#添加数据sadd key member1 []#获取全部数据smembers key#删除数据srem key member1 []#集合数据总量scard key#判断集合中是否包含指定数据sismember key member#随机获

2020-09-16 16:01:47 114

原创 shared_ptr知识点总结

shared_ptr详解shared_ptr实现(基于map)template<typename T>class mshared_ptr {public: //构造 mshared_ptr(T *ptr = nullptr); //析构 ~mshared_ptr(); //拷贝构造 mshared_ptr(mshared_ptr<T> &src); //赋值重载运算符 mshared_ptr& operator = (mshared_ptr&l

2020-09-16 15:51:17 348

原创 mysql 密码 配置Access denied for user ‘root‘@‘localhost‘

Ubuntu mysql 无密码登入安全模式登入MySQL停止mysql进程sudo /etc/init.d/mysql stop创建mysqld文件 sudo mkdir -p /var/run/mysqld给文件赋权 sudo chown mysql:mysql /var/run/mysqld进入安全模式 sudo /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &无

2020-09-15 14:59:20 100

原创 Quill Plan

"低性能"服务器编程(Quill Plan)针对向我一样C++初学者,Quill Plan 由浅入深,慢慢剖析服务器编程。项目地址 : https://github.com/PushedChris/-Quill-Plan-

2020-09-14 21:56:23 67

转载 图论3解

力扣787输入: n = 3, edges = [[0,1,100],[1,2,100],[0,2,500]]src = 0, dst = 2, k = 1输出: 200从城市 0 到城市 2 在 1 站中转以内的最便宜价格是 200,如图。城市航班图:#mermaid-svg-Bs7AbXg3OXMz2E3A .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fi

2020-09-13 23:47:09 116

原创 15.s主从复制

主从复制步骤master将改变记录到二进制日志(binary log) ,这些记录过程叫二进制日志事件。slave将master的binary log event拷贝到它的中继日志slave重做中继日志中的事件,将改变应用到自己的数据库中,MySQL复制是异步且串行化的。基本原则一(slave)对多(master)...

2020-09-09 17:27:02 62

原创 14.mysql锁机制

MySQL锁机制锁是计算机协调多个进程或线程并发访问某一资源的机制例如在淘宝买商品的模型,只有一件商品时,如何解决谁买到商品的问题这里要用到事务,先从库存表中取出物品数量,然后再插入订单,付款后插入付款表信息,然后再更新商品数量,再这个过程中使用锁可以对有限的资源进行保护,解决隔离和并发的矛盾。锁的分类按数据操作的类型分读锁共享锁,针对同一份数据,多个读操作可以同时进行而不相互影响写锁排它锁,当前写操作未完成前,会阻断其他写锁和读锁从对数据操作的粒度来分表

2020-09-09 17:26:19 71

原创 13.s日志查询

mysql慢查询慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中相应时间超过时间阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。具体指运行时间超过long_query_time值的SQL。则会被记录到慢查询日志中,long_query_time的默认值为10(s),默认MySQL数据库没有开启慢查询日志SHOW VARIABLES LIKE '%slow_query_log%'#如果要永久开启,就要修改配置文件my.cnfs

2020-09-09 17:25:44 188

原创 12.s查询截取分析

查询优化观察,至少跑一天,看看生产的慢SQL情况开启慢查询日志,设置阈值,比如超过5秒钟的就是慢SQL,并将它抓取出来explain+慢SQL分析show profile运维经理 or DBA,进行数据库服务器参数的调优===总结慢查询的开启并捕获explain+慢SQL分析show profile查询SQL在mysql服务器里面执行细节和生命周期情况SQL数据库服务器的参数调优优化原则:小表驱动大表 ####################原理(RBO)########

2020-09-09 17:24:27 107

空空如也

空空如也

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

TA关注的人

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