- 博客(258)
- 收藏
- 关注
原创 pip3 install 报错 SSLError SSLCertVerificationError
查了半天大概就是SSLCertVerification 的错误,结果发现竟然是。(仔细想想也可以理解)
2024-11-16 21:55:48
383
1
原创 sepolicy进阶小记
上下文定义标准的label取名方式是需要被遵守的,因为很多宏里面就直接用了。。hwservice_contexts这里标注的是使用hwbinder的服务通信的接口标准的label取名方式是以_hwservice结尾hwbinder是框架与供应商内容之间的ipc通信模块同理,还有个vndbinder,是供应商内容之间的ipc通信模块Android 8 之后,原先的bin...
2023-09-15 14:53:00
389
原创 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
2547
原创 android.os.handlerexecutor
android.os.HandlerExecutor是一个Android平台的Executor,它可以将任务发布到指定的Handler运行。可以将HandlerExecutor视为一种将任务提交到Handler的简单方法,与使用Handler.post(Runnable)相比,HandlerExecutor具有更好的可读性和可维护性。在Android中,UI线程(也称为主线程)用于处理UI相关...
2023-08-22 10:13:00
250
原创 Java try...catch异常后还会继续执行吗
catch 中如果你没有再抛出异常 , 那么catch之后的代码是可以继续执行的 ,但是try中 , 报错的那一行代码之后 一直到try结束为止的这一段代码 , 是不会再执行的://代码1public static void test() throws Exception { try { throw new Exception("参数越界"); ...
2023-07-18 20:32:00
794
原创 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
124
原创 【SIM】MCC(移动国家码)和 MNC(移动网络码)
国际移动用户识别码( IMSI) international mobile subscriber identity 国际上为唯一识别一个移动用户所分配的号码。 从技术上讲,IMSI可以彻底解决国际漫游问题。但是由于北美目前仍有大量的AMPS系统使用MIN号码,且北美的MDN和MIN采用相同的编号,系统已经无法更改,所以目前国际漫游暂时还是以MIN为主。其中以O和1打头的MIN资源称为IRM(...
2023-03-23 11:08:00
5920
原创 Android数据结构-SparseArray实现原理
SparseArray家族SparseArray基于键值对存储数据,key为int,value为object,简单使用如下://声明 SparseArray<String> sparseArray= new SparseArray<>(); //增加元素,append方式 sparseArray.append(0, "m...
2023-03-21 21:05:00
167
原创 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
487
原创 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
192
原创 一文读懂 Handler 机制
Handler 在整个 Android 开发体系中占据着很重要的地位,是一种标准的事件驱动模型,对开发者来说起到的作用很明确,就是为了实现线程切换或者是执行延时任务,稍微更高级一点的用法可能是为了保证多个任务在执行时的有序性。由于 Android 系统中的主线程有特殊地位,所以像 EventBus 和 Retrofit 这类并非 Android 独有的三方库,都是通过 Handler 来实现对 ...
2023-02-02 16:15:00
74
原创 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
148
原创 Java字符串 equals()与==的比较
理解 equals() 方法和==运算符执行的是两个不同的操作是重要的。如同刚才解释的那样,equals() 方法比较字符串对象中的字符。而==运算符比较两个对象引用看它们是否引用相同的实例。下面的程序说明了两个不同的字符串(String)对象是如何能够包含相同字符的,但同时这些对象引用是不相等的:String s1 = "Hello";String s2 = new String(s1)...
2023-01-16 22:25:00
50
原创 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
261
原创 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
316
原创 java中 implement和extends的作用和区别详细解释
一、extends是继承类,implements是实现接口。类只能继承一个,接口可以实现多个。extends继承父类的时候可以重写父类的方法,也可以调用父类的非私有方法;implements实现接口,必须实现接口的所有方法。二、extends后面跟的是类,表示继承关系;如public class Dog extends Animalimplements后面跟的是接口,表示实现接口(...
2022-11-22 11:09:00
210
原创 频段和信道
结合前文的概念和网络覆盖设计中有效传输距离计算公式,可以分别计算出2.4G、5G和6G频段的射频覆盖范围。通过计算结果会发现单个AP的覆盖范围有限,通常需要部署多个AP才能完成完整的网络覆盖。多个AP的组网中,相邻AP间通常会存在同频干扰问题,需要通过规划无线信号工作的频段和信道来减少同频干扰问题。另外通过信道捆绑可以提高无线终端的网络速率。2.4G、5G、6G频段各有不同的工作信道。...
2022-11-21 19:48:00
103
原创 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
71
原创 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
302
原创 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
62
原创 Android-WiFi开发之 WifiManager
简介:WifiManager这个类, 是 Android 暴露给开发者使用的一个系统服务管理类, 其中包含对WiFi的响应的操作函数; 其隐藏掉的系统服务类为IWifiService, 为Android私有的, 其具体实现, 未暴露给用户; 只需要使用WifiManager进行函数操作完成UI, 监听对应的广播消息, 就可完成功能了. 换言之, WifiManager会调用service简介地...
2022-10-13 20:19:00
133
原创 解决Ubuntu下VScode终端字体显示不正常
Settings.json中添加如下配置项:"terminal.integrated.fontFamily": "monospace",如下:结果:
2022-09-27 20:25:00
143
原创 Android编译选项eng、user、userdebug的区别
Android编译选项eng、user、userdebug的区别https://www.xuebuyuan.com/1408769.htmlAndroid编译选项中eng、user、user-debug主要区别https://blog.youkuaiyun.com/yanghanxing110/article/details/77721007eng、user、userdebug区别简述https://b...
2022-09-22 18:59:00
462
原创 Android AP/BP理解
AP和BP简介大多数手机都至少存在两个处理器,一个负责AP侧,一个负责BP侧。数的手机都含有两个处理器。操作系统、用户界面和应用程序都在Application Processor(即AP)(应用处理器)上执行,AP一般采用ARM芯片的CPU。运行在Application Processor(AP)的软件包称为AP包,包括操作系统、用户界面和应用程序等;手机射频通讯控制软件,则运行在...
2022-09-21 16:39:00
151
原创 深入浅出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
32
原创 Android BugReport的组成部分和常见问题(详细说明)
Android BugReport 中包含文本 (.txt) 格式的 dumpsys(转储系统)、dumpstate(转储状态)、Logcat 数据,便于轻松搜索特定内容。以下各部分详细说明了BugReport 的组成部分及常见问题,并提供了关于查找与这些错误相关的日志的实用提示和 grep 命令。一、获取 BugReport连接测试手机,进行相应测试后,打开终端,执行:$ adb shel...
2022-09-07 14:47:00
477
原创 【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
140
原创 【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
321
原创 Preference 三种监Preference 三种监听事件说明听事件说明
3者的区别使用方式不同onPreferenceClick 与onPreferenceChange 是通过preference.setOnPreferenceClickListener preference.setOnPreferenceChangeListener来注册listener使用的 。Preference.OnPreferenceClickListener, Prefer...
2022-07-20 15:28:00
202
原创 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
152
原创 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
144
原创 VS Code刷题红色波浪线报错解决
使用LeetCode插件时,代码在VSCode中各种标红,如下:这个可能并不是很严重,只是针对于有强迫症的人群。有的在本地VSCode中标红,提交的时候却能通过编译。问题在于少了这两行代码:#include<bits/stdc++.h>using namespace std;如下问题解决了:...
2022-06-28 14:29:00
414
原创 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
180
原创 搜索思想 - DFS & BFS
1.DFS(深度优先搜索)深度优先搜索的步骤分为 1.递归下去 2.回溯上来。顾名思义,深度优先,则是以深度为准则,先一条路走到底,直到达到目标。这里称之为递归下去。否则既没有达到目标又无路可走了,那么则退回到上一步的状态,走其他路。这便是回溯上来。1.示意图DFS的重要点在于状态回溯。2.代码如下int goal_x = 9, goal_y = 9; //目标的坐标,暂时设置为右...
2022-05-02 16:32:00
36
原创 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
512
原创 Wireshark分割、合并pcap文件
1. 分割pcap文件File->Export Specified Packets(导出特定分组):根据需要保存分组:Captured:pcap文件中的所有报文Displayed:当前显示的所有报文(若使用了过滤条件,则Displayed指的就是过滤后得到的报文)All packet:导出所有报文Selected packet:导出被选中的所有报文Range:导出...
2022-04-19 20:05:00
298
原创 srand((unsigned)time(NULL))
srand函数是随机数发生器的初始化函数。原型:void srand(unsigned seed);用法:它初始化随机种子,会提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数,如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00:0...
2022-04-13 22:03:00
49
原创 Java反射:入门、使用、原理
反射之中包含了一个「反」字,所以想要解释反射就必须先从「正」开始解释。一般情况下,我们使用某个类时必定知道它是什么类,是用来做什么的。于是我们直接对这个类进行实例化,之后使用这个类对象进行操作。Apple apple = new Apple(); //直接初始化,「正射」apple.setPrice(4);上面这样子进行类对象的初始化,我们可以理解为「正」。而反射则是一开始并不知道...
2022-03-24 14:48:00
37
原创 android之stub使用介绍
什么是stub存根类是一个类,它实现了一个接口,但是实现后的每个方法都是空的。如果一个接口有很多方法,如果要实现这个接口,就要实现所有的方法。但是一个类从业务来说,可能只需要其中一两个方法。如果直接去实现这个接口,除了实现所需的方法,还要实现其他所有的无关方法。而如果通过继承存根类就实现接口,就免去了这种麻烦。代码实例:接口类:public interface IRepo { ...
2022-03-24 14:21:00
201
原创 java中impl作用
在Java开发中,通常将后台分成几层,常见的是三层mvc:model、view、controller,模型视图控制层三层,而impl通常处于controller层的service下,用来存放接口的实现类,impl的全称为implement,表示实现的意思。impl用于实现接口通俗点,看图片理解一下:...
2022-03-24 10:48:00
51
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人