借助出色的Termux终端仿真器应用程序,您可以在Android上运行SSH服务器。 以前,我使用SSHDroid来实现此目的,但是使用Termux更好,因为您可以使用包管理器工作。...运行服务 您需要安装OpenSSH软件包 apt install openssh 并使用以下命令启动ssh服务器。...sshd 您的ssh服务正在端口8022上运行,以下是测试命令 ssh localhost -p 8022 添加您的公钥 您无法在Termux中进行密码身份验证,因此需要将OpenSSH公钥放入~/...比如使用stf连接到Android手机 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 然后,您可以通过连接到ssh服务对其进行测试 ssh $IP -...p 8022 现在,您可以使用公钥~/.ssh/id_rsa.pub登录到Termux SSH服务器。
CUDA_VISIBLE_DEVICES=1 nohup python -u 文件名.py --文件参数 > flush.log 2>&1 & 那么已经 在后台运行的程序,如何查看他的PID呢?...image.png 在已经关闭窗口后,新启动新窗口下,查看在哪块卡上执行的PID 对于在linux后台执行的程序,如何杀掉? kill -9 43210 表示,将卡0中,pid=43210的程序杀掉
在docker中运行jenkins 用的镜像是apline版:lts-alpine,并设置正确的时区. docker run --name jenkins_master -d \ -p 8081:8080.../jenkins:lts-alpine 可参考:https://github.com/jenkinsci/docker/blob/master/README.md 另外:jenkins_home 默认在docker...目录下,如:/var/lib/docker/volumes/jenkins_home, workspace目录也在此目录下,通过源码管理拉取代码也会放在workspace下,你可以通过脚本或其他方法发布源码...在“系统管理”->“插件管理”->“高级”->“升级站点”的url 改为:http://updates.jenkins.io/update-center.json 然后安装一些必要的常用插件,例如:
1.我jar包在linux的目录为/a/bbb.jar 正常情况下,使用在/a目录下使用 java -jar bbb.jar 可以直接运行该jar包的项目,运行成功之后使用crtl+c可以退出项目运行...,或者直接关闭连接窗口,项目也会停止运行; 2.使jar包在后台一直运行的方法 为了满足客户随时都可以访问项目的需求,把项目修改为在后台一直运行。...在/a目录下执行 nohup java -jar bbb.jar & 即可。当前目录下会生成一个nohup.out文件,控制台输入的东西会会被转移到这个文件中。最后通过exit退出终端窗口。
手机支持作为 中心设备 角色, 智能腕表 蓝牙设备支持作为外围设备角色, 为了建立 BLE 连接, 只有外围设备 或者 只有 中心设备 都不能建立 BLE 连接. (3) GATT 服务器 和 GATT...如果智能腕表 想要从手机上接受更新数据, 那么 Android 手机就是 GATT 服务器. -- 手机 和 设备 都可以作为 GATT 服务器 和 客户端 : 在本文档中使用的示例代码, 在 Android...设备上运行的 Android APP 就是 GATT 客户端, BLE 外围设备 就是 GATT 服务器....Android APP 从 GATT 服务器上获取数据, 服务器的 BLE "heart rate monitor (心率监测)" 支持 "Heart Rate Profile (心率规范 - 一种 BLE...Android APP 也可以作为 GATT 服务器; 4.
IDE 中执行 通过 mvn 或者 gradle 运行 在 CI 中执行 不论什么方式,单元测试都应该很容易就能运行,并给出一个测试结果。...当然,单元测试运行速度得快,一般是在秒级的,太慢的话就不能及时获得反馈了。 为什么要写单元测试? 单元测试的好处 确保代码满足需求或者设计规格。...Stub,当然在测试的时候,我们需要把服务调用接口的 baseUrl 设置为http://localhost:6565。...也就是说,被测单元的接口应该是稳定的、设计良好的、易于扩展的。 稳定的第二个含义是,单元测试的结果应该是稳定的。如果在不同的环境、不同的情况运行单元测试,会返回不同的结果,那就不是好的单元测试。...为什么要写单元测试之终极原因 终极原因是,作为一名优秀的工程师,如果被 QA 和产品经理 Challenge 有 BUG,能忍吗?
Attribute Protocol(ATT)— GATT 在 ATT 协议基础上建立,也被称为 GATT/ATT。ATT 对在 BLE 设备上运行进行了优化,为此,它使用了尽可能少的字节。...你可以在bluetooth.org 找到一个目前支持的基于GATT的配置文件和服务列表。 角色和责任 以下是Android设备与BLE设备交互时的角色和责任: 中央 VS 外围设备(外设)。...哪一方作为服务器取决于他们传输数据的种类。例如,如果运动追踪器想向手机报告传感器数据,运动追踪器是服务端。如果运动追踪器更新来自手机的数据,手机会作为服务端。...android:required="true"/> 但是如果想让你的app提供给那些不支持BLE的设备,需要在manifest中包括上面代码并设置required="false",然后在运行时可以通过使用...例如,这段代码通过服务端的services和 characteristics迭代,并且将它们显示在UI上。
*Attribute Protocol(ATT)—GATT在ATT协议基础上建立,也被称为GATT/ATT。ATT对在BLE设备上运行进行了优化,为此,它使用了尽可能少的字节。...哪一方作为服务器取决于他们传输数据的种类。例如,如果运动追踪器想向手机报告传感器数据,运动追踪器是服务端。如果运动追踪器更新来自手机的数据,手机会作为服务端。...在这份文档的例子中,android app(运行在android设备上)作为GATT客户端。...一般情况下Android4.3以后的手机具有蓝牙模块的话都会支持BLE,具体可以再代码中判断。 为了在app中使用蓝牙功能,必须声明蓝牙权限BLUETOOTH。...android:required="true"/> 代码中判断手机是否支持BLE特性: // 使用此检查确定BLE是否支持在设备上,然后你可以有选择性禁用BLE相关的功能 if (!
Energy)通信中,Ble Read(读操作)是一种用于从BLE服务器设备读取数据的操作。...当一个BLE设备(称为客户端)需要获取另一个BLE设备(称为服务器)上的数据时,可以使用Ble Read操作。客户端向服务器发送读取请求,并等待服务器返回所请求的数据。...Ble Read操作具有以下特点: 请求-回复模式:Ble Read操作是一种请求-回复模式的操作,客户端向服务器发送读取请求,服务器则回复所请求的数据。...Ble Write(带回复的写操作):当一个BLE设备(称为客户端)想要向另一个BLE设备(称为服务器)发送数据时,可以使用Ble Write操作。...Write No Response(无回复的写操作):在某些情况下,客户端发送的数据并不需要服务器的确认回复,或者在时间上要求更加紧凑的传输。这时可以使用Write No Response操作。
作为一种低成本的近距离无线连接协议,蓝牙在现实生活中的应用非常广泛,各种嵌入式、物联网设备随处可见。基于这一特性,我们今天讲一下如何使用蓝牙实现OTA固件升级。...比如智能手机升级Android或者iOS系统都是采用后台式DFU方式,新系统下载过程中,手机是可以正常使用的。...2.3 Nordic GitHub 作为全球最大的软件项目托管平台,Nordic也有很多软件代码放在GitHub上。...在SDK中,DFU服务的名字是:BLE_DFU_SERVICE,这个服务放在文件ble_dfu.c中,而ble_dfu.c又有两个后端实现:ble_dfu_unbonded.c和ble_dfu_bonded.c...Android版nRF Toolbox源代码:https://github.com/NordicSemiconductor/Android-nRF-Toolbox iOS版nRF Toolbox源代码:
可以在 bluetooh.org 上找到基于 GATT 的现有配置文件的服务的列表。 角色和责任 Android 设备和 BLE 设备交互时应用的角色和职责 中央与外围设备。...GATT 服务器和 GATT 客户端。...:required = true /> 如果我们希望我们的应用程序在不支持 BLE 的设备上也可以运行的时候,只需要将 true 修改成 false 就可以了。...还可以在代码中作出判断 java if(!...读 BLE 属性 一旦我们的 Android 设备连接到了 GATT 服务器并发现了服务,我们就可以在支持的位置读取或者写入属性了。
,然后添加一个MAUI类库项目Masa.Maui.Plugin.Bluetooth 添加权限 项目创建好了之后,我们首先介绍一下BLE需要的安卓权限,相信大家对各种APP首次打开的权限确认弹窗应该不会陌生...设置BLE BLE的开发第一步骤就是设置BLE 为什么要设置BLE,因为我们在使用BLE进行通讯之前,需要验证设备是否支持BLE或者检查BLE是否开启。...,安卓的系统管理服务都是同getSystemService方法获取的,该方法的参数为系统服务的名称,对应在MAUI中的方法为Android.App.Application.Context.GetSystemService...扫描 与BLE设备通讯,首先需要扫描出附近的BLE设备,我们先看看Java怎么实现的 JAVA 代码 /** * Activity for scanning and displaying available...runOnUiThread设置扫描进程在设备的前台运行,扫描到设备后触发leScanCallback 回调,然后通过私有的LeDeviceListAdapter字段保存扫描到的设备列表。
而且,从Build大会上的消息来看,目前大部分开发者的Developer Preview系统在软件上是不支持蓝牙4.0 BLE的。...这个视频所对应的代码也可以在msdn的code sample网页上找到:Keep The Keys (Bluetooth LE)。...关于Treasure Tag的任务,是以后台方式运行的,这个工程是winmd的工程. 4.3 在main project中需要添加对这个后台任务的引用,如下图3所示。...图5 4.6 Treasure Tag中提供的服务是GATT Service中标准的LinkLoss服务,并不包含如TxPower等等其他服务。...应用程序运行以后,主页面显示的是设备页面,即蓝牙能够搜索到的当前BLE 4设备,如下图6所示。 ? 图6 点击其中的Nokia Proximity Sensor,进行报警的设置。如下图7所示。 ?
低功耗蓝牙BLE外围模式(peripheral)-使用BLE作为服务端 Android对外模模式(peripheral)的支持 从Android5.0开始才支持 关键术语和概念 以下是关键BLE术语和概念的摘要...ATT经过优化,可在BLE设备上运行。 为此,它使用尽可能少的字节。 每个属性由通用唯一标识符(UUID)唯一标识,UUID是用于唯一标识信息的字符串ID的标准化128位格式。...服务 - 服务是一个集合的特点。 例如,您可以有一个名为“心率监视器”的服务,其中包括诸如“心率测量”的特征。 您可以在bluetooth.org上找到现有基于GATT的个人资料和服务的列表 。...GATT服务器与GATT客户端。 这决定了两个设备在建立连接后如何相互通信。 BLE权限 首先,需要在manifest中声明使用蓝牙和操作蓝牙的权限 在应用程序清单文件中声明蓝牙权限。...然后在运行时,您可以通过使用PackageManager.hasSystemFeature()确定BLE可用性: // Use this check to determine whether BLE
,而且相关蓝牙的服务在此可以获取bluetoothGatt.discoverServices();本人认为,由于没有产生连接所以不会返回蓝牙服务,所以BluetoothAdapter.startLeScan...5、Android 作为中心设备,最多只能同时连接 6 个 BLE 外围设备(可能不同的设备这个数字不一样),超过 6 个,就会连接不上了。...现在 BLE 设备越来越多,其实并不够用,所以在开发的过程中,需要特别的谨慎使用。...开发建议:按照需要连接设备,如果设备使用完了,应该马上释放连接(调用BluetoothGatt.close()),腾出系统资源给其他可能的设备连接。...同样,BluetoothGatt.connect()只能发起一个后台连接,不是直接连接。所以这个地方需要小心。
0参考代码 蓝牙(BLE)模块及协议.pdf:在电脑内,有助于理解ble BLE蓝牙在Android开发中的应用 - Android移动开发技术文章_手机开发 - 红黑联盟 Android...Android代码架构分析 - 51CTO.COM ****** 在具体的xxxInfo,java中有很多实体类中是没有get/set的方 法,而是直接使用public的字段名。...答:是 43连多个ble设备 如何读取一次,我连接的多个设备的 rssi 值_百度知道 44服务一直在后台运行 停止当前服务:Process.killProcess(Process.myPid...()); android service杀死后又起来了 如何让android的service一直在后台运行?...是接口的bug,我的解决方案是当出现129的时候我通过代码将蓝牙重启来避免这个问题 android 蓝牙4.0 BLE 为什么回调onServicesDiscovered方法返回的status参数一直是
: 在代码中判断当前设备是否支持...首先,在清单文件中声明需要使用BLE特性,不过required这里设置为false,然后在app运行时通过 PackageManager.hasSystemFeature()来判断设备是否支持ble:...要在BLE设备上连接到GATT服务,可以使用connectGatt()方法。...device.connectGatt(context, true, mGattCallback); 以上代码可以连接到由BLE设备托管的GATT服务,并返回一个BluetoothGatt实例,然后可以使用它来执行...,特性等 一个BLE设备可能有多个服务BluetoothGattService,同样每个服务可以有多个BluetoothGattCharacteristic特性。
Ble蓝牙App(四)UI优化和描述符 前言 上一篇中了解了特性和属性,同时显示设备蓝牙服务下的特性和属性,本文中就需要来使用这些特性和属性来完成一些功能。...,那么下面我们修改MainActivity中的代码,因为默认是显示的,所以可以在连接蓝牙设备发现服务之后就隐藏这个布局,修改如下图所示: 然后就是在断开连接的回调时,显示空内容布局,再清空服务列表,刷新适配器...,当设备的蓝牙服务和特性不属于SIG定义的,是厂商自定义时,我们最好就显示完成的UUID,为了方便使用,在ble包下新建一个BleConstant类,代码如下所示: object BleConstant...中的MaterialToolbar控件的内容,因为我想把设备名称作为标题,设备Mac地址作为子标题,所以增加两个子标题的属性值: <com.google.android.material.appbar.MaterialToolbar...在 BLE 应用中,Descriptor 充当了配置和元数据信息的重要角色,帮助设备之间准确地交换和理解数据。
服务器储存了多个属性。当客户向服务器请求时,服务器会把自己的属性列表发给客户。随后,客户可以向服务器读取或写入某一个属性值。用读写的方式,通信双方实现了双向通信。 ? 以智能手表为例。...树莓派作为BLE外设 下一步,我们尝试用树莓派进行BLE通信。我们先把一个树莓派改造成BLE外设,同时它也将充当连接建立后的服务器。这个过程较为复杂。你可以借用Node.js下的bleno库。...树莓派作为BLE中心设备 我们拿另一个作为BLE的中心设备进行扫描,并发起连接请求。连接建立后,该服务器将充当客户。和bleno对应,Node.js下有一个叫noble的项目,可以便捷地完成这一任务。...如果你想自定义开发,那么可以在node_modules/noble/examples/pizza/参考源代码,或者到github查看。...在一个典型的超市应用场景中,每件商品可以带上一个Beacon。消费者可以用手机看到自己周围有哪些商品,工作人员也可以用手机来清点货物。商家还可以在服务器上提供商品相关的质保、促销等信息。
领取专属 10元无门槛券
手把手带您无忧上云