随笔分类 - 写代码
摘要:先通过ppt了解下ASM和AOP,然后通过github上的一个仓库代码看一下demo。 下面来看demo,这个demo完成了对目标类的方法注入执行时间统计的代码,在github:https://github.com/Viyu/AOPWithASMLib 下图展示了demo的调用关系: 假如在一个An
阅读全文
摘要:创建工程目录; 在目录下创建src/main/java目录; 在上面创建的目录下创建package和.java代码文件; 回到工程根目录,创建build.gradle文件,写入: apply plugin: ‘java’; 执行gradle build就可以编译了。 如果要增加jar包依赖,在bui
阅读全文
摘要:目标:通过面向切面编程来实现对源代码无侵入的埋点。 方式 能力 缺点 学习曲线 XPosed 运行期hook 能hook自己应用进程的方法; 能hook别的应用的方法; 能hook系统方法; 1,手机需要root; 2, 依赖三方包的支持,碎片化严重兼容性差; 一般 DexPosed 运行期hook
阅读全文
摘要:如果一个列表数据是分页加载的, 就需要分页合并,即每次拉取新的一页时,将新到的一页数据合并到之前的列表数据中。 这个可以是很简单的,比如数据结构是这样的: data { list: [] } Merge方法极其简单,直接将新一页数据addAll到本地的列表数据结构中。 但如果这个接口除了接口数据还捎
阅读全文
摘要:不管是修改还是新建文件,都必须通过git add把这次修改从工作区加到暂存区; commit只是提交暂存区的修改,还没add到暂存区处于工作区的修改是不会commit的; git checkout可以将工作区的文件用暂存区的文件去替换掉,用于没commit之前; git reset —mixed可以
阅读全文
摘要:Work around的方法是先监听onTouch事件来监听连续点击次数,每次点击都布置一个间隔时间的延时任务,延时任务执行时判断间隔内是否还有点击,如果没有则发布点击次数,重置计数。 实现代码如下: 使用代码: 简洁直接的方法是用GestureDector类:
阅读全文
摘要:标记语言式的UML图编写工具,插件全名:PlantUML integration. 注意这个还要安装另一个软件:http://www.graphviz.org 并在PlantUML的设置中指定其路径。 这个语法挺多,类图的话这几个就够用了:
阅读全文
摘要:这个Android Studio插件可以根据JSONObject格式的字符串,自动生成实体类参数. 具体见:https://github.com/zzz40500/GsonFormat
阅读全文
摘要:类似微信聊天中的@好友功能,封装到一个EditText中,gist打不开了,直接贴代码到这里吧: /*** @好友的输入组件*/public class AtEditText extends EditText { /*** @的text的最长长度,根据addAt方法来更新*/private int
阅读全文
摘要:int weightSum = 0; for (Item item : mItems) { weightSum += item.getWeight(); } if (weightSum <= 0) { return null; } Random random = new Random(); int
阅读全文
摘要:有些app都实现了双击导航栏让页面的list自动滑动到顶部的feature。 先实现一个继承于OnTouchListener的监听多次点击事件的监听器,通过callback把连续点击的次数返回给客户代码,代码见gist:MultiTouchListener.java. https://gist.gi
阅读全文
摘要:在一个Activity页面,如果发起了AsyncTask任务,然后页面离开/销毁了,此时如果doInBackground没执行完,会有两个问题: 1, AsyncTask白白消耗资源,结果已经用不上了,因为UI也不在; 2, AsyncTask如果声明为Activity的内部类,会持有Activit
阅读全文
摘要:存储一些简单数据的时候,最快的实现是用SharePreferences,但SharePreferences的可靠性不高,在某些非官方ROM上,总是存取失败。后来想到用数据库来存取。产品中,存取的数据项目虽然很多,但每一个数据项目都只有1-3个字段而已,所以为每一个数据项目定义表结构来存取,实在是浪费
阅读全文
摘要:自从在Android中用上了消息框架,屡试不爽。不管是主线程发任务到后台线程,还是后台线程返回结果到主线程,甚至是完全在主线程中的调用,都用发消息-监听消息-收消息这种方式处理,真是解耦利器。 之前写过的两篇文章:用消息机制获取网络数据 和 用消息机制解耦Activity跳转。 之前在工程中都用的是
阅读全文
摘要:Android上要显示一个表格,没有Swing那么专门的JTable可用。 搜了下,一般用GridView,有诸多不便和需要自己实现的地方: 跟ListView一样的Adapter,getView的时候要把表格的二维空间转换成一维来返回。如果表格要画线,问题就来了,返回的Cell View处在一维中
阅读全文
摘要:用PagerAdapter的时候会反复调用instantiateItem和destroyItem来创建和销毁View,没有复用性。这里封装了一个可复用View的PagerAdapter,给实现类留下的抽象方法是:
阅读全文
摘要:有些安全性要求高的App,比如支付宝和手机银行之类的,当用户从应用切到桌面或者别的应用,然后再切回来的时候,需要锁定应用让用户验证一下才能再次进入。这个时候就需要知道自己的应用什么时候进去后台了,什么时候进入前台了,Android本身并没这样的回调方法,需要自己来实现。 其中一个解决方案就是应用的所
阅读全文
摘要:面试Android程序员的时候问过以下几个基本问题,得到的回答经常不尽人意: 1, Activity A跳转到Activity B,Activity B完成后,Activity A要刷新一下自己的数据以保持数据的同步,这种情况在哪个时机调用刷新方法? 回答:在Activity A的onResume中
阅读全文
摘要:很多安全要求高的App都会有个图案/手势/LockPattern解锁的模块,比如支付宝钱包等。 Android系统本身就有这个东西,叫LockPatternView,所以在自己的App中不用自己实现,但也不能直接调用,因为Android的LockPatternView不是给App用的,得从Andro
阅读全文
摘要:PopupWindow可以用来实现弹出任意位置的菜单,比Context Menu和Option Menu灵活性更高。Android中弹出一个PopupWindow基本有两个方法: 这个方法是弹出的窗口在anchor view的bottom-left,一般Android应用的菜单都在右上,实现思路就是
阅读全文

浙公网安备 33010602011771号