摘要: hot fix 线上修复 1. dexposed: 这是基于xposed的,xposed:替换/system/bin/app_process,共享java运行时库,让每个app都加载了XposedBridge.jar,在这个jar包中有一个hookMethodNative方法利用反射对内置方法进行覆 阅读全文
posted @ 2016-05-05 17:17 saki_god 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 插件框架 反射出插件中的acitivity,利用主工程proxyActivity代理来完成所有的activity生命周期。 阅读全文
posted @ 2016-05-05 14:50 saki_god 阅读(95) 评论(0) 推荐(0) 编辑
摘要: Android签名概述 我们已经知道的是:Android对每一个Apk文件都会进行签名,在Apk文件安装时,系统会对其签名信息进行比对,判断程序的完整性,从而决定该Apk文件是否可以安装,在一定程度上达到安全的目的。 给定一个Apk文件,解压,可以看到一个META-INFO文件夹,在该文件夹下有三个 阅读全文
posted @ 2016-03-05 15:57 saki_god 阅读(137) 评论(0) 推荐(0) 编辑
摘要: androidstudio提供了一个lint静态代码检查工具,手动的我们可以选择Analyze的Inspect code 来运行android lint 阅读全文
posted @ 2016-03-01 17:47 saki_god 阅读(234) 评论(0) 推荐(0) 编辑
摘要: BlockCanary:Android平台上的一个轻量的,非侵入式的性能监控组件 github:https://github.com/moduth/blockcanary 原理,Looper类中有个方法,循环处理消息 public static void loop() { ... for (;;) 阅读全文
posted @ 2016-02-05 17:36 saki_god 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 背景:我在做一个可以滚动的页面的时候插入一个可以播放gif动画的控件,结果发现,如果这个动画在播放的时候,滑动页面会发现卡顿。开始以为是硬件加速问题......最后通过traceview工具发现真正的原因。 android手机开发模式中有一个监控选项下有个属性是gpu显示配置文件,在里面选中以条的形 阅读全文
posted @ 2016-01-27 17:37 saki_god 阅读(1036) 评论(0) 推荐(0) 编辑
摘要: view是怎么被展示在手机上的? 我们先了解下window、windowManager等相关知识: 在activity的attach方法里(我不管谁调用了,只知道这个是开始就会做的事情),我们可以看到activity有一个window(PhoneWindow)成员变量,在这里初始化的。然后接着又给这 阅读全文
posted @ 2016-01-04 15:08 saki_god 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 数据库操作实际上就是操作数据库文件。 在android 2.3.7之前,insertWithOnConflict方法里,在获取sqliteStatement的执行数据库的代码块前后有lock() .... finally{... unlock()},所以对同一个DataBase,就做到了不... 阅读全文
posted @ 2015-12-14 17:31 saki_god 阅读(580) 评论(0) 推荐(0) 编辑
摘要: xxxx主工程的build.gradleimport org.apache.tools.ant.filters.ReplaceTokens//这里声明的是gradle脚本自身需要的仓储和依赖buildscript { repositories { jcenter() ... 阅读全文
posted @ 2015-12-09 19:45 saki_god 阅读(1488) 评论(0) 推荐(0) 编辑
摘要: 这是有关java并发里的一部分知识 首先了解下java内存机制—— 在java中,所有实例域、静态域和数组元素存储在堆内存中,堆内存在线程之间共享。 局部变量(Local variables),方法定义参数(java语言规范称之为formal method parameter... 阅读全文
posted @ 2015-12-03 15:16 saki_god 阅读(140) 评论(0) 推荐(0) 编辑