概述 近期碰到activity onstop延迟回调10s的问题。 关于问题的具体复现和原因,有博主总结的很不错,此处给上原链接: 深入分析Android中Activity的onStop和onDestroy()回调延时及延时10s的问题 此文主要记录一下笔者目前认为的解决方案,以及各方案的优劣。 1、避免过度频繁或耗时的主线程操作 假设现在是ActivityOne跳转到ActivityTwo,那么有两种情况都会导致延迟执行: ActivityOne频繁执行主线程操作,比如一些循环执行的动画操作。 ActivityT…

2020年4月19日 0条评论 0点热度 阅读全文

抓包的重要性 网络抓包,是Android应用逆向分析的重中之重,很多时候我们拿到一个APP,不知道从何入手分析,往往是从抓包开始,先弄清楚他与服务器通信的内容,如果一目了然,我们完全可以照搬,自行写一个程序来模拟,如果有一些加密字段和随机字段,也不用担心,我们可以从抓包中了解到一些关键的URL和session之类的信息,然后再反编译分析代码的时候,这些字符串可以帮助我们更快的定位关键代码所在之处。 Fiddler的使用 Fiddler简直是HTTP抓包分析的神器,比Chrome等浏览器自带的调试工具高不知道哪去了,…

2019年5月24日 0条评论 1点热度 阅读全文

阅读之前 参考:微信开放平台Android应用签名的本质及如何获取 1.首先用android studio给项目生成apk文件 2.获取md5:有两种方法可以获取的md5 (1)在AndroidStudio控制台切换到Terminal窗口,切换到你刚才生成的签名文件目录下,输入keytool -list -v -keystore **就可以获取到MD5(图片看不清?右键–>在新窗口中打开图片) (2)利用签名工具获取(将签名工具和apk安装到手机上,然后打开签名工具,输入包名获取签名); 签名工具下载地址:h…

2018年10月4日 0条评论 0点热度 阅读全文

前言 之前笔者其实已经写过事件分发机制的文章:快速理解android事件传递拦截机制概念 但是,现在看来其实更像是一篇知识概括,多处可能未讲清楚,于是打算重写事件分发,用一篇文章大致讲清楚。 首先,形式上笔者最先思考的是使用源码,此者能从原理上讲解分发机制,比起侃侃而谈好得多。但是大量的源码往往会让新手产生畏惧难以理解,于是笔者最终还是打算主要使用实例log输出来让读者理解android事件分发。 重要函数 笔者此次主要提及最常用的几个函数: (其间区别看源码很容易理解,此处直接给上结果) onClick():这个…

2017年1月12日 0条评论 6点热度 阅读全文

深度理解Android InstantRun原理以及源码分析 @Author 莫川 Instant Run官方介绍 简单介绍一下Instant Run,它是Android Studio2.0以后新增的一个运行机制,能够显著减少你第二次及以后的构建和部署时间。简单通俗的解释就是,当你在Android Studio中改了你的代码,Instant Run可以很快的让你看到你修改的效果。而在没有Instant Run之前,你的一个小小的修改,都肯能需要几十秒甚至更长的等待才能看到修改后的效果。 传统的代码修改及编译部署流程…

2016年7月5日 0条评论 7点热度 阅读全文

在Android中,我们可以通过手动开启多个线程来异步处理耗时任务。其实在应用启动之后,除了主线程外,应用本身还会启动其他几个通用线程,这些线程通常称为管家线程。 通过Eclipse的DDMS,我们可以看到下面几个线程,根据不同的Android版本,实际情况可能略有差异。       下面分别说一下这几个线程。 main:就是我们说所知道的主线程ActivityThread,我们应用的事件分发、UI更新都是在这里面做的。 GC:Garbage Collector,虚拟机的垃圾收集线程,…

2015年9月1日 0条评论 0点热度 阅读全文

  作为一个完整的应用程序,数据存储操作是必不可少的。因此,Android系统一共提供了四种数据存储方式。分别是:SharePreference、文件存储、SQLite、 Content Provider。对这几种方式的不同和应用场景整理如下。 第一种: 使用SharedPreferences存储数据   适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等),解锁口 令密码等   核心原理:保存基于XML文件存…

2015年7月24日 0条评论 1点热度 阅读全文

​       最近的项目上需要限制EditText输入字符的类型,就把可以实现这个功能的方法整理了一下: 1、第一种方式是通过EditText的inputType来实现,可以通过xml或者java文件来设置。假如我要设置为显示密码的形式,可以像下面这样设置: 在xml中,   android:inputType="textPassword" 在java文件中,可以用 myEditText.setInputType(InputType.TYPE_TEXT_VARIA…

2014年10月31日 0条评论 3点热度 阅读全文