- 博客(31)
- 收藏
- 关注
原创 Android ViewModel
ViewModel 通过 ViewModelStore 和 ViewModelStoreOwner 机制,实现了在配置变化后数据能够保持的效果。它巧妙地利用了 ViewModelStore 的独立生命周期,将 ViewModel 的生命周期与 Activity 或 Fragment 的生命周期解耦,从而避免了配置变化导致数据丢失的问题。这使得开发人员可以专注于业务逻辑,而无需担心配置更改带来的数据管理问题。
2024-10-12 10:24:44
1372
原创 【无标题】
Set的使用场景:无序集合:当你只关心元素的存在与否,而不关心它们的顺序时,Set是一个好的选择。例如,在一个程序中,如果你需要存储一组唯一的标识符,并且不关心它们的顺序,那么Set是合适的。总结来说,如果你关心元素的顺序和重复性,并且需要频繁访问元素,那么List可能是更好的选择。Set(集合):Set 集合中的元素是无序的,且不能包含重复的元素。请注意,虽然TreeSet和TreeMap也保证了元素的排序,但它们是根据元素的自然顺序或自定义比较器进行排序,而不是按照元素的添加顺序。
2024-03-12 07:55:02
414
原创 Android 布局入门基础
【【android基础系列P2】安卓开发UI布局-推荐1.5倍速】https://www.bilibili.com/video/BV1Ht411371u?
2023-09-17 16:09:54
149
原创 C++智能指针使用实例及解析
#include#include#includeclass Task{public:Task(){std::cout<<“base Task construct…”<<std::endl;};virtual void run(){std::cout<<“base Task run…”<<std::endl;}};class TestTask:public Task{public:TestTask(int index){i = index;
2021-03-29 14:24:14
308
转载 CMake学习
假定有vegagis工程,工程的目录结构如下:#--vegagis# |--src 源文件目录# |--gui 界面工程,输出类型:dll,依赖于QT的QtCore、QtGui、QtXml# |--pending 工程中的源文件,不希望加入到工程中# ## 为了实现跨平台运行,win32和linux目录下实现的是同一套接口,win32不编译linux目录,linux下则不编译win32目录,但是工程中包含这两个目录# |--win32 win3
2020-09-03 15:08:03
235
原创 OpenCV库
头文件#include “…/…/common/include/opencv_4_1_0/opencv2/core/mat.hpp”#include “…/…/common/include/opencv_3_4_1/opencv2/opencv.hpp”
2020-08-15 16:10:40
158
转载 图像数据预处理
【数据预处理】:图像去均值:image mean 和 pixel mean转自:https://blog.youkuaiyun.com/weixin_37251044/article/details/81157344版权1.什么是均值?对于每帧图像来说,均值分为两种:image mean 和 pixel mean。image mean:简单的说,读入一张彩色图像,假设是(NN3),这时候,求出image mean的话,就也是NN3,相当于把所有训练集在同一个空间位置上的像素的对应通道求了均值,也就是caff
2020-08-06 15:57:33
1230
原创 CMake编译 杂记
一、include_directories 和 target_include_directories的区别参考:https://stackoverflow.com/questions/31969547/what-is-the-difference-between-include-directories-and-target-include-directorieinclude_directories(x/y):添加头文件搜索目录, 对应的是CMakeLists文件里所有的target,报错include_
2020-08-04 14:36:25
435
原创 git使用帮助
场景一:问题描述在服务器上每次执行git pull,都提示输入用户名和密码现象分析我们在git clone工程时有2中形式 https 和git@git。当你使用前者拉取工程时每次都需要输入用户名和密码解决方案1.执行下面命令git config --global credential.helper store这个时候~/.gitconfig文件中会多一行[credential]helper = store2.执行git pull再次输入用户名和密码此时你会看到/root/.git-
2020-07-30 18:05:55
94
转载 cmake 编译Android脚本
https://www.jianshu.com/p/13fe7ee2a2f3#!/bin/bashecho “start build android”#手动设置开始CMAKE_DIR=/Users/xiaobaiyey/Library/Android/sdk/cmake/3.6.4111459NDK_DIR=/Users/xiaobaiyey/Library/Android/sdk/ndk-bundleSDK_DIR=/Users/xiaobaiyey/Library/Android/sdk#
2020-07-29 14:23:52
270
原创 addr2line工具调试so库
错误日志:adb logcat > log.txt 可以抓取查看崩溃信息arm-linux-androideabi-addr2line工具路径:ndk安装目录下可以找到so库路径:在Android-studio intermediates/cmake/debug/obj/目录下调试命令arm-linux-androideabi-addr2line -C -f -e ${SOPATH} ${Address}示例:arm-linux-androideabi-addr2line -C -f -e
2020-07-29 08:44:25
1029
原创 音视频编解码
各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式音视频编解码——RGB与YUV格式转换音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准
2020-07-25 16:21:06
124
原创 C++ 状态(机)实现练习
enum StatusLevel{ Success = 0, Info, Warning, Error,};struct Status{ virtual void operator() () { logd(statusInfo); }; template <typename T> bool isStatus(){ return statusCode == GetTypeHash<T>(); }
2020-07-23 20:56:06
137
转载 C++11新特性--std::enable_if和SFINAE
名词解释SFINAE SFINAE是英文Substitution failure is not an error的缩写,意思是匹配失败不是错误。这句话什么意思呢?当调用模板函数时编译器会根据传入参数推导最合适的模板函数,在这个推导过程中如果某一个或者某几个模板函数推导出来是编译无法通过的,只要有一个可以正确推导出来,那么那几个推导得到的可能产生编译错误的模板函数并不会引发编译错误。这段话很绕,我们接下来用代码说明一下,一看便知。struct Test { typedef int foo;
2020-07-23 18:50:51
592
转载 JNI开发及相关建议
本文原文是:http://developer.android.com/training/articles/perf-jni.html,JNI全称Java Native Interface。它为Java与本C/C++之间提供了一种交互方式。JavaVM 及 JNIEnvJNI定义了两种关键数据结构,“JavaVM”和“JNIEnv”。它们本质上都是指向函数表指针的指针(在C++版本中,它们被定义为类,该类包含一个指向函数表的指针,以及一系列可以通过这个函数表间接地访问对应的JNI函数的成员函数)。Jav
2020-07-21 11:17:06
132
原创 C++ 编译知识
C++动态库和静态库详解https://www.cnblogs.com/fnlingnzb-learner/p/7145391.html
2020-07-17 09:29:48
182
原创 bazel使用学习杂记
bazel使用:https://www.jianshu.com/p/f9ae412fde37BUILD 文件中for用法示例[cc_library( name = “libopencv_” + arch, srcs = [OPENCVANDROIDSDK_NATIVELIBS_PATH + arch +&nbs
2020-07-16 18:01:00
2385
转载 RGB/YUV/HSV颜色空间
转自:https://www.cnblogs.com/justkong/p/6570914.htmlhttps://www.cnblogs.com/xujianqing/p/5876875.html一、概述颜色通常用三个独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间。但被描述的颜色对象本身是客观的,不同颜色空间只是从不同的角度去衡量同一个对象。颜色空间按照基本机构可以分为两大类:基色颜色空间和色、亮分离颜色空间。前者典型的是RGB,后者包括YUV和HSV等等。二、RG
2020-07-08 17:51:54
374
原创 值得学习的他人学习态度
评论中有人回答了“大家”所理解的多态,虽然跟我这个回答就差了几个字的表述,大家还是以评论中那个回答的为准吧…如果“大家”觉得在学习和传播知识的时候可以把“一般”,“习惯上”这种主观的总结归纳忽略,那我觉得“大家”可能缺乏一种构建知识体系的能力。如果“大家”在这里说c++的多态就是虚函数,并且一直这样传播下去,那若干年之后的下一代程序员学习到的就“c++的多态就是虚函数”,那他们的知识体系中就相比上一代程序员缺失了一块。这种知识的变迁在更新速度超快的计算机互联网行业太多了,这跟名人名言被阉割不一样,因为名人名
2020-07-08 09:41:06
198
原创 C++ Logger 记录日志到文件
1.获取当前日期 / 获取当前时间#include #include #include static std::string get_data(){// 基于当前系统的当前日期/时间time_t t=time(0);struct tm *now = localtime(&t);std::stringstream ss;ss<< now->tm_year <<’’<tm_mon <<""<tm_mday;return ss
2020-07-06 21:09:46
433
原创 unique_ptr 和 普通指针转换 及 多态支持
普通指针转unique_ptr存储类型为指向基类unique_ptr指针的vector, 可以被赋值为指向派生类的指针, 并且支持多态调用#include<iostream>#include<memory>#include<vector>class Task{ public: Task(){std::cout<<"base Task construct..."<<std::endl;}; virtual vo.
2020-07-06 18:07:33
8577
转载 C/C++ 格式化字符串几种方法
引言在C和C++开发中,我们经常会用到printf来进行字符串的格式化,例如printf(“format string %d, %d”, 1, 2);,这样的格式化只是用于打印调试信息。printf函数实现的是接收可变参数,然后解析格式化的字符串,最后输出到控制台。那么问题来了,当我们需要实现一个函数,根据传入的可变参数来生成格式化的字符串,应该怎么办呢?你可以在这里看到更好的排版正文可变参数首先来一个可变参数使用示例,testVariadic方法接收int行的可变参数,并以可变参数为-1表示结束
2020-07-02 10:54:48
3828
原创 VS Code Clang 配置说明
1 VSCode 添加clang-format扩展2 在用户配置内添加:"clang-format.executable": "C:\\Program Files\\LLVM\\bin\\clang-format.exe","editor.formatOnSave": true,"clang-format.style": "Google","extensions.ignoreRecommendations": trueClang-Format可用于格式化(排版)多种不同语言的代码,其自带的排版
2020-06-05 11:02:09
1427
转载 信号量机制 - 转
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.youkuaiyun.com/qq_38998213/article/details/87898943什么是信号量?信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示...
2019-11-18 15:33:54
312
原创 C++技术名词术语
RTTI:(Run-Time Type Identification),通过运行时类型信息程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。RTTI提供了以下两个非常有用的操作符:(1)typeid操作符,返回指针和引用所指的实际类型。要使用typeid必须使用头文件(2)dynamic_cast操作符,将基类类型的指针或引用安全地转换为派生类型的指针或引用。...
2019-11-05 15:16:08
148
转载 Kafka、ActiveMQ、RabbitMQ、RocketMQ消息队列比较
为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?面试题为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景?面试官心理分析其实面试官主要是想看看:第一,你知不知道你们系统里为什么要用消息队列这个东西?不少候选人...
2019-06-20 09:47:09
191
转载 【C++静态代码分析工具对比】
本文由腾讯WeTest团队提供,未经授权严禁转载!更多资讯可直接戳链接查看:http://wetest.qq.com/lab/文/张蓓引言静态代码分析是指无需运行被测代码,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。统计证明,在整个软件开发生命周期中,30% 至 ...
2019-06-10 14:21:56
2058
转载 Socket通信编程
socket通讯原理及例程(一看就懂)2018年09月13日 10:53:41 jiushimanya 阅读数:5261里面有疑问或者不正确的地方可以给我留言对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:什么是TCP/IP、UDP?Socket在哪里呢?Socket是什么呢?你会使用它们吗?什么是TCP/IP、...
2019-06-04 14:13:41
504
转载 boost 库 applyvisitor使用
boost::variant and boost::apply_visitor2017年11月02日 15:30:52 秋云 阅读数:448转自:http://www.jb51.net/article/95814.htmBoost.VariantVariant库包含一个不同于union的泛型类,用于在存储和操作来自于不同类型的对象。这个库的一个特点是支持类型安全的访问,减少了不同数据...
2019-05-07 10:48:54
1215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人