- 博客(60)
- 资源 (2)
- 收藏
- 关注
原创 MQTT断线重连及订阅消息恢复
MQTT断线重连及订阅消息恢复工具MQTT客户端是用的 paho http://www.eclipse.org/paho/问题采用以下配置connOpts = new MqttConnectOptions(); connOpts.setCleanSession(true); connOpts.setConnectionTimeout(10); connOpts.setKeepAliveInterval(90); connOpts.setAutomaticRecon
2021-08-26 18:06:49
6318
原创 android protobuf使用
protobuf序列化使用参考:README.mdhttps://github.com/google/protobuf-gradle-pluginhttps://jingyan.baidu.com/article/925f8cb8a6c21ac0dce0566e.htmlhttps://www.jianshu.com/p/0f047e1b7e16开发环境Android studio 3.6.1jdk 1.8gradle 5.6.4gradle 插件 3.6.11.引入插件在工程目录下的
2021-08-16 18:15:14
804
原创 ImmersionBar状态栏下多出状态栏高度的白条
ImmersionBar白条bug,解决方法我出bug的代码 public static void setColorImmersionBar(Activity activity, boolean isDark) { if (isDark) { ImmersionBar.with(activity) .navigationBarColor(R.color.black_theme)
2021-07-15 15:18:52
687
原创 Activity进出场动画失效
我做了弹出一个和Dialog一样的Activity,用于播放视频, 想做淡入淡出的效果,但是Activity进出场动画失效Activity进出场动画失效Intent intent = new Intent(activity, VideoViewActivity.class);intent.putExtra("videoUrl", videoUrl);startActivity(intent);overridePendingTransition(R.anim.anim_fade_in, R.anim
2021-06-04 10:00:48
348
原创 field.setAccessible(true)的作用
field.setAccessible(true) 设置可以访问private变量的变量值public class User { private String name; public User(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) {
2021-05-27 14:55:52
4353
原创 Gson json数组转集合
Gson 数组转集合正常使用,一堆难以理解的TypeTokenGson gson = new Gson();List<Person> statusLs = gson.fromJson(result, new TypeToken<List<Person>>(){}.getType());自己写的工具类用法 //data是Person的json数组 List<SensorType> list = JsonUtils.jsonArray2List(
2021-05-13 15:48:20
760
原创 Activity跳转动画,overridePendingTransition第一次启动时无效
overridePendingTransition第一次启动时无效首次打开app时由启动页跳转登录页时, 我设置了Activity跳转动画,可以不生效private void openNextActivity() { boolean firstLaunch = SpUtils.isFirstLaunch(); if (firstLaunch) { startActivity(new Intent(SplashActivity.this, Guide
2021-01-30 10:37:59
614
3
原创 Android Error:Execution failed for task ‘:app:compileDebugJavaWithJavac‘ 解决方案
参考:https://blog.youkuaiyun.com/qq_36910634/article/details/94322697把命令gradlew compileDebug --stacktrace 改成 gradlew compileDebugJavaWithJavac编译器提示:java1.8缺少目标版本build.gradle中添加 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targe
2021-01-20 09:52:07
375
原创 Android无需上下文context获取当前Application和Resources
无需上下文context获取当前ApplicationAndroid使用反射获取当前Application没有Activity,没有Application,快速获取当前应用的Application。当个工具类用,再也不烦恼,目前在Android Q上并且是targetSdk为29也能获取到,已验证可用。 /** * 获取当前应用的Application * 先使用ActivityThread里获取Application的方法,如果没有获取到, * 再使用AppGlobal
2020-09-23 20:18:26
1930
2
原创 SystemClock.sleep(5000);
睡眠当前线程不用处理异常,SystemClock.sleep(5000);不用自己处理异常,代码看着清晰一点。Thread.sleep(5000);需要自己处理异常,烦 try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); }...
2020-09-14 11:38:05
1885
原创 判断字符串是否使用ISO-8859-1码表
判断字符串是否使用ISO-8859-1码表如果是,就转成utf-8编码 try { //解决乱码问题, 判断当前字符串是否是使用ISO-8859-1码表, 如果不是就不会走到if里 String title = new String("哈哈".getBytes(), "ISO-8859-1"); Log.e("----TAG", "title: " + title); if (title.equals(n
2020-07-11 16:43:41
975
原创 ThreadLocal详解
参考: https://blog.youkuaiyun.com/hzw19920329/article/details/51707232说明: 参考源码为Android2.3-4.4,请读者注意 , 不同的版本有所差异!今天在复习Handler消息处理机制原理的时候,发现自己对android的ThreadLocal部分理解还不是很到位,在此做个总结,先来说说为什么会在Handler消息处理机制中出现ThreadLocal这个东西吧,我们都知道Handler发送消息到MessageQueue中,Looper从Mess
2020-07-09 16:07:44
208
原创 Looper.loop()方法跑的是死循环, 为什么我们的Activity生命周期方法还能在主线程中运行?
参考: https://www.jianshu.com/p/733b1cc9b457ActivityThread就是我们常说的主线程或UI线程,ActivityThread的main方法是整个APP的入口MainLooper在它的main方法中被创建。 //ActivityThread的main方法 public static void main(String[] args) { ...... Looper.prepareMainLooper(); //
2020-07-06 18:15:58
493
原创 ubuntu桌面版安装jdk
安装jdk$: chmod 777 xxxx.bin //修改权限,获取读写执行权限$: ./xxxx.bin //执行当前目录该文件安装完成配置环境变量修改当前用户的 .profile文件, 环境变量只对当前用户有效cd ~/vi .profilectrl + h //显示隐藏文件export JAVA_HOME=/home/kavin/kavin/install/jdk1.6.0_45/export PATH=$JAVA_HOME/bin:$PATHexport
2020-07-04 20:36:07
569
原创 could not parse error string安装失败
could not parse error string无法解析错误字符串因为apk有中文, 把中文去掉就可以成功安装
2020-05-24 01:17:47
2450
原创 android兼容包中类对应androidx中的类对照表
文章来自https://developer.android.google.cn/jetpack/androidx/migrate/class-mappings类映射下表列出了从旧支持库软件包到新 androidx 软件包的当前映射关系。您也可以下载包含这些映射信息的 CSV 格式文件。android.archandroid.arch.core支持库类 AndroidX 类core.ex...
2020-03-17 20:45:12
635
原创 android圆角正方形裁剪view.setOvalview方法的使用
目标: 圆角正方形1.布局<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" x...
2020-03-09 21:03:59
704
原创 android圆形图片裁剪view.setOvalview方法的使用
目标: 把一张正方形的图片裁剪成为圆形的图片1.第一步布局好.xml文件在RelativeLayout 相对布局中放置两个一样大的图片控件: imageView2覆盖在imageView1上面<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android...
2020-03-09 20:43:24
538
原创 Android studio插件集合
请参考:Android studio插件集合https://www.cnblogs.com/Awangzhen/p/8906335.html1. adb-idea可以一键清理缓存并重启APP2. JVM Debugger Memory ViewAndroid Studio和IDEA中一个很有用的内存调试插件详细文章可参考说一说Android Studio和IDEA中一个很有用的内存调...
2020-03-08 19:20:05
387
原创 android studio 安装完成插件ButterKnife,但无法使用?
1.在设置里找到插件正常安装好2.选择activity_main右键Generate菜单中没有相应的插件选项3.我们需要导入相应的依赖包implementation ‘com.github.stephanenicolas:butterknife:10.0.0.6’4.在右键试一下ok行了,有相应的ButterKnife插件选项了5.点击选项自动生成代码6.需要注意要是.java...
2020-03-07 18:02:18
3251
8
原创 3dmax安装后破解Couldn't write to disk !
3dmax安装后破解Couldn’t write to disk !Make sure that you have selected the correct paths and that you have the permission to write there !解决方法:这句话是的意思是:不能写入磁盘,你选中的磁盘路径有权限保护。那我们就把指定的文件夹权限保护改一下就好了,把 选中...
2019-05-24 23:01:57
3655
原创 VMware12版虚拟机怎么安装win7系统(win7镜像ios安装版)
转自:http://jingyan.baidu.com/article/cd4c29791fcf1b756e6e6034.htmlVMware12版虚拟机怎么安装win7系统(详细教程)现 在很多人都会在虚拟机上体验不同的系统,可是很多时候我们并不能非常顺利的安装好系统,这中间经常会出现很多差错,导致我们安装不上,比如在虚拟机上安装 win7系统,很多人发现安装的时候总是会跳到工具箱中去,导致...
2019-03-17 21:37:52
16721
8
原创 VMware12虚拟机中安装win7(安装好的解压版Win7_64-cl1.vmdk)
VMware12虚拟机中安装win71.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.完成
2019-03-17 15:13:49
5350
1
原创 VMware 12虚拟机win7中添加摄像头
vmware 12虚拟机win7中添加摄像头第一步: 右键设置settings;2.第二步: 选择USB 然后后面的√都勾上,如果是灰色的勾不上,先关掉虚拟机里的系统再勾上; 当然勾完记得点下面的确定3.第三步:打开虚拟机的系统,右下角会有一个摄像头的 图标,右键点击连接connect(我这里是已经连成功后的)4.完成了可以使用摄像头了(我这里笔记本内置的)...
2019-03-17 14:42:50
18788
5
原创 原位标注挑筋包括集中标注的通长筋吗?
看11平法图集,有一点不明白,网上说的也不同。请问当原位标注梁两端上部的支座负筋和集中标注的通长筋有部分型号一致时,原位标注两端的支座负筋数量包含集中标注的通长筋吗?如果原位标注梁两端上部的支座负筋和集中标注的通长筋型号不一致时,情况又是怎样?解答: 这样就应该能看明白了吧 请问当原位标注梁两端上部的支座负筋和集中标注的通长筋有部分型号一致时,原位标注两端的支座负筋数量包含集中标注的通长筋吗?【
2017-12-07 14:03:08
4189
原创 storm ui查看不了任务详情
点击任务wordcount进入,发现页面没有详情. 突然发现地址栏的id=怎么是空值. 然后我把任务id添加上去,回车确定,ok出现了.
2017-05-08 14:25:40
2461
原创 storm '*/stormconf.ser' does not exist 问题nimbus进程刚启动后就自动退出
现象: nimbus进程一启动后就自动退出.使用storm 0.9.3 和 storm 0.9.2时,如果非正常关机,tp没有正常杀死的情况下,再次提交topology时会碰到以下问题反复出现以下问题2014-12-01T20:31:09.797+0800 b.s.d.supervisor [INFO] 9ce9ed02-8da3-48fe-b3d6-b95b94910fb7 still hasn’
2017-05-07 18:00:48
1709
原创 使用maven搭建hadoop环境
关于Maven的使用就不再啰嗦了,网上很多,并且这么多年变化也不大,这里仅介绍怎么搭建Hadoop的开发环境。 1. 首先创建工程[plain] view plain copy print?mvn archetype:generate -DgroupId=my.hadoopstudy -DartifactId=hadoopstudy -DarchetypeArtifactId=maven-arc
2017-04-25 12:23:38
353
原创 启动hive时报错UnsupportedClassVersionError
Caused by: java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.Class
2017-04-13 15:05:46
967
原创 hadoop大量小文件的优化策略
代码: //如果不设置InputFormat,它默认用的是TextInputformat.class job.setInputFormatClass(CombineTextInputFormat.class); CombineTextInputFormat.setMaxInputSplitSize(job, 4194304); CombineTe
2017-04-07 13:10:05
1242
原创 redis设置value的超时时间
参考:http://blog.youkuaiyun.com/ssergsw/article/details/18319399 Redis的官网(http://redis.io)中是这样描述的:SET key value [EX seconds] [PX milliseconds] [NX|XX]
2017-04-01 19:57:56
20503
1
原创 String.split()与StringUtils.split()的区别
先运行一段代码String s =",1,,2,3,4,,";String[] split1 = s.split(",");String[] split2 = StringUtils.splitString(s, ",");调试结果: 总结: String.split()会包含空字符串,而且是包含 头部的和中间的, 不包含有效数字后面所有的空字符串. StringUtils.split()
2017-03-30 09:56:52
16004
1
转载 Java中为什么尽量使用apache StringUtils.split替代String.split
使用apache StringUtils.split替代String.split 如果你对下面几个结果有疑惑的话,建议使用apache commons包的StringUtils.split来替代。[java] view plain copy print?在CODE上查看代码片派生到我的代码片 String[] strs = “”.split(“,”); 结果是strs.length=1,str
2017-03-23 15:38:38
1032
原创 hadoop集群出现两个datanode节点互相排斥的情况解决
我明明配置了3个节点的datanode,但是在 http://mini2:50070/dfshealth.html#tab-overview 的管理界面了只看到两天存活 Live Nodes 为 2, Dead Nodes 为 0 我想就算有一台挂掉也不应该是这样,Dead Nodes 应该为 1才对, 然后我切换到Datanodes界面查看: 发现mini2和mini3存活, 我就
2017-03-18 14:00:47
2076
原创 linux中if判断 -a 何时看做判断文件存在, 何时看做逻辑运算
(1)比较两个只= ( -a 看做逻辑与) (2)== 判断存在 ( -a 看做判断文件是否存在)例如: (1) 条件判断组合 ( -a 看做逻辑与) 注:[] 与[[ ]] 的区别:[[ ]] 中逻辑组合可以使用 && || 符号 而[] 里面逻辑组合可以用 -a -o[root@mini ~]# if [ a = b && b = c ]; then echo
2017-03-16 19:14:25
3777
原创 linux中追加<<环境变量
修改profile配置文件以追加的方式添加到profile的后面cat >> /etc/profile << EOFexport JAVA_HOME=/usr/local/jdk1.7.0_67export PATH=\$PATH:\$JAVA_HOME/binEOF当然你也可以写成一个脚本去执行
2017-03-13 19:25:59
2441
原创 future.channel().closeFuture().sync();后面代码不执行
public RpcResponse send(RpcRequest request) throws Exception { EventLoopGroup group = new NioEventLoopGroup(); try { Bootstrap bootstrap = new Bootstrap(); boots
2017-03-12 18:16:18
26751
4
转载 Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
文中的 Random即:java.util.Random, ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandom SecureRandom即:java.security.SecureRandomQ:Random是不是线程安全的? A:Random是线程安全的,但是多线程下可能性能比较低。 参考: http://do
2017-03-11 16:05:36
462
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人