自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 杂谈 EV之我见

反观小米三年完成了造车,还是以惊艳的成绩,我想和理想、蔚来等造成新势力的已经打通了EV的产业链大有关联,小米可以选择性的选择这些产业链作为自己的产业链,这就容易得多了,这就像实验室了的师兄弟,当其他人都发了论文,你的论文也就快了.遥想当年,油车企业很多部件都是自给自足的,从外面采购的其实不太多,EV却恰恰相反,多数为采购,这也就造成了EV的成本必定是高的,毕竟那么多供应商都需要利润,EV的利润必定是薄的。每周至少更新一片博文,没有目的的看代码是没有效率的,带着目的去看代码才会有所得,

2024-04-09 17:04:18 214

原创 Android 14 vold 分析(3)vold和mount service通信

vold和mount service都是binder service,并不是mount service只调用vold,vold也会调用mount service,这是双向的,这里解答上一章的问题。思考, vold比mount service启动的早,那开机时vold获取到的listener为空,也就是说虽然disk创建了但是不会mount,那什么时候才会mount呢?6. vold reset 就是执行的是VolumeManager::reset() 这里就不赘述了。log: 第三次才会执行reset。

2024-04-09 16:08:20 622

原创 Android 14 vold 分析(2)VolumeManager 和 NetlinkManger

思考, vold比mount service启动的早,那开机时vold获取到的listener为空,也就是说虽然disk创建了但是不会mount,那什么时候才会mount呢?这有个继承关系NetlinkHandler : NetlinkListener : SocketListener。

2024-04-09 14:52:34 680 1

原创 Android 14 vold 分析(1)启动

它是从rc文件中启动的,rc文件是second stage init才会解析的,也就是说vold主要作用做second stage mount,那first stage mount是怎么做的呢,第一阶段实际上直接调用的是fs_mgr进行的mount,fs_mgr_do_mount_one()

2024-04-09 14:41:41 604

原创 android 14 apexd分析(1)apexd bootstrap

Apex的由来,我们都知道普通的apk我们可以通过应用商店playstore等进行更新,apex的引入是google希望也能通过playstore更新bin文件.so etc配置文件等类型文件. 这些文件的安装实际通过apexd来进行,现在我们来解析一下apexd, apexd的启动分为两个阶段,bootstrap和普通apexd启动,下面分析apexd bootstrap。

2024-04-03 18:20:51 1520

原创 lambda表达式 java & C++

C++中的Lambda表达式是一种匿名函数的定义方式,它允许你在需要函数的地方定义一个匿名函数,而不必显式地定义一个函数。在这个例子中,[] 捕获列表为空,int x, int y 是参数列表,-> int 指定了返回类型,{ return x + y;} ... ... 是函数体。在C++中,Lambda表达式的参数列表和返回类型都可以省略,编译器会根据上下文自动推导。如果Lambda表达式的函数体只有一条return语句,甚至可以省略return关键字。

2024-01-19 12:08:26 841

原创 C/C++的常见内存问题

/ 分配了包含5个int的内存块// 尝试访问超出分配内存范围的内存// 这里访问了arr数组中超出范围的内存// 释放内存solution:我们需要确保在访问动态分配的内存时不要超出其范围。另外,可以使用标准库提供的容器类(如std::vector)来代替手动管理动态数组,这样可以避免手动管理内存时可能出现的问题。

2023-12-01 16:36:46 438

原创 希望这个例子能够更好地说明std::move的作用和用法。

当你执行int* newData = data;时,实际上并没有进行资源的所有权转移,而只是将指针data的值赋给了newData,这种情况下,如果你释放了newData指向的内存,那么data指向的内存也会被释放。通过使用std::move,我们告诉编译器将data的所有权转移到newData,而不是进行深层拷贝。在这个例子中,我们首先创建了一个动态分配的数组,并将其指针data转移到另一个指针newData。这样可以避免不必要的内存拷贝,提高程序的性能。

2023-12-01 16:30:56 361

原创 android overlay

②动态导入RRO android:isStatic不声明默认为false。①静态导入RRO android:isStatic="true"1.静态resource overlay。

2023-04-26 13:21:43 474

原创 linu驱动常用函数

具体的总线设备驱动都是以这些为基础继续等装的。2.设备号是设备文件和驱动联系的桥梁。结合DEVICE_ATTR宏使用。结合DRIVER_ATTR宏使用。创建属性文件 sys目录下。结合BUS_ATTR宏使用。创建属性文件 sys目录下。创建属性文件 sys目录下。3.总线设备驱动驱动模型。

2023-04-09 08:07:31 132

原创 Java or python 版本切换

1.切换 java版本sudo update-alternatives --config javasudo update-alternatives --config javac2.切换 python版本sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1 && alias pip=pip3 #1 代表优先级 越大优先级越高sudo update-alternative.

2022-02-08 11:27:21 980

原创 mosquitto 使用ssl/tls加密通信

1.ubuntu@han:~/test/ssl\tls$ openssl genrsa -out client.key 1024Generating RSA private key, 1024 bit long modulus (2 primes)..+++++....+++++e is 65537 (0x010001)2.这步挺重要 把本机ip设置为第3步的commom nameubuntu@han:~/test/ssl\tls$ ifconfig cscotun0: flags

2021-10-22 17:06:34 921

转载 Java 使用new Thread和线程池的区别

Java 使用new Thread和线程池的区别本文转至:https://www.cnblogs.com/cnmenglang/p/6273761.html , 孟凡柱的专栏 的博客,在此谢谢博主!1.new Thread的弊端执行一个异步任务你还只是如下new Thread吗new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method.

2021-10-19 16:44:07 1001

原创 esp32 linux开发环境搭建

使用make menuconfig和 make all make flash的是v3.3版本################################################################################################################1.git clone --recursive https://github.com/espressif/esp-idf.gitgit checkout release/v3.3如果 没有

2021-10-03 12:55:10 2310

原创 protobuff的一点理解

syntax = "proto2";//指定版本信息,不指定会报错//字段格式:限定修饰符① | 数据类型② | 字段名称③ | = | 字段编码值④ | [字段默认值⑤]message Person //message为关键字,作用为定义一种消息类型{ required string name = 1; //姓名 required表示必须设值 proto3已经不允许required字段,只允许optional、repeated,也没有has_XXX()方法 optional .

2021-09-30 14:34:58 630

原创 linux动态链接库的使用

0.编译so gcc -fPIC -shared hello.c -o libhello.so1.dlopen dlsym使用.sogcc main.c -o main -ldl2.调用自定义动态链接库gcc main2.c -o main2 -I../so -L../so -lhello切记-I和-L后跟的是目录 不要写文件执行LD_LIBRARY_PATH=../so ./main2或者export LD_LIBRARY_PATH=../so 然后./...

2021-09-30 14:29:04 185

原创 opengrok搭建方法

OpenGrok一个快速、便于使用的源代码搜索与对照引擎。它帮助你搜索,对照,定位你的源代码树。它能够明白各种程序文件格式和版本控制历史记录,是OpenSolaris操作系统源文件浏览和搜索的工具。1. 安装jdksudo apt install openjdk-8-jdk2. 安装ctagssudo apt install exuberant-ctags3. 下载universal-ctags源码git clone https://github.com/universal-c

2021-09-30 14:05:44 2011 1

原创 openrok部署

java -jar opengrok-1.3.16/lib/opengrok.jar -P -S -v -s opengrok-1.3.16/src -d opengrok-1.3.16/data -H --repository opengrok-1.3.16/history -W opengrok-1.3.16/etc/configuration.xmlsh apache-tomcat-9.0.53/bin/shutdown.sh && sh apache-tomcat-9.0.53/.

2021-09-29 10:52:52 159

原创 mqtt apk 使用org.eclipse.paho.client.mqttv3

1.build.gradleallprojects { repositories { google() jcenter() maven { url "https://repo.eclipse.org/content/repositories/paho-snapshots/" } }}dependencies { implementation fileTree(dir

2021-08-09 10:25:28 2821

原创 mqtt 交叉编译linux c

服务器:mosquitto -v终端1:mosquitto_pub -h 服务器ip -t "主题" -m "主题内容"终端2:mosquitto_sub -h 服务器ip -t "主题" -v

2021-07-29 18:58:56 324

原创 寄存器位操作总结

寄存器位操作总结:例:1个32位寄存器REG1.第八位设置为1,其他位置不变REG |= (1<<8);2.第八位设置为0,其他位置不变REG &=~(1<<8);GPIOA-> BSRRL &=0XFF0F; //将第 4-7 位清 0GPIOA-> BSRRL |=0X0040; //设置相应位的值,不改变其他位的值3. 将寄存器REG的第3、5位置“1”REG |= (1 << 5) | (1 <<.

2021-04-19 09:38:23 2698

原创 java包名划分

android:方式一:按业务功能划分方式二:按组件划分1.四大组件(activity、service、contentprovider、broacastreceiver)2.工具包:xxxUTILS3.数据库:db包4.自定义控件包JavaEE:按三层架构划分:web层:servlet、filter、listenerservic层:业务逻辑包dao层:数...

2018-08-29 08:07:33 1076

原创 虚拟机网络连接方式总结

1.桥接:在虚拟机中是vmnet0,这种链接方式让虚拟机可以借用真机网卡的形式链接到外部真实的网关(路由器或交换机),虚拟机被分配的ip和真机处于同一个网段。所有链接同一个网关(路由器或交换机)的设备处于同一个局域网中,互相ping都可以ping通注意: 当真机以有线网卡连入网关(路由器或交换机)时,虚拟机只能通过有线网卡链接到局域网 当真机没有插网线...

2018-08-23 17:26:30 373

原创 android的activity栈的四种模式

1.标准模式standard:默认模式,每打开一个activity 层层堆积2.singletop模式:当以这种模式打开一个activity,当它在栈顶时,再次打开不会重复堆积3.singletask模式:当以这种模式打开一个activity时,该activity在栈中只会存在一个,当再次打开时会销毁再其之上的activity4.singleinstance模式:当以这种模式打开一个a...

2018-08-22 15:52:22 197

原创 对设备的控制和远程控制方式

有以下几种方式单片机自身通过按键,触屏等对设备进行控制 单片机——按键,触屏等 通过用labview编写上位机通过串口通信控制单片机 单片机—串口—labview 单片机通过产口通信控制单片机...

2018-08-07 18:08:20 2613

原创 mysql相关

1.DDL(database definition language)数据库定义语言主要包括增 create 删 drop 改 alter 又包括增删改2.DML(database manipulation language)数据库操作语言,用于操作表记录增  insert 删 delete 改 update3.DQL(database query language)数据库查询...

2018-08-07 11:01:09 137

原创 web前端的一些回忆——Bootstrap

超好的web前端框架,使网页可以适应各种缩放比例,在pc,pad,手机上都能完美显示1.CSS类2.javascript库3.组件    

2018-08-06 22:47:19 181

原创 web前端的一些回忆——JQuery

是javascript的一个库,简化了javascript的代码选择器

2018-08-06 22:44:36 151

原创 web前端的一些回忆——javascript

三大部分1.ECMAscript 基本语法2.BOM 浏览器对象模型3.DOM 文档对象模型外部引入方法&lt;!-- 引入jQuery核心js文件 --&gt; &lt;script src="../../js/jquery-1.11.0.min.js"&gt;&lt;/script&gt; &lt;!-- 引入BootStrap核心js文件 --&gt; &l...

2018-08-06 22:43:25 154

原创 web前端的一些回忆——CSS

CSS(层叠样式表)外部引入方法&lt;!-- 引入Bootstrap核心样式文件 --&gt; &lt;link href="../../css/bootstrap.min.css" rel="stylesheet"&gt;CSS的选择器元素选择器类选择器id选择器   ...

2018-08-06 22:40:44 147

原创 web前端的一些回忆——html

html1.它是一门标记语言,类似于xml,并不是编程语言2.h5的标签,分为开开始标签和结束标签 中间是标签内容,开始标签中设置标签属性2.主要标签头标签&lt;head&gt;&lt;/head&gt;体标签&lt;body&gt;&lt;/body&gt;段落标签&lt;p&gt;&lt;/p&gt;字体标签&lt;font &gt;&lt;/font&a

2018-08-06 22:36:12 212

原创 shell脚本学习

shell脚本的定义:脚本是包含新一系列命令序列的文本文件,在运行这个脚本的时候,这些命令将得到执行。 shell脚本的变量:在赋值的时候可以不加$,在引用的时候需要加$ 脚本的开头为#!/bin/bash 打印命令echo 后面可以加双引号,也可以不加 参数:$#:在执行shell脚本时命令行传入脚本的参数个数 $*:在执行shell脚本时命令行传入脚本的...

2018-08-06 21:42:01 142

原创 linux学习

一.对linux的进一步认识1.rm cp 命令的-r选项是专用于文件夹操作的 是递归的意思2./usr目录并不是用户目录,而是unix shared resources的缩写,通常用于安装软件的位置3.cat/more/less/tail命令用于查看文件4.grep命令 用于查找包含某字符串的内容或文件5.| 管道命令 :前面命令的输出作为后面命令的输入 ps -ef | g...

2018-08-06 21:35:46 129

原创 C语言中的static关键字

1.static关键字修饰的函数,不能被其他文件的函数调用2.static修饰的局部变量,不随函数生命周期的终结而终结3.static修饰全局变量时,全局变量不能被其他文件访问,即使声明extern也不行,       ...

2018-07-21 09:46:03 140

原创 换行符在Linux和Windows下的区别

一、区别换行符:1.windows中的换行符是\r\n, dos下可以识别\n3. linux/unix下的换行符是\n。其中:回车符:\r 在ASCII表中对应0x0d (13)     英文为: return   #回车换行符:\n 在ASCII表中对应0x0a (10)     英文为: newline  #换行二、文件格式互转命令1.unix2dos:将具有unix风格的...

2018-07-19 16:25:49 880

原创 JAVA内存中的分布

方法区:存放类中定义的方法,静态方法,静态成员变量,常量堆:存放对象的成员变量栈:存放方法的局部变量

2018-07-19 16:08:08 270

原创 关于负数在计算机中的表示方法

真正的明白了负数在计算机中的表示方法计算机中的是正数用原码表示,计算机中的负数用补码表示即原码取反再加一 这就是为什么char 型的变量的取值范围为-128~+127,因为他的第一位要表示一个数的正负符号,第一位为0表示正数,为1表示负数如:用char 定义的十进制数18二进制:0001 0010B八进制:022十六进制:0x12如:用char 定义的十进制数-18  ...

2018-07-19 15:56:02 5061

原创 java类的加载器

1.顾名思义:java类的加载就是指的是java虚拟机JVM在java的某段代码执行的过程中,将需要的类的.class字节码文件用类加载器放到内存的方法区中。2.类加载器的三种类型    2.1引导类加载器:类库jre下rt.jar    2.2扩展类加载器:ext文件夹下的扩展的jar包    2.3系统类加载器:第三方jar包,自己编写的class说明:这三个类加载器优先顺...

2018-07-18 12:56:07 111

原创 android开发中preference配置的xml文件的在eclipse和AS中的创建

一.在eclipse中创建1.在res目录下新建文件夹xml2.在xml目录下新建new 一个android xml file有时在other中3.在resource type中选择preference即可二.在android studio中创建1.在res目录下新建文件夹xml2.在xml目录下new 一个xml resource file 即可三.AS在不同...

2018-07-17 17:06:52 894

空空如也

空空如也

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

TA关注的人

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