自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (6)
  • 收藏
  • 关注

原创 win10 git ssh key 配置后仍然无法连接

git ssh key

2022-01-21 21:13:30 1028

原创 纯Java实现中继服务器

纯Java实现类似内网穿透,实现shell等命令直达内网终端.结构简单,基础功能完整。一、系统分三部分:1.1服务端server:运行在外网服务器上,负责管理各个终端和用户端,控制和转发消息;1.2 终端terminal:运行在内网终端上,负责连接服务器和本地第三方服务,如shell;1.3 用户端user:用户操作的客户端,负责与用户交互,连接服务器和本地第三方客户端,如xshell等。二、 系统核心流程:2.1.服务器启动,完成配置初始化等工作;2.2.终端和用户端启动,连..

2021-08-20 17:05:04 871

原创 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 1540

原创 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 257 1

原创 Android Others部分内存泄漏 OOM分析

本周公司项目解决内存泄漏,使用Android studio profiler工具进行分析。在人工monkey测试点击管理页面各项菜单后,工具内存查看页面看到内存有增长不是释放的情况。但是dump后未发现哪个页面 或明确的对象没有释放。多次对比dump发现内存并没有明显增加。持续几天未找到原因,后仔细发现,增加的内存属于Others部分,该部分官方解锁是:未知分类的不。这部分在dump后也没有明确的对象对应,因此更难找到内存泄漏的地方了。如下图今天在朋友的帮助下得到了解决。朋友提醒可能是raw

2021-02-05 16:23:50 1501

原创 Android客户端GRPC通信框架基本使用

因业务需要,需要使用rpc协议通信,java平台使用Google发布的GRPC框架应该是最合适的了。本篇主要讲解GPRC框架Android客户端的使用,关于RPC协议本篇不做说明,自行百度和Google;关于grpc框架高级应用和具体原理后面补上。RPC协议将通信数据映射成方法和接口调用。本篇客户端使用android平台,服务器端为java控制台程序。废话不多说,直接上代码:1.Andro...

2018-10-25 23:09:34 2160

原创 Rxjava基本原理解析(五)

    上一篇分享了线程切换的一个操作符,今天我们继续分析线程切换的另一个操作符observeOn以及其源码设计。    observeOn操作符用于切换observer的线程:Observable.create((ObservableOnSubscribe<String>) e -> { e.onNext("dawson"); ...

2018-09-12 14:34:05 224

原创 Rxjava基本原理解析(四)

    接着上一篇的分享模式,今天我们介绍和分析线程切换操作符subscribeOn以及其源码设计。    Rxjava的一个最大优点之一就是灵活的线程切换,切换过程不影响整体链式逻辑流程,既方便又清新。为了对比,还是再次将一个操作符的结构图放上:subscribeOn操作符用于切换事件源的线程,一般用在第一个observable的后面:Observable.create((Ob...

2018-09-11 12:34:18 226

原创 Rxjava基本原理解析(三)

    上一篇已经介绍了Rxjava的整体链式设计原理和思想,今天我们介绍和分析最常用的操作符create以及其源码设计。    create操作符主要用于创建一个源observable,即链式操作的第一个observable:事件源。结合上一篇的整体分析,我们先看看一个operator的图,并结合图和源码分析create操作符:首先看看create操作符的使用代码:Observ...

2018-09-10 10:54:29 432

原创 Rxjava 基本原理解析(二)

       上一篇介绍了Rxjava中观察者模式的基本实现原理,本篇主要介绍Rxjava链式操作实现的基本原理,即一个事件发出后,经过多次逻辑操作,最后到完成订阅的过程。       上篇中有一个事件原即被观察者observable和一个观察者observer,并完成订阅。而实际业务逻辑中一个事件原往往需要其他业务逻辑处理后最后才到订阅者手中,rxjava使用操作符来解决该问题,实现链式操作,...

2018-09-09 01:59:11 288

原创 Rxjava 基本原理解析(一)

       ReactiveX是一种编程模型,全称是Reactive Extensions,即可扩展的响应式编程,微软在2012年11月开源,官网 reactivex.io。Rxjava是Rx的java语言版本。本系列文章将以rxjava2版本进行分析。本篇主要介绍观察者模式和rxjava是如何实现观察者模式的。           响应式编程主要采用观察者模式进行开发,即观察者(obs...

2018-09-07 15:50:14 1592

原创 我的工作总结

       2015年底,怀揣着对外面世界的向往和憧憬,毅然离开了舒适的某国企J。实习期即在J开始人生的职业生涯,转正,再到转行。渐渐让我产生了去外面看看更多东西的想法,然而懒惰,厌恶面试让我一拖再拖,直到2015年底终于离开J,准备面对新的未知。感恩J带给我一个舒适而又有意义的第一份工作。       出来后,由于技术转行,再加上眼高手低,工作并没有想象的那么好找。越是这样,越浮躁,在J公...

2018-08-21 11:50:30 555

翻译 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 7625 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 2839

原创 一种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 4837

原创 解决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 14454 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 920

原创 Java集合相关知识点

collection 集合接口 |--List<E>值允许重复,有序的数据结构 按对象进入的顺序保存对象,不做排序或编辑操作  |--ArrayList<E>由数组实现的List。允许对元素进行快速随机访问,中间插入与移除元素的速度很慢 数组方式存储数据,索引数据快插入数据慢,线程不安全  |--LinkedList<E> 对顺序访问进行了优化,插入与删除的开销...

2018-04-18 21:39:41 428

原创 设计模式

java android 源码中的应用1.单例模式2.工厂模式3.代理模式3.观察者模式4.装饰模式File系统

2017-03-05 22:24:24 198

原创 Java 知识点梳理

1.集合类 |--List<E>  |--ArrayList<E>由数组实现的List。允许对元素进行快速随机访问 线程不安全  |--LinkedList<E> 对顺序访问进行了优化,插入与删除的开销并不大。线程不安全  |--Vector<E> 数组方式存储数据,索引数据快插入数据慢,线程安全Map<K,V>   |--ArrayM...

2017-03-05 22:21:20 392

原创 Android 知识点梳理

android知识

2017-03-05 22:11:20 208

原创 读乔布什

  两个小时,你可以干什么?打一场酣畅淋漓的球;找个静谧的地方喝一杯茶;看一部美轮美奂的电影;听一场精彩绝伦的演讲,找个知心的人倾诉自己的心扉……我选择了坐在安静的图书馆聆听乔布什奇迹般的人生。         乔布什,伴随着一个被上帝咬过的苹果而家喻户晓,特别是他逝世后,更是让世界为之癫狂。他就是一个上帝创造的奇迹人物,人们已经被他的魔力所折服,不管他是否对于错,他和他的苹果改变了世界的...

2012-03-11 08:33:12 1365

原创 IT学习随笔

IT入行感想

2010-07-30 20:03:00 376

Windows Phone 7简单计算器

一个基于Windows Phone7的简单计算器 可以实现简单的四则运算(包括括号运算符),界面清爽,明晰。

2011-10-26

JavaScript计算器

使用javascript全动态生成的计算器,调用内置eval函数能实现简单表达式的计算,js文件可以供其他程序在任意处调用动态生成计算器,本实例界面为浮动div可以在浏览器中显示,隐藏和任意拖动 (IE8 调试通过,其他浏览器有不兼容问题)

2011-06-21

使用波兰式实现我的计算器

使用波兰式算法实现表达式的计算 能够记录计算的历史 能 界面经典灰色

2011-06-01

使用treeview listview实现我的资源管理器

实现类似windows资源管理器功能 实现递归 实时完成资源的管理 提高效率!

2011-06-01

基于socket的局域网简单聊天程序

本程序是应用socket,多线程编写,面向无连接的网络通信程序,能够实现局域网内聊天,界面类似QQ,能发送消息和抖动窗体!

2011-03-31

漂亮的水晶3DButton按钮

继承自C#windows窗体中Button控件的自定义控件,采用重绘机制,绘制出水晶般的三维效果,很漂亮

2010-10-26

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

TA关注的人

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