- 博客(23)
- 资源 (6)
- 收藏
- 关注
原创 纯Java实现中继服务器
纯Java实现类似内网穿透,实现shell等命令直达内网终端.结构简单,基础功能完整。一、系统分三部分:1.1服务端server:运行在外网服务器上,负责管理各个终端和用户端,控制和转发消息;1.2 终端terminal:运行在内网终端上,负责连接服务器和本地第三方服务,如shell;1.3 用户端user:用户操作的客户端,负责与用户交互,连接服务器和本地第三方客户端,如xshell等。二、 系统核心流程:2.1.服务器启动,完成配置初始化等工作;2.2.终端和用户端启动,连..
2021-08-20 17:05:04 937
原创 Android程序一个因requestPermission导致不停onResume(不停打印Timeline: Activity_launch_request time)的问题
自己写的一个Android测试程序,在真机上面调试的时候,发现按钮有时候无法点击,通过日志发现点击事件确实没有触发,而不是点击处理逻辑卡顿;再多次调试,发现系统在不停地打印Timeline: Timeline: Activity_launch_request time。通过搜索,根据文章Android问题新增分析为onResume不停调用导致。添加日志发现确实在不停触发onResume。分析onResume中代码如下: override fun onResume() { s..
2021-08-11 17:05:36 1700
原创 Kotlin不到100行代码完成五子棋核心逻辑
废话不多说,直接上代码:package com.dawson.kstudy/** * 五子棋 */class FiveInARow { /** * 棋盘大小 */ private val mRows = 15 /** * 存放黑棋 */ private val black = Array(mRows) { ByteArray(mRows) } /** * 存放白棋 */ priva
2021-07-23 15:25:21 430 1
原创 Android Others部分内存泄漏 OOM分析
本周公司项目解决内存泄漏,使用Android studio profiler工具进行分析。在人工monkey测试点击管理页面各项菜单后,工具内存查看页面看到内存有增长不是释放的情况。但是dump后未发现哪个页面 或明确的对象没有释放。多次对比dump发现内存并没有明显增加。持续几天未找到原因,后仔细发现,增加的内存属于Others部分,该部分官方解锁是:未知分类的不。这部分在dump后也没有明确的对象对应,因此更难找到内存泄漏的地方了。如下图今天在朋友的帮助下得到了解决。朋友提醒可能是raw
2021-02-05 16:23:50 1815
原创 Android客户端GRPC通信框架基本使用
因业务需要,需要使用rpc协议通信,java平台使用Google发布的GRPC框架应该是最合适的了。本篇主要讲解GPRC框架Android客户端的使用,关于RPC协议本篇不做说明,自行百度和Google;关于grpc框架高级应用和具体原理后面补上。RPC协议将通信数据映射成方法和接口调用。本篇客户端使用android平台,服务器端为java控制台程序。废话不多说,直接上代码:1.Andro...
2018-10-25 23:09:34 2243
原创 Rxjava基本原理解析(五)
上一篇分享了线程切换的一个操作符,今天我们继续分析线程切换的另一个操作符observeOn以及其源码设计。 observeOn操作符用于切换observer的线程:Observable.create((ObservableOnSubscribe<String>) e -> { e.onNext("dawson"); ...
2018-09-12 14:34:05 265
原创 Rxjava基本原理解析(四)
接着上一篇的分享模式,今天我们介绍和分析线程切换操作符subscribeOn以及其源码设计。 Rxjava的一个最大优点之一就是灵活的线程切换,切换过程不影响整体链式逻辑流程,既方便又清新。为了对比,还是再次将一个操作符的结构图放上:subscribeOn操作符用于切换事件源的线程,一般用在第一个observable的后面:Observable.create((Ob...
2018-09-11 12:34:18 263
原创 Rxjava基本原理解析(三)
上一篇已经介绍了Rxjava的整体链式设计原理和思想,今天我们介绍和分析最常用的操作符create以及其源码设计。 create操作符主要用于创建一个源observable,即链式操作的第一个observable:事件源。结合上一篇的整体分析,我们先看看一个operator的图,并结合图和源码分析create操作符:首先看看create操作符的使用代码:Observ...
2018-09-10 10:54:29 447
原创 Rxjava 基本原理解析(二)
上一篇介绍了Rxjava中观察者模式的基本实现原理,本篇主要介绍Rxjava链式操作实现的基本原理,即一个事件发出后,经过多次逻辑操作,最后到完成订阅的过程。 上篇中有一个事件原即被观察者observable和一个观察者observer,并完成订阅。而实际业务逻辑中一个事件原往往需要其他业务逻辑处理后最后才到订阅者手中,rxjava使用操作符来解决该问题,实现链式操作,...
2018-09-09 01:59:11 324
原创 Rxjava 基本原理解析(一)
ReactiveX是一种编程模型,全称是Reactive Extensions,即可扩展的响应式编程,微软在2012年11月开源,官网 reactivex.io。Rxjava是Rx的java语言版本。本系列文章将以rxjava2版本进行分析。本篇主要介绍观察者模式和rxjava是如何实现观察者模式的。 响应式编程主要采用观察者模式进行开发,即观察者(obs...
2018-09-07 15:50:14 1630
原创 我的工作总结
2015年底,怀揣着对外面世界的向往和憧憬,毅然离开了舒适的某国企J。实习期即在J开始人生的职业生涯,转正,再到转行。渐渐让我产生了去外面看看更多东西的想法,然而懒惰,厌恶面试让我一拖再拖,直到2015年底终于离开J,准备面对新的未知。感恩J带给我一个舒适而又有意义的第一份工作。 出来后,由于技术转行,再加上眼高手低,工作并没有想象的那么好找。越是这样,越浮躁,在J公...
2018-08-21 11:50:30 572
翻译 mybatis generator 设置table schema无效
使用mybatis generator插件生产代码时,如果数据库是MySQL 8.x 自定义的表与系统表有同名时,会自动生产两张表的对应代码,而且会有很多冲突和错误,此时设置table的schema也没有效果,需要在连接节点里面添加 属性:<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" conne...
2018-08-08 17:42:11 7743 2
转载 Android Camera的预览回调接口PreviewCallback使用
原文章:https://blog.csdn.net/lb377463323/article/details/53338045首先定义一个类实现Camera.PreviewCallback接口,然后在它的onPreviewFrame(byte[] data, Camera camera)方法中即可接收到每一帧的预览数据,也就是参数data。 然后使用setPreviewCallback()、set...
2018-07-09 10:38:37 2938
原创 一种Android 按钮阴影效果(基于selector实现)
先上效果图 图一 正常效果 图二点击效果直接上代码:tv_bg_selector.xml<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android...
2018-07-09 10:32:16 4897
原创 解决IDEA的"Cannot run program "git": CreateProcess error=2, 系统找不到指定的文件"错误
使用Android Studio开发,用Gradle进行编译,gradle编译过程中使用了git命令,如获取git commit号等作为版本号,报错“Cannot run program "git": CreateProcess error=2, 系统找不到指定的文件”原因:编译时,找不到git 程序。此时发现在Android Studio的terminal里面输入git 出现“git 不是内...
2018-07-03 17:53:38 14793 5
翻译 Android 传感器列表
1、TYPE_ACCELEROMETER 加速度 (related to force of gravity)A constant describing an accelerometer sensor type.2、TYPE_ALL 全部传感器A constant describing all sensor types.3、TYPE_AMBIENT_TEMPERATURE 环境温度 (de...
2018-05-10 11:05:02 972
原创 Java集合相关知识点
collection 集合接口 |--List<E>值允许重复,有序的数据结构 按对象进入的顺序保存对象,不做排序或编辑操作 |--ArrayList<E>由数组实现的List。允许对元素进行快速随机访问,中间插入与移除元素的速度很慢 数组方式存储数据,索引数据快插入数据慢,线程不安全 |--LinkedList<E> 对顺序访问进行了优化,插入与删除的开销...
2018-04-18 21:39:41 464
原创 Java 知识点梳理
1.集合类 |--List<E> |--ArrayList<E>由数组实现的List。允许对元素进行快速随机访问 线程不安全 |--LinkedList<E> 对顺序访问进行了优化,插入与删除的开销并不大。线程不安全 |--Vector<E> 数组方式存储数据,索引数据快插入数据慢,线程安全Map<K,V> |--ArrayM...
2017-03-05 22:21:20 402
原创 读乔布什
两个小时,你可以干什么?打一场酣畅淋漓的球;找个静谧的地方喝一杯茶;看一部美轮美奂的电影;听一场精彩绝伦的演讲,找个知心的人倾诉自己的心扉……我选择了坐在安静的图书馆聆听乔布什奇迹般的人生。 乔布什,伴随着一个被上帝咬过的苹果而家喻户晓,特别是他逝世后,更是让世界为之癫狂。他就是一个上帝创造的奇迹人物,人们已经被他的魔力所折服,不管他是否对于错,他和他的苹果改变了世界的...
2012-03-11 08:33:12 1380
JavaScript计算器
2011-06-21
android native crash tombstone 如何定位到崩溃的so
2022-10-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人