自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android之反射机制

1.疑问在进行Android应用编写的过程中,常常听到专业术语"反射机制",是否也有同样的以下几点疑问A. 反射机制是什么?B. 反射机制能带来什么好处?C. 反射机制怎么使用?具体有什么方法?2.Java的编译运行过程在了解反射机制前,我们先了解下JAVA的编译运行过程,也就是经常提到的一次编译到处执行,如下:.java的源代码文件被编译成.class文件字节码JVM中的类加载器加载各个类.class字节码文件加载完毕之后,字节码在JAVA虚拟机JVM中执行

2020-08-05 09:52:58 887

原创 Android之运行时权限

1.有关权限Normal Permission这类权限一般不涉及用户隐私,是无须用户进行授权的,系统自动帮我们授权,只需要在AndroidMainfest.xml中声明即可,如访问网络,安装时就授权,无须每次使用时都检查权限Dangerous Permission一般会涉及用户隐私,需要用户进行授权,比如读取sdcard、访问通信录等,在程序运行时要求手动点击申请权限,也就是运行是时权限,如下:以上同一组的任何一个权限被授权,其他权限也自动被授权2.Dangerous Pe

2020-06-17 15:32:46 615

原创 BREDR之inquiry及page

1.inquiry/inquiry scaninquiry搜索周围的蓝牙设备inquiry Scan蓝牙设备开启inquiry scan模式(inquiry scan physical channel),才能够被别的蓝牙设备搜索到(address、clock、COD等)如 :苹果手机中没有对应的按键,设计为进入蓝牙设置界面后,自动进入inquiry scan模式;用户退出蓝牙界面后,自动关闭inquiry scan模式,此时其他手机就搜不到它了2.page/page scan

2020-06-03 10:27:21 1397

原创 BLE之连接间隔

1.MTUMTU:Maximum Transmission Unit,最大传输单元在BLE中,逻辑链路上至少23字节的MTU(其中:包括三字节的头部,有效载荷是20字节)2.BLE连接间隔BLE蓝牙连接成功后,即:Master和Slave,而Master和Slave之间进行交互的间隔称为BLE蓝牙连接间隔,其中,连接间隔最小的值为7.5ms,最小的增量为1.25ms一个连接间隔发送单个数据包一个连接间隔发送多个数据包3.速率影响速率的因素如下:连接间隔每

2020-06-03 10:26:29 7801

原创 Python之struct模块

官网介绍1.struct作用以Python的字符串作为表示C结构,处理存储在文件中或来自网络连接的二进制数据2.字节顺序如果第一个字符中未指定,则默认的为@,即小端另:字节序是否用大写还是小写,与具体的使用的系统有关,可以通过sys.byteorder 查看系统的字节序的大端及小端的情况通常情况:使用!表示大端开始的3.格式化字符串4.struct常用方法4.1...

2020-04-10 21:26:39 610

原创 Win10上Appium安装

1.环境准备nodejsnodejs下载地址npm在上述链接接下载的nodejs的长期支持版本中,含有npm工具,后续安装Appium会使用到2.安装2.1 nodejs的安装安装nodejs双击node-v12.16.1-x64.msi按默认方式安装即可配置环境变量,加入到系统变量的path中验证安装是否成功2.2 Appium安装由于...

2020-03-19 11:29:05 328

原创 Python打包的自定义第三方模块提示ImportError:no module named XXX

解决办法创建工程的时候选择创建虚拟环境

2020-03-12 16:09:15 979

原创 Python学习笔记|Python之Argparse

基本用法import argparseparser = argparse.ArgumentParser()parser.parse_args()结果为:$ python prog.py --helpusage: prog.py [-h]optional arguments: -h, --help show this help message and exit位置参数...

2020-03-04 11:24:12 269

原创 蓝牙PAN

1.PAN概述全称:Personal Area Network(个人局域网)蓝牙PAN使用的是传统蓝牙的技术,使用BNEP协议实现网络层到L2CAP层的协议映射,BNEP为蓝牙提供了一种新的解决方案,之前在RFCOMM上面使用PPP协议来实现网络的共享,即网络层与L2CAP层无须再插入PPP和RFCOMM层,直接插入BNEP层,PAN包括三种角色:GN、NAP、PANU2.体系架构...

2020-02-27 10:48:03 6798

原创 DNS学习记录

1.DNS概述域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字(如淘宝、百度、腾讯等)转换为IP地址。域名系统很明确地指明这种系统是用在因特网中。用户与因特网中某个主机通信时,必须要知道对方的IP地址。然而用户很难记住长达32位二进制主机地址,在应用层为了便于用户记忆各种网络应用,更多使用主机名字。但是,机器在处理IP数据报时,并...

2020-02-26 23:45:57 516

原创 Python学习笔记|Python之字母大小写转换

python之字母大小写转换1.小写转换成大写----upper()upper()函数将字符串所有小写字母转换成大写字母,如下有一个字符串,str = “hello,world”则调用如下方法可以装换str.upper(),转换后的字符串如下:"HELLO,WORLD"2.大写转换成小写----lower()lower()函数将字符串的所有大写字母转换成小写字母,如...

2020-02-25 22:07:27 12440

原创 Python学习笔记|python之pyinstaller

支持情况1.python2.72.python3.5以上pyinstaller使用pip install pyinstaller安装使用pyinstaller将py文件打包成exe文件pyinstaller -w tcpserver.py执行以上命令后会生成build及dist目录,里面有tcpserver.exe文件pyinstaller -F tcpserver.py则在d...

2020-02-25 22:03:43 178

原创 WOL介绍

1.WOL局域网唤醒(WOL)是一种以太网或令牌环计算机网络标准,允许通过网络消息打开或唤醒远程设备。该信息通常由在连接到相同局域网(例如智能电话)的设备上执行的程序发送到目标设备,还可以通过使用子网定向广播或WOL网关服务从另一网络发起消息。如果被唤醒的设备正在通过Wi-Fi进行通信,则称为补充标准必须使用无线LAN唤醒(WoWLAN)Wake-on-LAN (WoL) is...

2020-02-25 22:00:20 4099

原创 WIFI加密方式

1.不需要认证如下为不需要认证的情况,即key_mgmt为NONE,直接关联成功,不需要进行WPA的握手###2.WEP加密WEP共享密钥下,使用ASCII码连接以上请注意,在设置wep_key0时,12345使用了双引号,则表示密钥格式使用的是ASCII码,如果不是使用双引号,则表示密钥的格式使用的是十六进制WEP开放模式下,使用十六进制3. WPA-PSK/...

2020-02-25 21:29:54 3653

原创 WIFI状态机

1.WIFI配置的状态WiFi配置的状态,共三种:CURRENTwpa_supplicant目前所使用的网络DISABLEDwpa_supplicant不会尝试使用该网络ENABLEDwpa_supplicant即将使用的网络块1.1 状态转换图1.2 实例分析首先增加两个network,此时的状态均为DISABLED使能其中一个netw...

2020-02-25 21:14:27 1488

原创 WPA_Suppliant简介

1.WPA_Supplicant介绍WPA_Supplicant:开源项目源码、它主要是用来支持WEP,WPA/WPA2无线协议和加密认证的,而实际上的工作内容是通过与驱动交互上报数据给用户而用户可以通过socket发送命令给wpa_supplicant调动驱动来对WiFi芯片操作。简单的说,wpa_supplicant就是WiFi驱动和上层用户的中转站外加对协议和加密认证的支持。WPA...

2020-02-25 20:54:43 3319

原创 蓝牙Beacon

1.什么是BeaconApple在2013年9月发布移动设备时,宣布在自己的移动设备上配iBeacon的新功能,近期将推出自己的beacon硬件设备。这种技术能够实现室内定位,让你的手机能够知道是否处于一个beacon的范围内。使用这种技术能够产生很多应用程序:比如帮助你在停车场找到你的汽车,或者在零售店中根据所处位置提供优惠券或者其它一些位置相关的服务。还有很多我们现在无法想象得到的应用程...

2020-02-25 18:46:28 584

原创 BLE蓝牙广播

1.广播数据格式广播(Advertising)是一种单向的发送机制。想要被搜索到的设备可以以20毫秒到 10秒钟的时间间隔发送一段数据包。使用的时间间隔越短,电池消耗的越快,但设 备被发现的速度也就会快。数据包长度最多47个字节,由以下部分组成:1 byte preamble(1字节做报头)4 byte access address(4字节做地址)39 bytes advertisi...

2020-02-25 17:48:09 1555

原创 DHCP之T1、T2时刻

1.DHCP流程1.客户端在子网下广播DHCPDISCOVER消息发现DHCP服务器,同时携带期望获取的配置信息等选项信息。2.子网下任何可满足客户端需求的服务器都可能用DHCPOFFER消息响应,在yiaddr字段中设置可分配的IP以及在选项字段中包含配置信息。在分配新的IP地址之前,服务器应该检查IP是否已经被使用3.客户端接收到一个或者多个DHCPOFFER消息,然后客户端基...

2020-02-25 15:27:46 1816

原创 蓝牙控制器

1.控制器通常是一个物理设备,并有发送和接收装置,即能够发送或接收无线电信号,也能够将信号转换为相应的数据包。1.1 物理层BR/EDR信道采用2.4GHz的无线电,2402MHz-2480MHz,信道频宽1MHz,故有79信道。BLE信道采用2.4GHz的无线电,2402MHz-2480MHz,信道频宽2MHz,故有40信道,其中3 个固定的广播通(信道编号37.3...

2020-02-25 15:11:55 4768

原创 蓝牙主机

1.主机主机通常就是我们所说蓝牙协议栈,管理设备间是如何通信。标准蓝牙和BLE蓝牙所使用到的协议不一样,具体不同之处分别在不同章节中介绍,对于相同部分,即都使用了L2CAP协议和SDP协议1.1 L2CAP协议对于L2CAP层,主要提供无线数据包的分割和重新组装,从主机到控制器对数据进行分隔,过程是L2CAP到HCI。1.2 SDP协议SDP(即服务发现协议),主要为应用程序...

2020-02-25 15:02:10 602

原创 蓝牙单模与双模

1.单模与双模通常我们会看到蓝牙模块有如下标识,或者会听说到某个蓝牙模块是双模的,某个模块是单模的,其实双模与单模的概念是在BLE蓝牙出现之后才有的,如下的标识表示的就是蓝牙模块是双模还是单模Smart Ready蓝牙4.0双模SmartBLE单模1.1 双模双模:即支持BLE蓝牙又兼容标准蓝牙,Smart Ready 是蓝牙 4.0 里的主体,一般具有稳定电...

2020-02-25 14:57:36 9050

原创 BLE蓝牙配对方式

CapacityIOCapcaity是由设备InputCapacity和OutputCapacity组合而成,表示的是设备的输入输出的能力,InputCapacity和OutputCapacity具体如下:IO Capacity组合的IOCapacity如下:配对方式蓝牙4.0对于蓝牙4.0,从以下的图中可以看出,对于BLE蓝牙,只有两种配对方式,Just Work,...

2020-02-25 12:24:20 3627

原创 YAML详解

1.yaml格式以.yml格式为后缀键值对使用冒号结构表示 key: value,冒号后面要加一个空格2.yaml的基本语法大小写敏感使用缩进表示层级关系缩进不允许使用tab,只允许空格缩进的空格数不重要,只要相同层级的元素左对齐即可'#'表示注释3.yaml的数据类型对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dict...

2020-02-16 23:42:11 15134 1

原创 Android之相对布局RelativeLayout

1.概念相对布局与父组件或兄弟组件的相对位置2.属性2.1相对父组件相对父组件,存在同方向对齐及居中同方向对齐居中2.2相对兄弟组件相对兄弟组件,存在同方向对齐及反方向对齐同方向对齐反方向对齐android:layout_aboveandroid:layout_belowandroid:layout_toLeftandroid:la...

2020-02-12 09:39:59 323

原创 Android之线性布局LinerLayout

1.概念1.1 基础知识match_parent:匹配父窗口,填充满wrap_content:根据内容大小,来填充空间1.2 线性布局线性布局是指子控件以水平或垂直方式排列2.线性布局的属性2.1 orientation具体的值分别为:vertical及horizontalvertical垂直方向horizontal水平方向2.2 layo...

2020-02-12 09:35:17 663

原创 Android之Mainfest介绍

AndroidMainfest.xml文件组成如下图:AndroidManifest.xml是整个应用的主配置清单文件,包括应用的包名、版本号、组件、权限等信息,它用来记录应用的相关的配置信息1.组件2.权限3.全局manifest是AndroidManifest.xml配置文件的根标签, 必须指定xlmns:android和package属性, 且只包含一个applic...

2020-02-12 09:31:55 2486

原创 Android之Fragments

Fragment是Activity的一部分,Fargment引入是在Android 3.0平板上提出的,一个Activity中可以有多个Activity1.Fragment概要一个Activit中2.Fragment生命周期从以上图中可以看出:Fragment3.Fragment加载方法//todo...

2020-02-12 09:13:17 162

原创 Android之AIDL跨进程通信

AIDL:实现进程之间的通信https://blog.csdn.net/iispring/article/details/51815475AIDL中定义的方法可以接受如下的参数类型作为形参:所有的基本类型,例如int, long, char, boolean等等String、CharSequence、List、Map接口:是一个抽象的方法,里面定义了一些方法,但是具体的方法实现在其他的类...

2020-02-11 21:09:57 177 1

原创 8.Android四大组件之BroadCastReceiver

1.广播有哪些类型开机广播网络状态广播关机广播2.注册广播方式2.1 静态注册在AndroidMainfest中注册 <receiver android:name="com.example.reboottest.BootCompletedReceiver" > <intent-filter> ...

2020-02-11 21:07:35 160

原创 7.Android四大组件之Service

1.启动Service的两种方式1.1 startService及stopService状态:onCreate如果多次调用startService,并service已经处于运行的状态时,onCreate仅仅会被回调一次onStartCommand如果多次调用startService,每次启动时onStartCommand均会被调用onBind:Service中...

2020-02-11 21:06:54 286

原创 2.Android之控件

控件类型1.TextView显示文本内容,不可编辑android:id(指控件id,在其他地方可通过id找到这个控件,注意书写格式@+id/控件名);android:layout_width(指控件的宽度,有两个常用选值,wrap_content包裹控件的宽度和match_parent铺满父容器的宽度 ,当然也可以自定义宽度,单位dp,如android:layout_width=“200d...

2020-02-11 21:03:23 132

原创 3.Android之布局

Android中的布局布局文件的创建创建布局文件之前我们需要知道布局文件具体的位置,如下图那具体如何进行创建,在layout---->new----->LayoutResourceFileFile name布局文件的文件名Root elenment布局类型,如:linearlayout、Relativelayout、FrameLayout、Tab...

2020-02-11 21:02:11 180

原创 Android之Handler使用

什么是HandlerHandler:处理多进程之间的通信,比如,threadB需要调用ThreadA中的代码(如一些耗时的操作,需要在新的界面进行更新),则需要通过Handler进行handler角色的作用Message对象放入到了消息队列MessageQueue调用了Hanlder的dispatchMessage方法,在该方法中我们完成对Message的处理1.将消息加入到消...

2019-09-29 21:26:50 179

原创 Android之SharePreferences数据存储

SharedPreferencesSharedPreferences是一个轻量级的数据存储,并以key-value键值对的形式存在,符合xml文件存储1.原型public interface SharedPreferences具体实现//SharedPreferences其实是一个接口而已public interface SharedPreferences { //定...

2019-09-24 17:23:29 550

原创 5.Android四大组件之Activity

Activity状态onCreateActicvity第一次启动的时候会被调用onStartActivity正在变为可见onResumeActivity已可见,并获取焦点onPause一个Activity位于另一个Activity之上,但是不完全消失onStopActivity不可见onDestory退出了整个Activity...

2019-09-05 20:27:49 344

原创 MySQL简介

数据库的搭建docker run --name mysql -v $PWD/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7详细情况见Docker上搭建MySQL关系型数据库管理系统RDBMS: Relational Database Management System...

2019-09-05 15:23:55 292

原创 Android之Intent使用

Android中的Intent是一个非常重要且常用的类,可以用来在一个组件中启动App中的另一个组件(显示Intent)或者是启动另一个App的组件(隐式Intent),这里所说的组件指的是Activity、Service以及BroadcastIntent的作用Starting an activity可以将Intent对象传递给startActivity()方法或startActi...

2019-09-05 15:18:31 227

原创 TCP之拥塞控制

1.什么是拥塞如果发送方发送的数据接收方没有收到,那么可以判断在网络上出现了拥塞(前提是接受方对数据来者不拒)那什么情况下会向出现网络拥塞呢?发送方发送太快,交换机或路由器目前还没有能力处理(转发数据都是按照“存储+转发”的方式进行的——即接收到数据后先保存到自己的缓存,然后再挨个处理,发送到对应的接口),也就是接收缓冲区满了,导致发送方接收不到ack确认发送连续收到重复的 a...

2019-08-29 10:59:53 208

原创 TCP之慢启动与拥塞避免

1.TCP发送方变量cwndcwnd(拥塞窗口)变量,即发送方一次想发多少字节的数据cwnd 有一个初始值,RFC 2581 规定,它的大小不超过 2MSScwnd 是一个动态变化的值,它会根据网络的情况实时的调整自己,最后,cwnd 就会适应网络的情况,以保证发送 cwnd 字节的数据而网络不会拥塞ssthresh慢启动门限,这是一个阈值,当 cwnd 超过这个值的...

2019-08-29 10:59:22 838

空空如也

空空如也

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

TA关注的人

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