- 博客(5)
- 资源 (9)
- 收藏
- 关注
原创 ProgressButton的实现
一向对UI不是太感兴趣,不过项目中遇到了还是得去做,做这个ProgressButton还是费了不少功夫,不过效果还可以,这里先记下,以后可能还会用到。只贴代码,原理就不多说了。public class ProgressButton extends Button { public static final int MODE_BUTTON = 0; public static final i
2017-03-30 10:21:10 1409
原创 谈Android PowerManager的Hook技术
在插件中,需要禁止插件调用系统原生接口持有WakeLock,Hook技术是不错的解决方案。通过阅读系统源码,可以了解到PowerManager持有WakeLock操作最后都通过Binder跨进程调到系统服务中,我们只要拦截这个Binder的所有调用即可。思路是先通过反射拿到这个IPowerManager的Binder,然后动态生成该Binder的代理对象,再覆盖原有的Binder即可。public
2017-03-29 11:20:15 1459 5
原创 getSystemService的奇怪问题
先看如下代码,这两个PowerManager不是同一个对象,PowerManager manager = (PowerManager) getSystemService(POWER_SERVICE);PowerManager manager2 = (PowerManager)getApplicationContext().getSystemService(POWER_SERVICE);只能从内核源
2017-03-28 20:45:22 2305
转载 用happen-before规则重新审视DCL
编写Java多线程程序一直以来都是一件十分困难的事,多线程程序的bug很难测试,DCL(Double Check Lock)就是一个典型,因此对多线程安全的理论分析就显得十分重要,当然这决不是说对多线程程序的测试就是不必要的。传统上,对多线程程序的分析是通过分析操作之间可能的执行先后顺序,然而程序执行顺序十分复杂,它与硬件系统架构,编译器,缓存以及虚拟机的实现都有着很大的关系。仅仅为了分析多线程程
2017-03-16 17:55:09 532
转载 Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来
2017-03-16 17:17:23 1184
极其强大的C语言学生成绩管理系统(3000行代码)
2012-06-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人