自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鲸小鱼的CSDN私人博客

是的,是我,Mr TruST....

  • 博客(257)
  • 收藏
  • 关注

原创 sepolicy进阶小记

上下文定义标准的label取名方式是需要被遵守的,因为很多宏里面就直接用了。。hwservice_contexts这里标注的是使用hwbinder的服务通信的接口标准的label取名方式是以_hwservice结尾hwbinder是框架与供应商内容之间的ipc通信模块同理,还有个vndbinder,是供应商内容之间的ipc通信模块Android 8 之后,原先的bin...

2023-09-15 14:53:00 224

原创 Java8 使用 stream().filter()过滤List对象(查找符合条件的对象集合)

内容简介本文主要说明在Java8及以上版本中,使用stream().filter()来过滤一个List对象,查找符合条件的对象集合。List对象类(StudentInfo)public class StudentInfo implements Comparable<StudentInfo> { //名称 private String name; //...

2023-08-30 17:37:00 2149

原创 android.os.handlerexecutor

android.os.HandlerExecutor是一个Android平台的Executor,它可以将任务发布到指定的Handler运行。可以将HandlerExecutor视为一种将任务提交到Handler的简单方法,与使用Handler.post(Runnable)相比,HandlerExecutor具有更好的可读性和可维护性。在Android中,UI线程(也称为主线程)用于处理UI相关...

2023-08-22 10:13:00 134

原创 Java try...catch异常后还会继续执行吗

catch 中如果你没有再抛出异常 , 那么catch之后的代码是可以继续执行的 ,但是try中 , 报错的那一行代码之后 一直到try结束为止的这一段代码 , 是不会再执行的://代码1public static void test() throws Exception { try { throw new Exception("参数越界"); ...

2023-07-18 20:32:00 566

原创 C++ 数值最大最小标识符一网打尽,INT_MIN/ INT_MAX/LONG_MIN/LONG_MAX 等等

Constant Meaning ValueCHAR_BIT Number of bits in the smallest variable that is not a bit field. 8SCHAR_MIN Minimum value for a variable of type signed char. -128SCHAR_MAX Maximum value for a variable...

2023-06-14 23:45:00 71

原创 【SIM】MCC(移动国家码)和 MNC(移动网络码)

国际移动用户识别码( IMSI) international mobile subscriber identity 国际上为唯一识别一个移动用户所分配的号码。  从技术上讲,IMSI可以彻底解决国际漫游问题。但是由于北美目前仍有大量的AMPS系统使用MIN号码,且北美的MDN和MIN采用相同的编号,系统已经无法更改,所以目前国际漫游暂时还是以MIN为主。其中以O和1打头的MIN资源称为IRM(...

2023-03-23 11:08:00 4265

原创 Android数据结构-SparseArray实现原理

SparseArray家族SparseArray基于键值对存储数据,key为int,value为object,简单使用如下://声明 SparseArray<String> sparseArray= new SparseArray<>(); //增加元素,append方式 sparseArray.append(0, "m...

2023-03-21 21:05:00 68

原创 WiFi probe request/response

probe request主动扫描通过发送probe request帧进行STA会在每个信道上发送probe request进行扫描。probe request会向广播地址FF:FF:FF:FF:FF:FF发送。发送的STA可以指定SSID,只有指定的AP才会进行回复。如果probe request的SSID是0,所有的AP都会恢复probe response.不带SSID的扫描...

2023-03-07 14:45:00 250

原创 Java 实例 - int数组转化成List简便的方法

如下:@Test public void test5(){ int[] array = {1, 2, 5, 5, 5, 5, 6, 6, 7, 2, 9, 2}; /*int[]转list*/ //方法一:需要导入apache commons-lang3 jar List<Integer> list =...

2023-02-04 23:54:00 120

原创 一文读懂 Handler 机制

Handler 在整个 Android 开发体系中占据着很重要的地位,是一种标准的事件驱动模型,对开发者来说起到的作用很明确,就是为了实现线程切换或者是执行延时任务,稍微更高级一点的用法可能是为了保证多个任务在执行时的有序性。由于 Android 系统中的主线程有特殊地位,所以像 EventBus 和 Retrofit 这类并非 Android 独有的三方库,都是通过 Handler 来实现对 ...

2023-02-02 16:15:00 39

原创 java 开启子线程的三种方式

1. 实现多线程的方式继承Thread类实现Runnable接口一般使用匿名的方式2. 示例package comi.example.liy.mytestdemo;import org.junit.Test;import static org.junit.Assert.assertEquals;/** * Example local unit test, which wi...

2023-02-01 20:21:00 94

原创 Java字符串 equals()与==的比较

理解 equals() 方法和==运算符执行的是两个不同的操作是重要的。如同刚才解释的那样,equals() 方法比较字符串对象中的字符。而==运算符比较两个对象引用看它们是否引用相同的实例。下面的程序说明了两个不同的字符串(String)对象是如何能够包含相同字符的,但同时这些对象引用是不相等的:String s1 = "Hello";String s2 = new String(s1)...

2023-01-16 22:25:00 27

原创 Java 遍历 Map 的 5 种方式

Java 中遍历 Map 有多种方法, 从最早的迭代器 Iterator, 到 JDK 5 开始支持的增强型 for 循环 —— 即 foreach, 再到 JDK 8 的 Lambda 表达式, 让我们一起来看下具体的用法及其优缺点.1 通过 keySet() 或 values() 方法遍历如果只需要获取 Map 的 key 或者 value, 通过 Map 的keySet()或va...

2022-12-29 22:57:00 183

原创 Android packages常见APP对应包名

美团外卖 com.sankuai.meituan.takeoutnew饿了么 me.ele摩拜单车 com.mobike.mobikeappOFO so.ofo.labofo今日头条 com.ss.android.article.news新浪微博 com.sina.weibo网易新闻 com.netease.newsreader.activity快手...

2022-12-02 12:30:00 163

原创 java中 implement和extends的作用和区别详细解释

一、extends是继承类,implements是实现接口。类只能继承一个,接口可以实现多个。extends继承父类的时候可以重写父类的方法,也可以调用父类的非私有方法;implements实现接口,必须实现接口的所有方法。二、extends后面跟的是类,表示继承关系;如public class Dog extends Animalimplements后面跟的是接口,表示实现接口(...

2022-11-22 11:09:00 125

原创 频段和信道

结合前文的概念和网络覆盖设计中有效传输距离计算公式,可以分别计算出2.4G、5G和6G频段的射频覆盖范围。通过计算结果会发现单个AP的覆盖范围有限,通常需要部署多个AP才能完成完整的网络覆盖。多个AP的组网中,相邻AP间通常会存在同频干扰问题,需要通过规划无线信号工作的频段和信道来减少同频干扰问题。另外通过信道捆绑可以提高无线终端的网络速率。2.4G、5G、6G频段各有不同的工作信道。...

2022-11-21 19:48:00 32

原创 Android Handler详解

本期主要内容1: Handler是什么?2:为什么要使用Handler?3: Handler /Looper/ MessageQueue/Message究竟是做什么的?4:Handler如何去实现发送和处理消息1、Handler是什么?Handler 是一个消息分发对象。handler是Android给我们提供用来更新UI的一套机制,也是一套消息处理机制,我们可以发消...

2022-11-17 11:42:00 38

原创 WCNSS_qcom_cfg.ini WIFI配置文件解析

STA相关的一般配置gChannelBondingMode5GHz=1gChannelBondingMode24GHz=0 //通道绑定gStaKeepAlivePeriod = 30 //使用非零周期值启用保持活动状态gVhtMpduLen=2 //最大MPDU长度(仅限VHT。有效值:0-> 3895个八位字节,1-> 7991个八位字节,2-> 11...

2022-11-04 11:15:00 130

原创 Google 代码风格

AOSP 代码格式HIDL代码格式:code styleJAVA代码格式:code style参考标准Google Style GuidesC++: http://google.github.io/styleguide/cppguide.html(翻译版: http://zh-google-styleguide.readthedocs.org/en/latest/google-...

2022-10-27 20:06:00 23

原创 Android-WiFi开发之 WifiManager

简介:WifiManager这个类, 是 Android 暴露给开发者使用的一个系统服务管理类, 其中包含对WiFi的响应的操作函数; 其隐藏掉的系统服务类为IWifiService, 为Android私有的, 其具体实现, 未暴露给用户; 只需要使用WifiManager进行函数操作完成UI, 监听对应的广播消息, 就可完成功能了. 换言之, WifiManager会调用service简介地...

2022-10-13 20:19:00 76

原创 解决Ubuntu下VScode终端字体显示不正常

Settings.json中添加如下配置项:"terminal.integrated.fontFamily": "monospace",如下:结果:

2022-09-27 20:25:00 77

原创 Android编译选项eng、user、userdebug的区别

Android编译选项eng、user、userdebug的区别https://www.xuebuyuan.com/1408769.htmlAndroid编译选项中eng、user、user-debug主要区别https://blog.csdn.net/yanghanxing110/article/details/77721007eng、user、userdebug区别简述https://b...

2022-09-22 18:59:00 321

原创 Android AP/BP理解

AP和BP简介大多数手机都至少存在两个处理器,一个负责AP侧,一个负责BP侧。数的手机都含有两个处理器。操作系统、用户界面和应用程序都在Application Processor(即AP)(应用处理器)上执行,AP一般采用ARM芯片的CPU。运行在Application Processor(AP)的软件包称为AP包,包括操作系统、用户界面和应用程序等;手机射频通讯控制软件,则运行在...

2022-09-21 16:39:00 59

原创 深入浅出Android.bp

早期的Android系统都是采用Android.mk的配置来编译源码,从Android 7.0开始引入Android.bp。很明显Android.bp的出现就是为了替换掉Android.mk。再来说一说跟着Android版本相应的发展演变过程:Android 7.0引入ninja和katiAndroid 8.0使用Android.bp来替换Android.mk,引入SoongAndro...

2022-09-09 14:08:00 12

原创 Android BugReport的组成部分和常见问题(详细说明)

Android BugReport 中包含文本 (.txt) 格式的 dumpsys(转储系统)、dumpstate(转储状态)、Logcat 数据,便于轻松搜索特定内容。以下各部分详细说明了BugReport 的组成部分及常见问题,并提供了关于查找与这些错误相关的日志的实用提示和 grep 命令。一、获取 BugReport连接测试手机,进行相应测试后,打开终端,执行:$ adb shel...

2022-09-07 14:47:00 175

原创 【Wi-Fi 802.11协议】管理帧 之 Auth帧详解

Auth:链路认证链路认证阶段主要是 AP 用来确认 Station 是否是 802.11 设备,确认彼此是否可以正常通讯,身份认证一般有为两种方式,一种是开放系统认证,另一种是共享密钥认证Open System Authentication:开放系统认证适用于WEP Open,WPA,WPA2,WPA3加密方式,Open System 分为两步,第一步由 STA 发起认证,AP收到后会回...

2022-09-06 14:34:00 18

原创 【Wi-Fi 802.11协议】管理帧 之 Beacon帧详解

Beacon帧简介信标帧,由AP以一定的时间间隔周期性发出,以此来告诉外界自己无线网络的存在。Beacon帧组成下图为Beacon帧的组成下图为抓包所得(AP为2.4g 11n模式),Packet Info为抓包软件自己添加的字段,可以看到一些基本信息,这里不做分析。802.11 MAC Header仔细观察不难发现,802.11 MAC Header 图中的字段与帧组成图中的帧相对...

2022-09-06 14:29:00 115

原创 Preference 三种监Preference 三种监听事件说明听事件说明

3者的区别使用方式不同onPreferenceClick 与onPreferenceChange 是通过preference.setOnPreferenceClickListener preference.setOnPreferenceChangeListener来注册listener使用的 。Preference.OnPreferenceClickListener, Prefer...

2022-07-20 15:28:00 110

原创 C++函数前和函数后加const修饰符区别

栗子class Test(){public: Test(){} const int foo(int a); const int foo(int a) const;};一、概念当const在函数名前面的时候修饰的是函数返回值。当const在函数名后面表示是常成员函数,该函数不能修改对象内的任何成员,只能发生读操作,不能发生写操作。二、原理:我们都知道在调用成...

2022-07-15 14:35:00 102

原创 Wi-Fi HIDL接口梳理

Android Wi-Fi架构概述熟悉Android Wi-Fi Framework的同学都知道,Android Wi-Fi架构如下图所示:简单来说Android Wi-Fi架构分三层:Application层,即应用层,指系统应用或第三方应用Wi-Fi Service层,属于Android framework层,是aosp中Wi-Fi相关功能的主要代码Native层,包括wpa_s...

2022-07-05 14:28:00 56

原创 VS Code刷题红色波浪线报错解决

使用LeetCode插件时,代码在VSCode中各种标红,如下:这个可能并不是很严重,只是针对于有强迫症的人群。有的在本地VSCode中标红,提交的时候却能通过编译。问题在于少了这两行代码:#include<bits/stdc++.h>using namespace std;如下问题解决了:...

2022-06-28 14:29:00 118

原创 DHCP详细工作过程

DHCP详细工作过程DHCP客户端通过和DHCP服务器的交互通讯以获得IP地址租约。为了从DHCP服务器获得一个IP地址,在标准情况下DHCP客户端和DHCP服务器之间会进行四次通讯。DHCP协议通讯使用端口UDP 67(服务器端)和UDP 68(客户端)进行通讯,UDP68端口用于客户端请求,UDP67用于服务器响应,并且大部分DHCP协议通讯使用广播进行。DHCP客户端和DHCP服务器...

2022-06-17 20:19:00 130

原创 搜索思想 - DFS & BFS

1.DFS(深度优先搜索)深度优先搜索的步骤分为 1.递归下去 2.回溯上来。顾名思义,深度优先,则是以深度为准则,先一条路走到底,直到达到目标。这里称之为递归下去。否则既没有达到目标又无路可走了,那么则退回到上一步的状态,走其他路。这便是回溯上来。1.示意图DFS的重要点在于状态回溯。2.代码如下int goal_x = 9, goal_y = 9; //目标的坐标,暂时设置为右...

2022-05-02 16:32:00 19

原创 android studio出现 Could not initialize class com.android.sdklib.repository.AndroidSdkHandler

新的android studio (4.2)已经不支持旧有的了,有些方法和类会找不到。com.android.tools.build:gradle:2.3.3去build.gradle中把这个classpath换成最新的版本。最好也把gradle和gradle wrapper的版本也弄到最新。比如:buildscript { repositories { jcen...

2022-04-22 19:24:00 232

原创 Wireshark分割、合并pcap文件

1. 分割pcap文件File->Export Specified Packets(导出特定分组):根据需要保存分组:Captured:pcap文件中的所有报文Displayed:当前显示的所有报文(若使用了过滤条件,则Displayed指的就是过滤后得到的报文)All packet:导出所有报文Selected packet:导出被选中的所有报文Range:导出...

2022-04-19 20:05:00 167

原创 srand((unsigned)time(NULL))

srand函数是随机数发生器的初始化函数。原型:void srand(unsigned seed);用法:它初始化随机种子,会提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数,如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:0...

2022-04-13 22:03:00 20

原创 Java反射:入门、使用、原理

反射之中包含了一个「反」字,所以想要解释反射就必须先从「正」开始解释。一般情况下,我们使用某个类时必定知道它是什么类,是用来做什么的。于是我们直接对这个类进行实例化,之后使用这个类对象进行操作。Apple apple = new Apple(); //直接初始化,「正射」apple.setPrice(4);上面这样子进行类对象的初始化,我们可以理解为「正」。而反射则是一开始并不知道...

2022-03-24 14:48:00 19

原创 android之stub使用介绍

什么是stub存根类是一个类,它实现了一个接口,但是实现后的每个方法都是空的。如果一个接口有很多方法,如果要实现这个接口,就要实现所有的方法。但是一个类从业务来说,可能只需要其中一两个方法。如果直接去实现这个接口,除了实现所需的方法,还要实现其他所有的无关方法。而如果通过继承存根类就实现接口,就免去了这种麻烦。代码实例:接口类:public interface IRepo { ...

2022-03-24 14:21:00 96

原创 java中impl作用

在Java开发中,通常将后台分成几层,常见的是三层mvc:model、view、controller,模型视图控制层三层,而impl通常处于controller层的service下,用来存放接口的实现类,impl的全称为implement,表示实现的意思。impl用于实现接口通俗点,看图片理解一下:...

2022-03-24 10:48:00 23

原创 sublime搜索文件的快捷键是什么

在sublime里我们用的最多的快捷功能有搜索文件、搜索函数或者方法、跳转到指定的行、查找、替换、调出当前文件里的方法、函数跟踪、关闭标签。选中单词等等下面我们逐个介绍下他们的快捷键是什么1、搜索文件,Ctrl + P打开面板直接输入文件名2、查找某个文件里的函数/方法,文件名@方法首先Ctrl + P然后选中对应的文件接着输入@文件方法名。注意:输入文件名的时候是模糊匹配的,找到...

2022-03-14 16:32:00 97

空空如也

空空如也

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

TA关注的人

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