自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 问答 (1)
  • 收藏
  • 关注

原创 flutter CupertinoPicker控件

flutter CupertinoPick

2022-12-08 13:28:03 676 1

原创 flutter widget

MaterialApp:材料设计app组件,一般放在根节点scaffold:带有顶部导航栏,侧边栏,底部导航栏的封装组件appBar:顶部导航栏,bottomNavigationBar:底部导航栏RefreshIndicator 刷新TextField 输入框

2022-05-30 10:48:27 151

原创 flutter使用坑点记录

1 container点击失效一般container点击,可能会在container外包一层 GestureDetector(),有时候你会发现点击事件无效或是只有点击了文字或图片之后才会触发点击事件解决办法1 为Container设置背景颜色2GestureDetector的 behavior 属性设置为 opaque 或 translucentGestureDetector的 behavior 属性解释GestureDetector 的behavior处理事件的方式有以下三种:HitTes

2022-05-27 14:23:45 1206

原创 mariaDB安装与配置

cd到 /etc/yum.repos.d/目录下 ,使用touch MariaDB.repo创建MariaDB.repoMariaDB.repo文件vim MariaDB.repo 进入配置文件在官网找到配置信息选择阿里云镜像配置信息将配置信息赋值粘贴到MariaDB.repo文件内,保存退出执行安装命令sudo dnf install MariaDB-server开启服务命令sudo systemctl start mariadb开机启动命令systemctl enable

2022-04-23 10:36:58 2680

原创 Linux安装和配置redis

下载redis添加链接描述将下载的redis压缩包上传到服务器解压redis压缩包,cd到解压的redis文件夹内,执行make这表示make成功,然后执行make installmake install执行成功在redis目录下有一个utils文件夹,cd utils进入此文件夹执行cp redis_init_script /etc/init.d,将redis_init_script 拷贝到/etc/init.d下在解压的redis文件夹下有一个redis.conf配置文件mkdi

2022-04-23 07:56:41 167

原创 HTTP消息推送

用户可以通过门户或者调用北向API接口添加北向应用订阅url,平台可以将符合订阅条件的设备消息以HTTP POST方式推送至指定的url。目前支持设备数据变化通知、设备指令响应通知、设备事件上报通知、设备上下线通知等消息类型的订阅,各协议对应消息类型及格式参见订阅推送消息格式。订阅级别分为设备级,产品级和分组级。目前订阅生效时间为1分钟左右。 支持HTTP和HTTPs两种推送方式,HTTPs方式具备数字签名和通讯加密能力,具有较高的安全性。HTTP推送方式采用明文传输,可能造成推送消息被窃听或篡改,具有安全

2022-04-11 14:01:39 4119 1

原创 设备接入(LWM2M协议)

Register(注册/登录)Register接口用于设备向平台进行注册,通过发送CoAP POST请求到平台进行身份认证,认证通过,则设备被激活;认证失败,平台会向设备返回失败码。交互流程如下图所示:LWM2M业务数据通过CoAP协议进行封装,参数定义参见下表:Update(更新)在lifetime超期之前,设备需要发起Update流程,否则平台会认为设备离线,再次连接需要重新发起Register,当设备参数(lifetime、binding mode、ObjectLinks等)发生变化,.

2022-04-07 10:55:17 3900

原创 创建产品与添加设备

登录之后点击这里控制台进入控制台点击产品,之后再点击创建产品如上设置点击创建的产品进入产品中心选择设备管理,点击添加设备输入要添加的设备信息,点击确定添加设备

2022-04-07 08:50:42 434

原创 开通通用组件服务

1.在平台首页,点击菜单“产品服务”->“平台服务”->“通用组件服务”。2.进入通用组件服务页,可看到该服务详细介绍,点击“申请开通”按钮。3.在服务购买页面,点击“立即购买”按钮。4.跳转到支付界面,阅读开通协议,点击“立即支付”。5.支付成功,页面跳转到控制台的“费用管理”-“订单管理”页面,可查看详细的订单信息。6.至此,通用组件服务已开通,用户可进入通用组件服务控制台,使用终端管理、应用创建等功能。...

2022-04-07 08:33:22 381

原创 service启动流程

2022-04-06 14:27:02 1144

转载 java反射 记录笔记

参考博文添加链接描述先建一个 User 类:public class User { private String name = "知否君"; public String sex = "男"; public User() { } public User(String name, String sex) { this.name = name; this.sex = sex; } public void eat()

2022-04-01 11:13:01 116

转载 viewgrop测量

参考博文地址 添加链接描述import android.content.Contextimport android.graphics.Rectimport android.util.AttributeSetimport android.util.Logimport android.view.ViewGrouppublic class MyViewGrop @JvmOverloads constructor (context: Context, attrs: AttributeSet?

2022-03-30 10:42:06 89

原创 nginx配置及常用命令总结

vim nginx.conf 进入到nginx配置可以看到一段server代码块,如下代码,集体含义请看我添加的注释 server { listen 80; #监听80端口 server_name localhost; #请求时ip #charset koi8-r; #access_log logs/host.access.log main; location / {

2022-03-20 19:45:18 2355

原创 linux安装nginx

nginx下载地址添加链接描述下载nginx并上传到服务器后解压1安装gcc环境yum install gcc-c++2安装pcre库,用于解析正则表达式yum install -y pcre pcre-devel3 zlib压缩和解压缩依赖yum install -y zlib zlib-devel4 ssl安全的加密的套接字协议层,用于http安全传输(即https)yum install -y openssl openssl-devel编译之前先创建nginx临时目录mkdir

2022-03-20 12:23:01 989

原创 linux服务器安装tomact

先去tomcat官网下载Tomcat压缩包(tar.gz格式压缩包),然后将压缩包上传到服务器/usr/local路径下,并解压(上传方法以及解压方法参考此篇文章添加链接描述)通过cd命令进入到解压后的tomcat的bin文件下,通过ls命令可以看到bin文件夹下有许多可执行命令输入 ./startup.sh 回车执行出现Tomcact started表示tomcat启动成功此时在浏览器输入你的服务器公网ip+:8080 回车即可出现加载tomcat默认网页如果你使用的是云服务器,还

2022-03-14 16:46:15 2230

原创 linux安装jdk

安装之前,可以先输入Java -version命令,如果提示没有找到,则表示未安装可以使用 mkdir命令创建文件夹,这里我们在usr路径下创建java文件夹用来作为jdk安装路径,使用cd命令切换到usr路径下,输入mkdir /java创建java文件夹(这里对linux系统目录不了解,可以看下另一博客添加链接描述)在oracle官网下载jdk(添加链接描述)可以通过filezilla这个软件将文件上传到服务器,filezilla下载地址 添加链接描述下载安装完成后,打开filezill

2022-03-14 13:16:06 1782

原创 linux目录以及命令行

linux目录结构Linux操作指令cd 切换目录 pwd 查看当前目录 ls、ll 显示当前目录内容mkdir 创建目录 cp 复制文件与目录 mv 移动或者重命名文件夹rm 删除文件或目录 find 查找目录或文件cd空格…(两个点)返回上级目录mkdir空格./+文件夹名 在当前目录创建文件夹mkdir空格-p空格./a/b/c 创建

2022-03-13 23:08:23 2816

原创 网络基础TCP/IP

TCP/IP协议族按层次分为以下4层:应用层、传输层、网络层、数据链路层应用层应用层决定向用户提供应用服务时通信活动。 TCP/IP协议族预存了各类通用服务。比如FTP(File Transfer Protocol,文件传输协议)和DNS(Domain Name System,域名协议)服务就是其中两类。HTTP协议也处于该层传输层传输层对上层应用层,提供位于网络连接中的两台计算机之间数据传输。在传输层有两个性质不同的协议:TCP(Transnission Control Protocol,传输控制

2022-03-02 22:02:17 1791

原创 android全屏模式

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //获取最顶层的View getWindow().getDecorView() .setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE) //设置状态栏透明

2022-03-02 20:22:32 2566

原创 将view转换成bitmap保存

/** * setDrawingCacheEnabled * 保留我们的绘制副本 * 1.重新测量 * 2.重新布局 * 3.得到我们的DrawingCache * 4.转换成Bitmap */ // ll_content 要保存的vi.

2021-08-18 11:53:04 201

转载 哈希表(散列表)

转载地址:原作者原文本文纯属个人笔记一、什么是哈希表在回答这个问题之前我们先来思考一个问题:如何在一个无序的线性表中查找一个数据元素?注意,这是一个无序的线性表,也就是说要查找的这个元素在线性表中的位置是随机的。对于这样的情况,想要找到这个元素就必须对这个线性表进行遍历,然后与要查找的这个元素进行比较。这就意味着查找这个元素的时间复杂度为o(n)。对于o(n)的时间复杂度,在查找海量数据的时候也是一个非常消耗性能的操作。那么有没有一种数据结构,这个数据结构中的元素与它所在的位置存在一个对应关系,这样

2021-08-03 13:54:27 4089

原创 LiveData 解析

@MainThread public void observe(@NonNull LifecycleOwner owner, @NonNull Observer<? super T> observer) { assertMainThread("observe"); if (owner.getLifecycle().getCurrentState() == DESTROYED) { // ignore ret.

2021-01-13 13:48:42 106

原创 ktolin单例模式

饿汉式Java实现public class SingletonDemo { private static SingletonDemo instance=new SingletonDemo(); private SingletonDemo(){ } public static SingletonDemo getInstance(){ return instance; }}Kotlin实现object SingletonDemo懒汉式j

2020-11-19 15:25:39 88

原创 android关于时间 nanoTime(),currentTimeMillis(),uptimeMillis()

时间单位秒:second毫秒:Millisecond微妙:Microsecond纳秒:nanosecond1秒 = 1000毫秒;1毫秒=1000微秒, 1微秒=1000纳秒System.nanoTime()单位:纳秒android系统开机到当前的时间系统设置修改时钟,不影响该时间重启android系统后该值会重置为0System.currentTimeMillis()单位:毫秒(milliseconds)从1970.1.1 UTC 零点开始到当前的时间修改系统时钟,会直接修改该

2020-10-29 16:35:42 1483

原创 implementation、api、compileOnly区别

implementation:只能在内部使用此模块,比如我在一个libiary中使用implementation依赖了gson库,然后我的主项目依赖了libiary,那么,我的主项目就无法访问gson库中的方法。这样的好处是编译速度会加快,推荐使用implementation的方式去依赖,如果你需要提供给外部访问,那么就使用api依赖即可api:该依赖方式会传递所依赖的库,当其他module依赖了该module时,可以使用该module下使用api依赖的库。当我们依赖一些第三方的库时,可能会遇到com.

2020-10-25 11:30:29 511

原创 Handler源码解析

首先先让我们来了解下handler中常用的一些方法:1.createAsync(Looper looper, Handler.Callback callback) createAsync(Looper looper)创建一个新的处理程序,它所发布的消息和运行表不会受到同步障碍的影响,比如显示vsync。2.dispatchMessage(Message msg)分发消息3.handleMessage(Message msg)接收消息4.hasCallbacks(Runnable r)

2020-10-19 16:24:58 607

原创 Rect、RectF矩形类

int centerX()、int centeY(),获取的int值 float exactCenterX()、floatexactCenterY()同上获取的是float类型值,精确些

2020-09-23 20:06:00 1981

原创 JNI

//java代码public class Jnilx { public static void main(String[] args) { Jnilx jnilx=new Jnilx(); String password=jnilx.getPassWordString(); System.out.println("PassWor:"+password); } //使用 native修饰方法 此方法获取从c端方法里返回的数据 public native String getPas

2020-09-11 13:34:07 93

原创 Activity启动流程 以API28为基础

从Activity的strarActivity的启动过程,startActivity有好几种重载方法你但最终都会调用startForResult()方法 public void startActivityForResult(@RequiresPermission Intent intent, int requestCode, @Nullable Bundle options) { if (mParent == null) { options

2020-08-17 11:44:05 340

原创 WindowManager使用

public class WindowHelper { private static volatile WindowHelper mInstance = null; private WindowManager windowManager; private WindowManager.LayoutParams lp; private Context context; private Handler handler=new Handler(); private

2020-07-08 13:06:43 837

原创 添加圆角的view

在values文件下创建styles.xml<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="viewOutLineStrategy"> <attr name="clip_radius" format="dimension"></attr> <attr name="clip_side" format=

2020-06-26 15:05:01 173

原创 笔记 camearX基本使用

public class CaptureActivity extends BaseActivity { //设置使用后置摄像头 private CameraX.LensFacing mLensFacing = CameraX.LensFacing.BACK; //设置旋转角度 private int rotation_0=Surface.ROTATION_0; //设置分辨率 private Size resolution = new Size(1280,

2020-06-26 12:44:14 798

原创 笔记 hashmap循环遍历

public static void main(String[] args) { Map<String,String> map=new HashMap<String,String>(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); map.put("4", "value4"); //第

2020-06-25 10:09:31 116

原创 配置环境变量

Java_HOME:配置JDK安装路径PATH:配置JDK命令文件位置(bin文件路径)CLASSPATH:配置类库文件位置(lib文件)     .;+lib文件路径

2017-03-16 10:46:52 275

空空如也

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

TA关注的人

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