public class HandlerThread extends Thread { int mPriority; int mTid = -1; Looper mLooper; private @Nullable Ha…
分类:Android
一起入门gradle自定义插件编写(二) - 深入理解build.gradle
这篇博客我们来通过groovy的语法去深入理解build.gradle的底层实现。 通过分析build.gradle里面的实现原理,我们在写自己的自定义gradle插件的时候就能使用同样的配置方法了。 在上一篇博客里面提…
史上最全 Android 中高级工程师面试复习大纲
概述 都说金三银四青铜五,这几个月份是程序员最好的跳槽时间,笔者四月初也换了工作。找工作之前看了很多面试题,复习资料,但是发现纯看面试题是不行的,因为靠背的东西是记不牢的,需要知识成体系才可以,所以笔者整理了一份复习大纲…
TWRP Recovery 编译适配教程
TWRP Recovery的强悍,使得它成为了刷机领域当之无愧的首选。很多设备刷机的第一步,正是选择一款适合的TWRP,然后刷上去。目前,多个品牌的热门机型都有官方适配了,且一些开发者也给官方未覆盖的机型适配了自己的非官…
Groovy(四)-布尔值,Lists,Arrays,Maps
译文:Groovy Language Documentation 布尔值 布尔值是一种用来表示真值:true和false的特殊数据类型。用这种数据类型可以设置简单的标志位来跟踪true/false情况。 布尔类型可以保存…
Android 宽高相等的子view的工具类
最近,使用 fresco 的 SimpleDraweeView 的时候才发现这个 view 不能设置高度为 wrap_content,但是不同的手机,或者是每一行显示的数量不一样,要想让子view的宽高相等,就需要在代码…
LeakCanary 内存泄露监测原理研究
“Read the fucking source code” — linus一句名言体现出了阅读源码的重要性,学习别人得代码是提升自己的重要途径。最近用到了LeakCanary,顺便看…
Android中JNI原理基石
核心原理是DalvikVM由native启动 每个应用程序都是由一个或多个进程组成,每个进程都对应着一个DalvikVM。DalvikVM是由代码native启动,在DalvikVM启动后,会返回一个JavaVM结构体。…
工具类之DeviceUtils
好久没更新了,最近都在做工具类的测试,这个是最新通过的,大家可以看看,发车喽 设备相关→DeviceUtils.java isRoot : 判断设备是否root getSDKVersion : 获取设备系统版本号 get…
腾讯Bugly应用升级使用总结
前言 最近正在新上线项目,照以往惯例复制来了以前一直在用的一套检查更新的代码,手写的升级逻辑还是很烦的,要调接口,每次复制过来还要针对新项目修修补补,今天无意间看到…
CardView的基本用法
引用 Gradle 依赖 compile 'com.android.support:cardview-v7:23.2.0' 主布局引用(可用于RecyclerView的item布局) <android.suppor…
略讲Android 中的多线程
Handler Handler必须在主线程中创建。 默认情况下,消息队列只有一个,即主线程的消息队列。 每个Hanlder都关联了一个线程,每个线程内部都维护了一个消息队列MessageQueue,这样Handler实际…