FileSync

android adb 流程原理代码分析(一)

夙愿已清 提交于 2020-05-05 21:56:33
由于要用到adb的知识,但是对adb啥也不了解,看了下android的代码,adb的源码在system/core/adb下面,然后网上搜下了资料,发现很多大神的源码分析,瞬间信心爆棚,把大神写的博客都浏览了一遍,然后手动运行了下adb命令,顺便跟踪了下过程,发现原来还是很好的理解,源码的各种线程创建,函数回调,对于我这种基础不咋好的,,还是看的晕晕呼呼,现在把我自己的理解给大家分享,有理解错误的还请多多指正 。 一般直接上代码,可能看官都走了 一大 半 ,我们逆向的看,先看结果,再看过程,最后再看代码。从简单的入手。 理解: (1)adb的本质,就是socket的通信,通过secket传送数据及文件 (2)adb传送是以每个固定格式的包发送的数据,包的格式如下: # define A_SYNC 0x434e5953 # define A_CNXN 0x4e584e43 # define A_OPEN 0x4e45504f # define A_OKAY 0x59414b4f # define A_CLSE 0x45534c43 # define A_WRTE 0x45545257 # define A_AUTH 0x48545541 struct amessage { unsigned command; /* command identifier constant */

数据同步方案(附Java源码)

依然范特西╮ 提交于 2020-05-04 18:53:32
一.问题背景 经常碰到要同步数据的情况,而系统自带的复制功能又不能实现增量同步,每次都要做全量复制,发生异常情况后只能重头再来,非常麻烦,优其是对那种大文件的处理,更是耗时。 二.解決方案 1.计算源目录数据指纹 2.计算目标目录数据指纹 3.对比指纹数据,找出差异项,得到需要添加,删除或更新的文件列表,计算出需要更新的数据大小 4.挨个同步差异项,如果碰到大文件,则缓存其指纹数据到目标文件夹中,供下次同步数据时使用 三.数据指纹说明 数据指纹顾名思义,就是对某一文件夹或文件的唯一标识,其格式为: 文件相对路径+:(分隔符)+修改日期+:+数据长度+:+內容指纹 內容指纹是由多个内容块的md5组成 内容块就是对大文件进行分割处理,每次比较数据,最小的同步对象就是內容块,避免对整个文件做处理,也是实现增量同步的关健点 四.源码下载 源码: https://github.com/xxonehjh/file-sync 可执行文件: fileSync.jar 使用说明:java -jar fileSync.jar 源目录 目标目录 来源: oschina 链接: https://my.oschina.net/u/4352688/blog/4264785

oracle log file switch (checkpoint incomplete) 等待事件

╄→гoц情女王★ 提交于 2020-04-07 10:43:09
这个等待事件在繁忙的系统很容易出现,要想解决这个问题就得了解为啥会出这个问题。 说到redolog就必须得说下oracle 日志体系,oracle 默认必须有3组日志,每组日志是循环写的,oracle在写入数据的时候肯定是先写日志后写数据文件,一旦写日志出现了等待,那么系统肯定会非常慢,影响很大。redolog日志比较特殊,它是顺序写入的,所以oracle官方也不建议把redolog方在asm条带化存储中。我们知道在文件系统层面的顺序写对应磁盘就是随机IO,所以SSD盘对随机IO提升效果不大,条带化的存储对顺序写的文件效果也不大。 回到oracle数据库上来,如果数据库开了归档,那么一条数据从redlog buffer写到redolog,这个过程期间也会产生等待,最典型的就是redolog sync 和redolog paralle write 。 Log File Sync是从提交开始到提交结束的时间。Log File Parallel Write是LGWR开始写Redo File到Redo File结束的时间。 Log File Parallel Write 也会影响 Log File Sync。 这边log file sync 平均等待时间是 1MS, 后文中Log File Parallel Write 也是1ms 因此判断系统IO没有问题。 如果 此时Log File

开发故事:我在项目那些有用的eclipse插件

青春壹個敷衍的年華 提交于 2020-03-16 14:20:07
某厂面试归来,发现自己落伍了!>>> 以下插件均为离线安装,无需下载,本人是在eclipse4.4 做的测试,点击标题CSDN免积分下载. 1. subeclipse 就是这个东东了,用SVN作版本控制的同学你们懂的~ 好像subeclipse1.10这个版本有点问题, 这个选项要选上面的,科普一下: SVNKit (JavaSVN) 是一个纯 Java 的 SVN 客户端库,使用 SVNKit 无需安装任何 SVN 的客户端,支持各种操作系统。 这不是一个开源的类库,但你可以免费使用。 通过SVNKit,你可以在SVN上开发出自己的应用。 2. openexplorer 我们在使用eclipse的时候经常会遇到我想打开文件资源在windows的目录,我看到有同事竟然右击在properties里复制文件地址然后找到上一级目录,再找到文件!我靠。。。太水了吧~ 我在用eclipse4.4之前的版本一直在用easyexplorer插件,但是发现这个版本已经不兼容了。没关系,有可替代的,而且用起来感觉也很爽。。 看到他的神威了吧~~当然myeclipse里已经集成好了,对于我们这种喜欢DIY的程序猿很多还是喜欢玩eclipse的。 3. tomcatplugin 这个东西嘛。。。我不是很喜欢用,因为eclipse可以以创建server来配置一个tomcat, 呵呵

12.2 RAC DB Background process SCM0 consuming excessive CPU (文档 ID 2373451.1)

末鹿安然 提交于 2019-12-25 16:55:58
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 12.2 RAC DB Background process SCM0 consuming excessive CPU (文档 ID 2373451.1) 转到底部 In this Document Symptoms Changes Cause Solution References Applies to: Oracle Database Exadata Cloud Machine - Version N/A and later Oracle Cloud Infrastructure - Database Service - Version N/A and later Oracle Database Cloud Exadata Service - Version N/A and later Oracle Database Exadata Express Cloud Service - Version N/A and later Oracle Database Cloud Schema Service - Version N/A and later Information in this document applies to any platform. Symptoms 12.2.0.1 database