自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Keisu的博客

android开发者

  • 博客(11)
  • 收藏
  • 关注

原创 移动端抓取\解密SSL流量

最近一段时间有需求要抓取移动端通过SSL加密的HTTPS和WebSocket流量,使用WireShark中Lua插件进行私有协议的解包和统计.网上找到的大多是解密浏览器SSL流量的教程,通过设置环境变量的方式导出浏览器握手过程中产生的ClientRandom和(Pre)MasterKey到Wireshark来解密,针对移动端的SSL流量解密少有涉及,通过对一些工具及OpenSSL的了解,有几...

2018-08-14 23:28:37 1693 1

原创 Android线上收集崩溃信息

为什么要线上收集崩溃信息?我们的app上线后后有可能会出现测试阶段没有出现的bug导致崩溃,我们不能及时获取到崩溃的日志及时修复,这时就需要在应用崩溃的时候把崩溃的日志上传到服务器以便我们对崩溃的情况进行分析,当然这里说的是Java 的 UnChecked Exception,Native的 Exception这里不进行考虑。怎样收集发生异常时的信息当应用崩溃时,默认会调用Thread

2018-01-23 11:33:18 1747

原创 LruCache详解

LruCache详解LruCache是什么LruCache是Android中实现LRU(Least recently used,最近最少算法)的一个类,在android-support-v4中提供,在API12以下可以使用suppoort包中的该类。LruCache把最近使用过的对象储存在LinkedHashMap中,并在缓存达到设定缓存最大值之前将最近最少使用的对象从内存中移除。它的核心思想是“如

2017-10-31 20:18:09 1087

原创 HashMap 原理详解

HashMap是什么HashMap是Java常用的用来储存键值对的数据结构,它是线程不安全的,可以储存null键值,这些大家经常用,也都知道,接下来根据源码分析一下HashMap的实现

2017-10-21 15:24:54 21608

原创 AOT,JIT区别,各自优劣,混合编译

AOT,JIT是什么?JIT,即Just-in-time,动态(即时)编译,边运行边编译;AOT,Ahead Of Time,指运行前编译,是两种程序的编译方式区别这两种编译方式的主要区别在于是否在“运行时”进行编译优劣JIT优点:可以根据当前硬件情况实时编译生成最优机器指令(ps. AOT也可以做到,在用户使用是使用字节码根据机器情况在做一次编译)可以根据当前程序的运行情况生成最优的机器指令序

2017-10-21 11:51:02 46427 1

原创 EventBus完全解析(一)基本使用

概述EventBus是一款发布/订阅时间总线,使用观察者模式。可以轻松实现在Android各个组件之间传递消息,可以降低代码的耦合度。怎样使用1.首先要定义一个消息类 ” public class Message{ ” //在这里实现消息的内容属性和getter、setter ” }2.在订阅事件的地方注册事件,即订阅观察者 ” EventBus.getDefault().regis

2017-10-12 19:56:55 381

原创 ANR发生的原因 和 原理

原因:ANR,即application not responding,程序未响应在主线程执行了比如数据库或者网络的耗时操作其他进程占用了CPU导致本进程得不到CPU时间片,例如其他进程频繁读写细分: 耗时网络操作大量数据读写数据库操作硬件操作(例如Camera)调用Thread的join()、sleep()、wait()方法,或者等待线程锁service binder的数量达到上

2017-10-01 13:04:51 998

原创 Activity和Fragment交互

1. 常规:静态变量、静态方法、持久化、appliation全局变量、收发广播2. 在activity中设置一个方法用于接收Handler,在fragment的onAttach中返回一个Handler,3. Activity可以用这个handler向fragment发送消息4. 推荐方法:fragment发数据给Activity在fragment中getActivity获取绑定的activi

2017-10-01 13:00:27 438

原创 Activty生命周期全面分析

Activity生命周期和启动模式全面分析Activty作为四大组件之一,使用最为平凡,在基本使用后会有一些地方不清楚,本文在基础使用的基础上对自己不是很清楚的地方进行解析。一、 生命周期在接触Activty生命周期的时候一般都会放出这张图:1.一些关于生命周期的问题其中对onCreate(),onDestroy()很好理解 :onCreate() 生命周期的第一个方法,用于初始化Activty

2017-10-01 12:50:02 505

原创 Android6.0运行时权限的处理

看了郭霖大神的直播,学到了很好的处理6.0运行时权限的方法,在这里总结出来Android6.0权限和之前系统的不同当build.gradle中的targetSdkVersion 小于23时,和以前的处理方法一样,系统将把程序申请的所有危险权限默认同意,但是用户可在应用管理中自行关闭,不做处理的话,可能导致程序崩溃当程序从targetSdkVersion小于23升级到23或之后时,系统也会把所有申

2017-03-14 14:06:51 479

原创 使用fragment+TabLayout+Viewpager实现页卡式界面

通过使用design库中的控件TabLayout,并将TabLayout与ViewPager绑定,Fragment作为ViewPager的装填内容,可以通过点击不同页卡项或左右滑动切换fragment实现效果如下:实现过程:1.创建需显示的fragment和fragment的layout2.创建MyFragmentPagerAddapter类继承于FragmentP

2017-03-14 14:06:32 739

空空如也

空空如也

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

TA关注的人

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