Android
文章平均质量分 64
Android修路之路
hello2mao
https://github.com/hello2mao
展开
-
NewRelic移动端性能数据的钻取分析解析
目录一、背景 二、主线入口 三、主线下钻 3.1 应用崩溃率的钻取分析 3.2 应用启动次数的钻取分析 3.3 HTTP错误率/网络错误率的钻取分析 3.4 HTTP响应时间的钻取分析 3.5 频繁交互列表的钻取分析 四、其他支线 4.1 服务拓扑 4.2 应用已处理异常分析 五、探针能力一、背景数据多层钻取可以帮助我们一层一层查看更细...原创 2018-02-23 19:14:33 · 1662 阅读 · 1 评论 -
Android okhttp3 底层网络实现解析
一、概述okhttp3是Android应用层开发最常用的网络库之一,本文详细追踪解释okhttp3底层网络的实现,从DNS=>TCP=>SSL。二、总目录(Android okhttp3 DNS 底层实现追踪(一))[https://blog.csdn.net/hello2mao/article/details/53158520](Android okhttp3 DNS...原创 2018-07-29 13:59:21 · 3322 阅读 · 0 评论 -
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 · 6062 阅读 · 0 评论 -
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 阅读 · 0 评论 -
实时统计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 阅读 · 0 评论 -
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 评论 -
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 评论 -
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 · 8555 阅读 · 0 评论 -
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 · 3345 阅读 · 2 评论 -
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 · 9130 阅读 · 0 评论 -
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 · 4018 阅读 · 0 评论 -
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 评论 -
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 · 5267 阅读 · 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 · 2592 阅读 · 0 评论 -
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 · 1400 阅读 · 0 评论 -
Android 5.0 ART GC 对比 Android 4.x Dalvik GC
为了研究Android虚拟机中的内存管理机制,前期进行了初步调研,下面列出Android 5.0 ART 中GC的更新概要以供参考,资料来源于网络以及对源码的初步阅读。原创 2015-01-03 13:40:13 · 15352 阅读 · 0 评论