面试相关
1 线程通信方式
传递回主线程:handler,runOnUiThread,View.post,AsyncTask;
不限制线程: EventBus,子线程创建Loop,使用子线程的handler发送
2 使用过的跨进程通信方式
messenger socket aidl
其他 bundle contentProvider 文件系统 broadcast
3 Activity四种启动模式
4 Activity和Fragment之间的通信
ViewModel 构造方法 接口回调
5 安卓动画
帧动画,补间动画,属性动画(值动画)
帧动画性能差,图片过大可能OOM,解决办法,使用Lottie
补间动画不会改变View的真实位置,因此View的点击动作还相应在之前的位置
属性动画:安卓3.0以后
博科
1 EventBus如何切换线程
2 EventBus反射生成了什么
4 为什么使用线程池
3 Glide如何监听生命周期,Glide缓存策略
工作中遇到的问题记录:
通过registerActivityLifecycleCallback ...
Qt入门
Qt内存回收机制
在Qt中在堆上创建对象并且是QObject的子类(包含间接子类),构造方法传入父对象,创建时会把自己加入到父对象的children中,释放时先调用子对象的析构方法。
停靠窗口(Dock Widget)
docked:这个属性是否允许停靠窗口停靠
单行文本: LineEdit
弹簧:只有在布局中才能起作用,弹簧可以设置固定宽度,sizeType属性 expanding表示可以伸缩的 Fixed表示固定的
布局的 layoutSpacing属性表示两个空间之间的间隔,默认是6个像素
QPushButton使用
1 作为普通按钮,可以显示图标和文本
2 设置checkable属性,使其持续性处于被选中状态,开关
3 关联一个菜单, 点击按钮菜单弹出 setMenu(QMenu *menu); 倒三角图标
4 setDefault()绑定按钮和回车键,点击回车等同于点击按钮
设置QPushButton的点击动作两种方法:
1 使用可视化工具右键点击“转到槽”, 选中clicked
2 使用connect方法连接:
不可选中按钮
connect(ui->normalB ...
TCP入门
TCP首部
Source Port和Destination Port:分别占用16位,表示源端口号和目的端口号;用于区别主机中的不同进程,IP地址用来区分不同主机的,源端口号和目的端口号配合上IP首部中的源IP地址就能确定为一个TCP连接
Sequenece Number: 32 位用来标识从TCP发送端向TCP接收端的数据字节流,他表示在这个报文中的第一个数据字节流在数据流中的序号;主要用来解决网络乱序的问题。
Acknowledgment Number:32位确认序号包发送确认的一端所期望收到的下一个序号,因此,确认需要应该是上次已成功收到数据字节序号+1,不过只有当标志位中的ACK标志(下面介绍)为1时该确认序列号的字段才有效。主要用来解决不丢包的问题。
Offset:该字段表示TCP所传输的数据部分应该从TCP包的哪个位置开始计算。也可以当成TCP的首部长度。字段长度4位。标记的TCP首部长度位字节。
保留:4位,该字段主要为以后扩展使用。一般设置为0.
TCP Flags(Control Frag):TCP首部中有6个比特,它们总的多个可同时被设置为1,主要是用于操控TCP ...
ffmpeg+sdl播放视频代码
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181#include <iostream>extern "C" {#include &quo ...
C++入门
C++动态开辟空间的方式mallocint *pa = (int )malloc(sizeof(int));
malloc方法开辟的空间的返回的类型为 void*类型,需要强转为目标类型,空间中的内容为随机值。
malloc方法开辟一块空间
callocint pb = (int)calloc(2, sizeof(int));
calloc方法开辟”N”块空间(N等于参数一),空间中的内容为0;
newint *a = new int; //开辟空间
delete a; //释放a
new 开辟空间相当于malloc 实际上是对malloc的一层封装,delete是对free的一层封装。
开辟的空间需要及时释放
构造方法Stu stu1;
会隐式调用无参的构造方法。(注意不要加括号)
如果有多个构造方法,且有参数的构造方法每个参数都有默认值,那么会出现二义性
如果只有一个有参的构造函数,且有参的构造还有均有默认值,那么会调用有参的构造函数。
如果只有有参的构造函数,且参数没有默认值,会出错
2 构造函数调用时机,当对 ...
FFmpeg入门
FFmpeg的基本组成(1)FFmpeg的封装模块 AVFormat
(2)FFmpeg的编解码模块AVCodec
(3)FFmpeg的滤镜模块AVFilter
(4)FFmpeg的视频图像转换计算模块swscale
(2)FFmpeg的音频转换计算模块swresample
一些常用命令分离音频命令:
ffmpeg -i xxx.avi -vn xxx.mp3
-i表示源文件 -vn表示不转换视频
分离视频命令:
ffmpeg -i xxx.avi -an xxx.mp4
-an表示不转换音频
显示设备 ffmpeg -devices
显示-dshow的设备 ffmpeg -list_devices true -f dshow -i dummy (dummy的意义是打印完毕就结束)
录音命令 ffmpeg -f dshow -i audio=”麦克风阵列 (英特尔® 智音技术)” hello.mp3
录制视频命令 ffmpeg -f dshow -i video=”Integrated Webcam” test.mp4
播放PCM音频文件 ffplay ...
OpenGL 开发环境配置 Visual Studio + GLFW + GLAD
OpenGL环境配置一般选择Win32。我们使用32位环境。
搭建环境操作系统:Windows 10
编译器: Visual Studio 2019
GLAD 库
GLFW 库
配置步骤Step 1. 下载编译好的GLFW库1 下载链接 Download | GLFW
因为64位的总会有一些莫名奇妙的问题,这里选择32的下载。
Step2. 下载GLAD库GLAD的配置与大多数的开源库有些许的不同,GLAD使用了一个在线服务。在这里我们能够告诉GLAD需要定义的OpenGL版本,并且根据这个版本加载所有相关的OpenGL函数。
打开GLAD的 在线服务.,将语言(Language)设置为C/C++,在API选项中,选择3.3以上的OpenGL(gl)版本(我们的教程中将使用3.3版本,但更新的版本也能正常工作)。之后将模式(Profile)设置为Core,并且保证生成加载器(Generate a loader)的选项是选中的。现在可以先(暂时)忽略拓展(Extensions)中的内容。都选择完之后,点击生成(Generate)按钮来生成库文件。
上面为一些配置项的内容。
...
一文帮助你解决EditText的换行问题
很多安卓应用都有一个顶部的搜索栏,如这种
或者这种:这些软件的搜索框都有一个共同点,(应答)没错都在屏幕顶部,谁说的屏幕顶部的,请出去,应该是大都是单行文本。好,开始操作。单行文本嘛,singleline就可以了。什么?废弃了?什么玩意?百度查一查改成InputType = text即可,可是还有个问题,为什么他们的点开搜索栏是搜索按钮,我的点开还是回车样式呢。原来是需要改EditText的 android:imeOptions=”actionSearch” 属性
变成搜索按钮了。那其他的又是什么呢actionDone 默认样式回车actionGo 回车 变 “开始” actionNext 回车变下一步actionPrevious 回车还是回车,输入后点击回车如果还有另一个输入框将会把光标返回到上一个输入框actionSend 回车变 “发送” 文字 懒得截图了
那么问题来了,如何监听到键盘的回车按钮呢
12345678910111213EditText text = findViewById(R.id.et_bar1);t ...
Hello World
Quick Start新建文章1$ hexo new "My New Post"
运行服务1$ hexo server
生成静态文件1$ hexo generate
清除缓存文件 db.json 和已生成的静态文件 public1$ hexo clean
上传到Github123$ hexo clean$ hexo generate$ hexo deploy
删除文章直接删除掉 _post中的文件,然后执行hexo clean 即可