groovy语法入门 看了一些gradle构建脚本的教程,总感觉缺少了点什么,对于某些命令的写法不熟悉甚至看不懂,补一下groovy的基础知识。文章内容参考 http://groovy-lang.org/syntax.html (官网) 和 http://ifeve.com/groovy-syntax (翻译) 2018年11月09日 #Gradle
对应用中Alarm优化 起因:华为应用市场反馈Alarm唤醒次数过多,需要优化。未优化之前通过华为的DevEco进行功耗测试,在Mate 9上每小时唤醒71次,在p10上每小时唤醒62,妥妥的手机没办法进入休眠状态,而他们的标准是每个应用每小时唤醒不超过20次。 2018年10月31日 #Android
使用express模拟后台返回数据 在研发过程中,有时候会遇到前端写完了,但是后端接口还没有完成的情况。一般情况下我们会写一些假数据来填充UI,这种方式没有办法检测网络请求有没有问题。我们可以自己搭一个服务,请求自己的服务来返回一些模拟数据。比如可以使用node和express模块来做。 2018年09月27日 #Android
ConstraintLayout https://developer.android.google.cn/reference/android/support/constraint/ConstraintLayoutA ConstraintLayout is a ViewGroup which allows you to position and size widgets in a flexible way. 2018年08月09日 #Android
Android hook--示例 Hook过程: 寻找 Hook 点,原则是静态变量或者单例对象,尽量 Hook public 的对象和方法。Hook的选择点:静态变量和单例,因为一旦创建对象,它们不容易变化,非常容易定位。 选择合适的代理方式,如果是接口可以用动态代理。 偷梁换柱——用代理对象替换原始对象。注意Android 的 API 版本比较多,方法和类可能不一样,所以要做好 API 的兼容工作。还有不要hook太底层的东 2018年08月06日 #Android
Android hook--反射基础 假如你已经非常熟悉java中反射(reflect)和代理(Proxy),那你还在这里看我这篇文章纯粹就是浪费时间了。 2018年08月06日 #Android #Java
Toast显示过程 抄书抄的有点烦,自己也学着分析一下源码,挑了个在我看来比较简单的Toast显示过程来玩一玩。 1Toast.makeText(context, text, duration).show(); 先了解一下makeText过程,该过程最终都会调用下面的方法: 1234567891011121314151617181920/** * Make a standard toast to displa 2018年08月03日 #Android
Android ContentProvider 《Android开发艺术探索》9.5章 系统预置了许多ContentProvider,比如通讯录信息、日程表信息等,要跨进程访问这些信息,只需要通过ContentResolver的query、update、insert和delete方法即可。虽然ContentProvider的底层实现是Binder,但是它的使用过程要比AIDL简单许多,这是因为系统已经为我们做了封装,使得我们无须关心底层细节即可 2018年08月02日 #Android
AndroidService 《Android开发艺术探索》9.3章Service分为两种工作状态,一种是启动状态,主要用于执行后台计算;另一种是绑定态,主要用于其他组件和Service的交互。需要注意的是,Service的这两种状态是可以共存的,即Service既可以处于启动状态也可以同时处于绑定状态。通过Context的startService方法即可启动一个Service: 12Intent intent = new I 2018年08月01日 #Android