JackPeng

Keep on going never give up

在Android的官方文档的内存管理中http://developer.android.com/training/articles/memory.html#Overhead 提到由于Enum通常需要两倍以上的存储空间,因此应当尽量避免Enum的使用。对此,Google官方推出了IntDef作为对Enum的替代。以下通过一个具体的例子来说明其用法: 例如我们有如下的一组Enum: publi...

配置gradle.properties

在一些项目中会分拆app 和 lib , 这时候引用support的时候,一旦更改版本会出现需要同步更改两个地方的问题.这种情况,可以通过配置gradle.properties实现替换. 在项目编译过程中,gradle.properties配置的值会被编译解析,其作为配置文件使用是很有必要的. 在项目根目录的gradle.properties文件配置: # Project-wide G...

在AndroidStudio中自定义Gradle插件

1 创建Gradle Module AndroidStudio中是没有新建类似Gradle Plugin这样的选项的,那我们如何在AndroidStudio中编写Gradle插件,并打包出来呢? (1) 首先,你得新建一个Android Project (2) 然后再新建一个Module,这个Module用于开发Gradle插件,同样,Module里面没有gradle plug...

Java中的Observer接口实践Observer模式

Observer源码 Observer是一个interface,只有一个update方法,两个参数,参数1位被观察者,参数2为被观察者额外传递的参数。 /** * A class can implement the <code>Observer</code> interface when it * wants to be informed of changes...

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后保存并退出Vi: export M2_HOME=/Users/robbie/ap...

浅析Android中的线程状态

在分析ANR问题时,第一步就是把/data/anr/traces.txt这个文件adb pull出来分析, 它记录了手机发生ANR时, 各个进程里的所有线程在当时的状态. 典型的情况是: ----- pid 9644 at 2015-12-18 18:06:11 ----- Cmd line: com.tencent.androidqqmail:Push DALVIK THREADS: ...

PlantUML 高效地画图

程序员难免要经常画流程图,状态图,时序图等。以前经常用 visio 画,经常为矩形画多大,摆放在哪等问题费脑筋。有时候修改文字后,为了较好的显示效果不得不再去修改图形。今天介绍的工具是如何使用 Sublime + PlantUML 的插件画流程图,状态图,时序图等。这是一种程序员看了就会爱上的画图方式:自然,高效。 什么是 PlantUML PlantUML 是一个画图...

Android Studio中git的使用

前置和后续: Android Studio系列(二)使用Android Studio开发/调试整个android系统源代码 Android Studio系列(三)Version Control I 使用内置版本管理工具管理源码 Android Studio系列(四)Version Control II Annotate 开发android系统源码的同学都知道,我们...

ANR的分析

一 ANR是什么? 1.1 ANR的定义: 简单说,通常就是App运行的时候,duang~卡住了,怎么搞都动不了。当卡住超过一定时间,Android系统认为这就是一次“ANR(Application Not Responding)”。 具体说,在以下情况发生时,会发生ANR(可能在不同ROM 中时间有所更改): 用户的输入在5s内没被App响应; B...

Android Studio之maven Central,JCenter

Android studio 是从哪里得到库的? Android Studio是从build.gradle里面定义的Maven 仓库服务器上下载library的。Apache Maven是Apache开发的一个工具,提供了用于贡献library的文件服务器。总的来说,只有两个标准的Android library文件服务器:jcenter 和 Maven Central。 jcent...