![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
充电桩
文章平均质量分 74
溯源守拙
这个作者很懒,什么都没留下…
展开
-
TCP/IP协议|IO/NIO原理|Redis/Netty学习
三次握手:syn、sny+ack、ack1. 为什么建立连接 tcp是一个可靠的传输机制,可靠在于每次收到一个数据都会相应的收到一个确认包之后才会将缓冲区的内容给删除掉,否则过一段时间就会重传。 建立连接就像是侦察兵侦查道路一样,我先看看这条路能不能走,如果能走,后面的大部队就跟上来了,如果不能走,后面的大部队就等着我继续侦查。2. 为什么要用标志位syn? 案例一: 没有标志位syn的对话 客户端:嗨,服务器 服务器:你恐怕是傻子吧,给我发这个干嘛呢!! 案例二:原创 2021-03-14 22:51:40 · 227 阅读 · 0 评论 -
Android_性能分析与优化学习
一.性能优化难题性能表现差:app启动慢、卡顿、丢帧;内存占用高、抖动频繁;耗电、网络请求慢;奔溃率、异常率高; 线上问题无从查找:如何保证异常感知灵敏度;如何“复原”案发现场;如何快速止血成功; 性能优化的长期开销大:如何扼杀问题于萌芽,以更高的视角知道自身工作;优化效果如何长期保持; 总结要求:性能表现好;线上问题易追查;长期投入小;二.App性能优化解决方案演进项目初期:只关心崩溃率、不采集性能数据;没有性能检测、优化方案;没有排查问题手段; 项目壮大期:指标采集,不够全及深入;接入原创 2021-02-28 23:17:21 · 229 阅读 · 1 评论 -
Android_应用层内存优化之你需要了解的事
一.JVM内存结构 五大内存区域:程序计数器、java虚拟机栈、本地方法栈、堆、方法区。二.垃圾判断算法 学习地址:https://www.bilibili.com/video/BV1Ka4y1v7Yy?spm_id_from=pageDriver原创 2021-02-21 23:22:18 · 106 阅读 · 0 评论 -
理查德费曼学习法
其实大部分人的智力水平相差不大,但是学习力却大相径庭,造成这样差异的更多地是我们的学习方法、学习习惯等可控因素。那么,什么是费曼学习法呢?费曼学习法可以简化为四个单词:Concept (概念)、Teach (教给别人)、Review (回顾)、Simplify (简化)。什么是费曼学习法 怎么用费曼学习法1)费曼学习法是什么意思简单来说就是用更少的时间学习更多的知识。费曼以能够快速吸收信息,并且在更短时间内掌握知识闻名,在高中最后一年就拿了纽约大学数学锦标赛冠军,而且后来在普林斯顿大学的数学原创 2021-01-17 22:21:02 · 1103 阅读 · 0 评论 -
Android_binder通信机制学习
一.Binder是什么? Binder就是Android中的血管,在Android中我们使用的Activity、Service等组件需要和AMS(system_server)通信,这种跨进程的通信都是通过Binder完成机制:Binder是一种进程间通信机制 驱动:Binder是一个虚拟物理设备驱动 应用层:Binder是一个发起通信的Java类...原创 2021-01-12 23:05:45 · 154 阅读 · 0 评论 -
Android基础知识学习
一. ./build/envsetup.sh分析加载编译命令; 加载平台信息;原创 2020-11-28 21:45:55 · 1459 阅读 · 5 评论 -
Linux——用户和用户组管理&权限管理
一.用户配置文件用户信息文件 影子文件 组信息文件二.用户管理相关文件三.用户管理命令useradd: passwd: usermod和chage: userdel和su:四.用户组管理命令五.ACL权限六.文件特殊权限七.chattr权限八.sudo权限...原创 2020-11-23 23:27:47 · 130 阅读 · 0 评论 -
Linux——常用命令&vim常用操作
一.文件处理命令命名格式与目录处理命令ls:(1)命令格式:命令 [-选项] [参数] , 说明:个别命令不遵循此格式,当有多个选项时可以写在一起,简化选项与完整选项;(2)ls:ls 选项[-ald] 参数[文件或目录] 目录处理命令: 文件处理命令: 链接命令:二.权限管理命令三.文件搜索命令四.网络命令五.关机重启命令...原创 2020-11-21 22:30:56 · 193 阅读 · 0 评论 -
Linux学习——系统分区&注意事项
分区:把大硬盘分为小的逻辑分区格式化:写入文件系统分区设备文件名:给每个分区定义设备文件名挂载:给每个分区分配挂载点原创 2020-11-12 22:52:13 · 153 阅读 · 0 评论 -
Camera FaceHal内存踩踏问题解读
一.什么是内存踩踏访问了不合法的地址。通俗一点就是访问了不属于自己的地址。如果这块地址分配给了另一个变量使用,就会破坏别人的数据。从而导致程序运行异常,挂死,输出图像破图等。二.内存踩踏可能情形数组访问越界; 字符串操作越界; 野指针; 重复释放; 指针类型转换错误; 栈溢出; 堆溢出 释放在使用; 多线程读写的数据没有保护; 多线程使用线程不安全的函数; 其他;三.如何排查1.查看ylog,帮助缩小排查范围;2.加入debug log,进一步缩小范围;打印相关内.原创 2020-10-23 19:07:28 · 1841 阅读 · 0 评论 -
C++中delete对象和数组对象的用法
算法集市文章学习:C++在回收用new分配的单个对象的内存空间时,直接用delete;回收用new[]分配的数组对象内存空间时,需要使用delete[]。调用new所包含的动作:从系统中申请一块内存,并调用对象的析构函数; 调用delete所包含的动作:先调用对象的析构函数,然后将内存归还给系统; 调用new[n]所包含的动作:申请可容纳n个对象的空间,并调用n次构造函数来初始化这n个对象; 调用delete[]所包含的动作:先调用n次对象的析构函数,然后再将内存归还给系统;#includ原创 2020-09-06 23:45:37 · 4275 阅读 · 0 评论 -
Asan工具android平台部署
一.首先先了解:Android NDK编译Application.mkAPP_PROJECT_PATH 项目路径 APP_MODULES 编译模块列表 APP_OPTIM release/debug 不设则取决于manifest中的android:debuggable。 不建议设置。 APP_CFLAGS 传递给编译器的选项(C /C++),作用于所有模块 APP_CPPFLAGS 传递给编译器的选项(C++) -fexceptions原创 2020-09-06 21:47:38 · 1205 阅读 · 0 评论 -
学习C语言结构体内存对齐
struct Score{ float language;//语文 float english;//英语 float math;//数学};struct Student{ int SID;//学号 char name[20];//姓名 char sex;//性别 int age;//年龄 char address[40];//地址 int height;//身高 struct Score subject;//主科目成绩}.原创 2020-08-30 17:47:24 · 236 阅读 · 0 评论 -
C/C++中break、continue、goto、return在循环中的用法
在C/C++中,break、continue、goto、return语句都可以应用在while、for循环语句中,用于控制循环语句中的流程。#include<iostream>using namespace std;int main(){ int i=0; while(i<2){ cout<<"i="<<i<<endl; for(int j=0;j<2;j++){原创 2020-08-26 23:22:13 · 943 阅读 · 0 评论 -
C++三种构造函数
学习算法集市文章:C++的三种构造函数:无参数构造函数:以类作为函数名,没有形参; 一般构造函数:有初始化列表方式和内部赋值方式两种; 复制构造函数:根据一个已存在的对象复制出一个新的对象;class Student{public: int m_age; int m_score; //无参构造函数 Student(){ m_age=10; m_score=99; cout<<"无参构造函数"<原创 2020-08-25 23:26:19 · 873 阅读 · 0 评论 -
C语言关键字static的用法学习
学习算法集市文章C语言static关键字的常见用法有三种:1.用于局部变量的修饰符;2.用于全局变量的修饰符;3.用于函数的修饰符;1.用于局部变量的修饰符 当static用于修饰局部变量时,通常是在某个函数体内,只能在该函数内被调用。这样定义的变量通常被称为局部静态变量,它的值不会因为函数调用的结束而被清除,当函数再次被调用时,它的值是上一次调用结束后的值。#include<stdio.h>#include<string.h>void my_...原创 2020-08-16 21:46:48 · 251 阅读 · 0 评论 -
发生Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)问题
问题:在验证某些功能时,启动camera auto DC模式成功,切换其它模式失败基本必现camera error,crash log如下:C015C0D 08-08 16:01:22.447 6408 6600 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xe375435c in tid 6600 (res_init), pid 6408 (provider@2.4-se)C015DB6 0...原创 2020-08-09 16:25:19 · 5393 阅读 · 0 评论 -
C语言正整数回文数判断
/* 函数circle用于判断正整数n的d进制数表示形式是否是回文数 */#include<stdio.h>#include<stdlib.h>int circle(int n, int d){ int s=0,m=n; while(m) { s=s*d+m%d; m/=d; } printf("s=%d\n",s); return s==n;}/* main函数用于测试circle函数 */int num[]={232,27,851};int .原创 2020-07-26 21:49:40 · 661 阅读 · 0 评论 -
Linux分离线程问题
问题:在打开camera过程中执行调用log_monitor_thread_init过程中创建log_monitor_thread_proc出现问题导致crash.C3AC38A 07-03 08:34:36.482 8924 8924 F DEBUG : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------C3AC38B 07-03 08:34:36.482 8924 8924 F DEBUG : Abor.原创 2020-07-14 22:50:56 · 693 阅读 · 0 评论 -
STL中list的erase()使用注意
转至:https://blog.csdn.net/jfkidear/article/details/40822291erase()方法是删除iterator指定的节点,但是要注意的是在执行完此函数的时候iterator也被销毁了,这样的话关于iterator的操作就会报错 ,以下是关于erase()方法的正确使用:正确使用方法1 : std::list< int> List;std::list< int>::iterator itList;for( itLi...原创 2020-07-12 22:59:57 · 4574 阅读 · 1 评论 -
memset函数使用注意
公众号算法集市中学习内容:memset函数按字节对内存块进行初始化,所以不能用它将int数组初始化为0和-1之外的其他值memset -1值#include<iostream>using namespace std;int main(){ int arr[3]; memset(arr,-1,sizeof(int)*3); for (int i = 0; i < 3; i++) printf("arr[%d]:%d\n",i,arr[i]); getcha原创 2020-07-05 23:39:25 · 353 阅读 · 0 评论 -
c/c++ enum枚举并实现对枚举进行遍历
枚举:c/c++:struct enum camera_mem_cb_type{ CAMERA_PREVIEW=0, CMAERA_SNAPSHOT, CAMERA_VIDEO, CAMERA_STATIS, CAMERA_MEM_MAX,}mem;对枚举类型的遍历:C:struct enum camera_mem_cb_type{ CAMERA_PREVIEW=0, CMAERA_SNAPSHOT, CAMERA_V原创 2020-06-26 23:05:06 · 2688 阅读 · 0 评论 -
推荐学习链接
比较好的推荐学习链接: 1.https://github.com/TheAlgorithms原创 2020-06-19 23:20:51 · 244 阅读 · 0 评论