自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

@毛宏斌

随便记录一些东西,有用的没用的、方方面面;

  • 博客(111)
  • 资源 (13)
  • 收藏
  • 关注

原创 Android中dumpsys meminfo与/proc/meminfo获取空闲内存不一致的问题

一、需求获取当前系统中应用可用的空闲内存。二、遇到的问题方法一:dumpsys meminfoTotal RAM: 3,498,412K (status normal) Free RAM: 1,420,845K ( 554,397K cached pss + 729,900K cached kernel + 136,548K free) Used RAM: 2...

2018-02-09 17:44:39 7650

原创 Android端APM解决方案

闲来无聊统计下有哪些比较大的有移动端APM解决方案的厂商 (iOS不懂,忽略)1.New Relic网址:https://newrelic.com2.OneAPM网址:http://www.oneapm.com3.听云网址:http://www.tingyun.com4.性能魔方网址:http://www.mmtrix.c...

2018-02-08 09:49:04 6061

原创 APM Server端Java探针调研

一、需求Tomcat: (1)模块启动时间 (2)模块交互耗时二、现状现代APM体系,基本都是参考Google的Dapper(大规模分布式系统的跟踪系统)的体系来做的。通过跟踪请求的处理过程,来对应用系统在前后端处理、服务端调用的性能消耗进行跟踪,关于Dapper的介绍可以看这个链接:http://bigbully.github.io/Dapper-translation/ ...

2018-02-08 09:47:56 8319

原创 C++ core dump调试及崩溃监控

一、概述C++程序崩溃时会产生core dump,一般有Segmentation Fault和Abort等。二、保存core dump文件很多时候需要保存core dump文件,方便后面调试修复BUG。 默认linux系统的core dump可能没有打开,因为core dump的文件很大,如果一个机器多个角色复用瞬间写很大的一个core dump文件,会大量占用机器资源,所以如果

2018-02-05 11:47:43 10652

原创 并发编程的挑战

一、上下文切换含义 CPU通过给每个线程分配时间片来实现多线程,时间片一般是几十毫秒。当任务时间片用光后会切到下一个任务,但是,在切换前会保存上一个任务的状态,以便切换回这个任务的时候可以再加载这个任务。任务从保存状态到再加载的过程就是一次上下文的切换。如何减少上下文切换 (1)无锁并发编程。如将数据合理分段,不同线程处理不同不同段数据。 (2)CAS算法。Java的Atomic包使

2017-08-28 21:32:52 364

原创 OpenCV等毫秒级间隔抽取mp4为png

使用OpenCV的C++ API抽取mp4为png时,发现CV_CAP_PROP_POS_MSEC属性居然在OpenCV 3.3.0版本下失效。一、需求把mp4等时间间隔抽取为png环境:Mac OS语言:C++抽取间隔:50ms二、问题描述在OpenCV 3.2.0下可以按如下方式实现(简化代码,未测试):VideoCapture *cap = new VideoCapture("/p

2017-08-21 17:32:34 1238

原创 Spring Boot部署NewRelic的Java探针记录

一、pom.xmlpom文件修改如下:增加NewRelic Agent依赖在spring-boot-maven-plugin中注明main class把NewRelic Agent jar打包进最终jar在manifest中增加Premain-Class等属性<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://mave

2017-08-17 15:24:38 3010

原创 实时统计Android应用的CPU和内存占用

一、应用CPU实时统计1.1CPU总使用情况在proc/stat下有当前设备详细的CPU使用情况.详细格式如下: CPU 152342 1421 28562 1600830 12389 553 273 0 0 CPU后面的几位数字的含义分别是 user 从系统启动开始累计到当前时刻,处于用户态的运行时间,不包含 nice值为负进程。 nice 从系统启动开始累

2017-03-30 21:17:40 8591 1

原创 android:layout_weight详解

LinearLayout中支持使用android:layout_weight属性为各个子视图分配权重,权重值更大的视图可以填充父视图中任何剩余的空间。 官方介绍:https://developer.android.com/guide/topics/ui/layout/linear.html1、简单举例需求:水平布局中的三个TextView的宽度比为1:2:3 代码: 将android

2017-03-19 23:33:59 714

原创 Android WebView Java和JavaScript的交互

现在的APP,大多是NA+H5的,也就是集合了Native APP和Web APP的优点,既保证了用户体验,又使得APP在一定程度上具备动态更新的能力,同时又利于跨平台开发,减少了人力成本。一、Java调用JavaScriptJava调用JS很简单,mWebView.loadUrl("javascript:toast()");让WebView加载本地html,并调用JS中的toast函数, 本地

2017-01-04 09:55:02 695 2

原创 tshark----wireshark的命令行工具

TShark is a network protocol analyzer. It lets you capture packet data from a live network, or read packets from a previously saved capture file, either printing a decoded form of those packets to the

2017-01-01 20:14:13 4574

原创 tcpdump

tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。一、RefMan-Page:http://www.tcpdump.org/tcpdump_man.htmltcpdump:https://github.com/the-tcpdump-group/tcpdump.gitlibp

2017-01-01 19:36:23 1451

原创 Android竞品监测手段

一、反编译1.apktool 反编译:apktool d XXX.apk 重新打包:apktool b 目录名 2.dex2jar:反编译dex 3.jd-gui:查看jar 4.enjarify:直接反编译apk 5.procyon:jar还原成java 6.ClassyShark:查看apk使用了哪些技术二、系统工具1.tcpdump三、第三方工具1.wireshark:网络抓包

2016-12-14 17:29:31 823 1

原创 Gson库和Android自带JSON解析对转义字符的处理存在不同

遇到一坑,以前用的是Gson库,现在改为Android自带的JSON解析,后端收到数据有时会解析失败,查找原因,发现Gson库和Android自带JSON解析对转义字符的处理存在稍许的不同。举例如下:String s1 = "https://blog.csdn.net/robotech_er/article/details/40260377";String s2 = "host is \"www.

2016-11-23 15:14:16 8552

原创 Android okhttp3 SSL握手底层实现追踪

对于https,在tcp三次握手后就会进行ssl的握手,ssl握手的详细过程网上介绍的很多。下面跟踪下okhttp3对于ssl握手的实现过程。需求决定android版本4.4.4,所以还是openssl,okhttp3.2.0。 openssl代码:https://android.googlesource.com/platform/external/openssl.git okhttp3代码:h

2016-11-17 16:40:31 5265 4

原创 Android okhttp3 利用socket进行read/write的底层实现跟踪

在okhttp3.internal.io.RealConnection#connectSocket中初始化了socket并进行了connect,此时tcp的三次握手已经搞定,接下来它通过okio库与远程socket建立I/O连接,如下代码所示: /** Does all the work necessary to build a full HTTP or HTTPS connection on a

2016-11-16 14:40:30 2591

原创 Android okhttp3 进行socket connect&poll的底层实现跟踪

由《Android okhttp3 创建Socket的底层实现追踪》可知,okhttp3在okhttp3.internal.io.RealConnection#connectSocket中通过rawSocket.setSoTimeout(readTimeout)调用java.net.Socket#checkOpenAndCreate创建了socket,底层是在/bionic/libc/arch-ar

2016-11-15 13:15:58 3344 2

原创 Android okhttp3 DNS 底层实现追踪(二)

在《Android okhttp3 DNS 底层实现追踪(一)》中分析了okhttp3的DNS从framework通过jni到libc的过程,止步于getaddrinfo。在getaddinfo中,DNS的解析是通过Netd代理的方式进行的。Netd是Network Daemon的缩写,Netd在Android中负责物理端口的网络操作相关的实现,如Bandwidth,NAT,PPP,soft-ap等

2016-11-14 22:21:33 4017

原创 Android okhttp3 创建Socket的底层实现追踪

1.概述OkHttp3的最底层是Socket,而不是URLConnection,它通过Platform的Class.forName()反射获得当前Runtime使用的socket库,调用栈如下okhttp//实现HTTP协议==>framwork//JRE,实现JDK中Socket封装    ==>jvm//JDK的实现,本质对libc标准库的native封装        =

2016-11-14 18:54:48 9129

原创 Android okhttp3 DNS 底层实现追踪(一)

1.人为制造DNS异常,抛出调用链路: okhttp 3.2 DNS 过程 > image2016-11-14 13:39:52.png" src="http://wiki.baidu.com/download/attachments/244385774/image2016-11-14%2013%3A39%3A52.png?version=1&modificationDate=14791019

2016-11-14 14:38:22 7141 2

原创 代理模式及JDK动态代理(InvocationHandler)的简单实现与分析

在慕课网上学习了讲解代理模式的一个课程--《模式的秘密--代理模式》,感叹于David老师屌炸天的PPT,同时,老师一步一步模仿JDK源码去写code,教我们去简单实现JDK中的动态代理,讲的清晰透彻。在此我做下笔记,课程原地址:http://www.imooc.com/learn/214

2016-08-28 22:24:30 8136 1

原创 利用反射实现可供任意类使用的toString方法

可供任意类使用的toString方法

2016-08-24 11:58:56 1460

原创 (7)LinuxI2C驱动--I2C总线驱动

前面分析了i2c设备驱动如何实现通过sysfs文件系统访问eeprom,对于读写eeprom,最后都是调用了i2c_transfer(),此函数的实现在i2c核心中。int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) { unsigned long orig_jiffies; int

2015-06-14 16:54:02 1288 1

原创 (6)LinuxI2C驱动--I2C设备驱动

本节主要分析eeprom的所属的i2c设备驱动。1. eeprom板级设备资源因为原开发板的eeprom驱动还没调试好,板级资源还没写好,所以需要自己加进去。 修改arch/arm/mach-s5pv210/mach-smdkc110.c文件。 static struct at24_platform_data at24c01 = { .byte_len = SZ_8K

2015-06-11 19:49:02 1282

原创 (5)LinuxI2C驱动--浅谈LinuxI2C驱动架构

前面几个小结介绍了i2c总线的协议,又介绍了我们关注的eeprom的读写访问时序,还给出了两个访问eeprom的例子,我的目的是为了能更好的理解后面解析Linux下i2c驱动。网上介绍Linux I2C驱动架构的文章非常的多,我把这些内容做了个归纳与简化,但是在搬出这些非常抽象的内容之前,我想先谈下我的理解。如下图: 图中画了一个三星的s5pv210处理器,在处理器的里面集成了一个I2C适配器

2015-06-11 15:53:27 984

原创 (3)LinuxI2C驱动--解析EEPROM的读写

本节介绍eeprom的读写时序,参考的是AT24C01A的datasheet。

2015-06-11 13:22:12 1787

原创 (4)LinuxI2C驱动--从两个访问eeprom的例子开始

本小节介绍两个在linux应用层访问eeprom的方法,并给出示例代码方便大家理解。第一个方法是通过sysfs文件系统对eeprom进行访问,第二个方法是通过eeprom的设备文件进行访问。这两个方法分别对应了i2c设备驱动的两个不同的实现,在后面的小结会详细的分析。

2015-06-10 21:03:03 6521

原创 (2)LinuxI2C驱动--I2C总线

本节分析下I2C总线协议,因为我的开发板是三星s5pv210芯片,所以就以此为例。

2015-06-09 19:03:29 962

原创 LinuxI2C驱动详解

1. 写在前面本人学生一枚,之前没有详细的接触过linux驱动,只是读过宋宝华的《Linux设备驱动开发详解》,这段时间想静下心来学习下linux i2c驱动,在网上找了很多资料,前辈们写的文章让我受益匪浅,但是一开始上手真的很痛苦,基本上大家都是从linux i2c体系结构的三大组成谈起:i2c核心,i2c总线驱动,i2c设备驱动,好抽象。所以我才想写这个文章,从一个新人的角度分享下我学习linu

2015-06-09 14:17:51 1049

原创 Android ART GC -- AtomicStack 无锁原子栈的实现分析

在android ART GC 中类AtomicStack用来实现对象的栈,如下:typedef AtomicStack ObjectStack;ObjectStack用来实现android ART GC中三个最重要的栈,即mark_stack_,allocation_stack_,live_stack,对于这三个栈的详细分析见 :Android ART GC --mark_sta

2015-01-05 10:11:15 1399

原创 Android 5.0 ART GC 对比 Android 4.x Dalvik GC

为了研究Android虚拟机中的内存管理机制,前期进行了初步调研,下面列出Android 5.0 ART 中GC的更新概要以供参考,资料来源于网络以及对源码的初步阅读。

2015-01-03 13:40:13 15349

2021隐私计算行业研究报告.pdf

2021隐私计算行业研究报告.pdf

2021-04-26

IEEE Guide for Architectural Framework and Application of Federated ML

联邦学习国际标准-OpenMPC:IEEE Guide for Architectural Framework and Application of Federated Machine Learning

2021-04-09

LeetCode 101 - A LeetCode Grinding Guide

LeetCode 101:和你一起你轻松刷题 作者:高畅 Chang Gao 版本:正式版 1.04

2021-03-20

金融分布式账本技术安全规范.pdf

《金融分布式账本技术安全规范》(JR/T 0184—2020)金融行业标准由中国人民银行正式发布。本标准由全国金融标准化技术委员会归口管理,由中国人民银行数字货币研究所立项并牵头起草,中钞区块链技术研究院等单位共同参加起草。标准经过广泛征求意见和论证后正式发布。

2020-02-25

华为云Kubernetes大规模场景下的Service性能优化实践

Kubernetes 原生的 Service 负载均衡基于 Iptables 实现,其规则链会随 Service 的数量呈线性增长,在大规模场景下对 Service 性能影响严重。本次分享介绍了华为云在 Kubernetes service 性能优化方面的探索与实践。

2018-05-24

hyperledger-fabric-doc-v1.1.0

hyperledger-fabric最新版说明文档 hyperledger-fabric最新版说明文档

2018-03-19

Dash for mac 破解版

Dash for mac 破解版,亲测可用

2016-07-08

StartUML for mac 破解版

StartUML for mac 破解版

2016-07-08

Ulysses 2.5 Mac破解版

Ulysses 2.5 Mac破解版,亲测可用

2016-07-08

jeffy-vim-v2.1

jeffy-vim用于配置Vim编辑器,使Vim工作得更像一个C/C++的IDE。在一些插件的润色下,jeffy-vim实现了很多IDE的基本功能,比如:代码解析、代码补全、函数跳转、 程序调试等。我还自己编写了一个插件用于管理项目,包括生成tags和cscope的数据库、高亮用户定义的类型和函数等功能,让工程管理起来更方便。

2015-01-09

空空如也

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

TA关注的人

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