自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎关注微信公众号:DroidMind

技术干货,工具分享

  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 【内存优化】SparseArray源码分析

SparseArray是一个Interger和Object的键值对,相当于HashMap<Integer,Object>它具有以下特点: 1、它不同于Array<Object>的是它的键值可以为不连续的数字,这点应该很好理解,数组的索引值是连续固定的,它可以任意且不连续,但是它不重复且是有序的。 2、它相比于HashMap<Integer,Object>具有更好的内存效率,因为它不仅避免了键值的

2015-09-28 17:20:32 634

原创 详解Java的自动装箱与拆箱(Autoboxing and unboxing)

一、什么是自动装箱拆箱 很简单,下面两句代码就可以看到装箱和拆箱过程//自动装箱Integer total = 99;//自定拆箱int totalprim = total;简单一点说,装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。下面我们来看看需要装箱拆箱的类型有哪些:这个过程是自动执行的,那么我们需要看看它的执行过...

2015-09-22 15:27:50 9883 5

原创 【内存优化】ArrayMap源码解析

一、为什么要使用ArrayMap ArrayMap是一个普通的键值映射的数据结构,这种数据结构比传统的HashMap有着更好的内存管理效率。传统HashMap非常的好用,但是它对内存的占用非常的大。为了解决HashMap更占内存的弊端,Android提供了内存效率更高的ArrayMap。二、ArrayMap的实现原理 它内部使用两个数组进行工作,其中一个数组记录key hash过后的顺序列表,另

2015-09-21 21:47:26 2462

原创 Gradle的安装

本教程主要参照官方说明文档 https://docs.gradle.org/current/userguide/userguide.html一、安装java JDK 1、现在jdkhttp://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html2、解压文件,修改文件名$ sudo mkdir /

2015-09-30 17:38:38 1253

翻译 使用Android Lint来改善你的代码

为了保证你的代码满足功能需求,首先需要保证的是你的代码没有结构性问题,结构性很差的代码会影响Android应用的可靠性和效率,使得代码变得很难维护,例如:如果你的XML资源文件包含了没有使用的命名空间,这将不仅会占用空间而且会导致不必要的处理。其他的结构性问题,例如:如果废弃的API被调用,这些API不被目标版本API所支持,这就会导致代码无法正常运行。Android SDK提供了一个叫做lint的

2015-09-30 17:20:00 887

翻译 如何提高android代码的质量(CheckStyle、Findbugs、PMD、Lint)

为了保证团队开发中代码的规范,我们往往需要一些工具来进行严格的规范检查,下面将要介绍的四个工具是我们在Android开发中往往会用到的,这些工具只需要在Android Studio中的Gradle构建脚本中进行配置就可以了。一、下载案例 通过案例代码可以对这些工具进行测试和了解,下载链接:https://github.com/vincentbrison/vb-android-app-quality

2015-09-29 19:02:52 4875 1

原创 Android开发相关问题分类

一、Json解析Android API里面自带的json解析GsonFastjson json-smart json-smart-v2二、网络请求HttpUrlConnectionHttpClientVolleyokHttpLiteHttp Retrofit三、图片加载glidepicassofrescoAndroid-Universal-Image-Loader四、Log工具类LogUtils

2015-09-28 19:55:46 1234

翻译 Android保持设备唤醒状态

为了避免电池的消耗,当Android设备出于闲置状态的时候,就会处于睡眠状态。但是有的时候应用需要唤醒屏幕或者CPU并且保持唤醒状态来完成一些工作。保持屏幕唤醒如果你的应用需要保持屏幕唤醒,例如游戏或者电影。最好的方法就是在你的Activity中使用FLAG_KEEP_SCREEN_ON,这个标签只能用在Activity,不能用在Service或者其他组件。public class MainActi

2015-09-24 16:40:43 6648

翻译 Android设计支持库(Android Design Support Library)

在谷歌2015的I/O大会上,谷歌公布了一个新的设计支持库,它里面包含许多材料设计组件,并且这个库支持Android 2.1及其以上版本。这个支持库,包含了以下关键特性: 1、NavigationView2、Floating Action Button (FAB)3、Snackbar4、TabLayout5、CoordinatorLayout AppBarLayoutCollapsingToolb

2015-09-23 19:39:12 3334

原创 Java中HashMap源码解析

首先来看看构造函数transient HashMapEntry<K, V>[] table;public HashMap() { table = (HashMapEntry<K, V>[]) EMPTY_TABLE; threshold = -1; // Forces first put invocation to replace EMPTY_TABLE}private stati

2015-09-22 20:29:13 810

原创 Android学习网站和博客汇总

Android好书1、第一行代码(基础) 2、Android开发艺术探索(进阶,侧重源码解析) 3、Android应用性能优化(进阶,性能方面) 4、Android框架揭秘(进阶,侧重底层) 5、Android软件安全与逆向分析(进阶,逆向方面) 6、Android安全架构深究(进阶,架构安全分析)网站谷歌开发者社区(GDG)Java源码在线查看 Android DevelopersIBM

2015-09-17 19:13:49 2191

原创 Android屏幕适配及DisplayMetrics解析

一、基本概念 1、屏幕尺寸 屏幕尺寸指屏幕的对角线的长度,单位是英寸(in),1英寸=2.54厘米2、px 是英文单词pixel的缩写,意为像素,屏幕上的点。我们通常所说的分辨率如480X800就是指的像素,一般以纵向像素*横向像素。3、dpi dpi是Dots Per Inch的缩写, 每英寸点数,即每英寸包含像素个数。dpi的计算方法:4、density 屏幕密度,density和dp

2015-09-16 20:35:27 23782

原创 Resources中getString方法解析

在Android开发中,我们的字符串一般都是统一写在项目的res/values/strings.xml中,如果我们需要得到指定的字符串,一般使用getString方法来得到。其实getString特别的有用,而且用法也很灵活,下面我们就来说说这个方法。一、getString的常见用法 在Resources类中它有两种定义形式:public String getString(int id)publi

2015-09-15 20:48:56 10302

原创 Android中TrafficStats流量监控类

这个类提供了网络流量统计,这个统计包括上传和下载的字节数和网络数据包数。需要注意的是这个统计不能在所有的平台上使用,如果设备不支持的话,就会返回UNSUPPORTED。常用函数:public static void setThreadStatsTag(int tag)public static int getThreadStatsTag()public static void clearThread

2015-09-14 20:19:12 4886 1

原创 浅析Android中Parcel类

在浅析绑定远程服务bindService基本原理与AIDL分析中,我们在使用服务调用远程服务的函数时,到底可以传递哪些类型的参数类,在AIDL进程间传递复杂数据类型中,我们详细解析了它可以传递的数据类型,那么到底为什么它只能传递这些数据类型。其实我们在调用远程服务的时候,会将参数进行统一的打包到Parcel中,然后在服务端会对Parcel进行统一的读取,并且打包过程和读取过程参数的顺序要保持一致,为

2015-09-11 17:06:25 3825

原创 浅析getSystemService获取系统服务

所谓系统服务是指可以使用getSystemService方法获取的服务,所谓客户端服务是指应该程序提供的自定义服务。那么getSystemService方法到底有哪些服务呢?我们来看看getSystemService的实现,getSystemService的实现在ContextImpl中。public Object getSystemService(String name) { Servic

2015-09-11 15:12:05 4803

原创 Ubuntu和Mac中Android源码查看工具

我们都知道在Window下我们如果想要查看Android源码,我们可以使用Source Insight,那么如果我们想要在Ubuntu中来查看Android源码该怎么弄呢?在Ubuntu中一般是使用Sublime Text并安装相应的插件就可以了。一、安装Package Control 打开Sublime Text 2,点击 Tools -> Command Palette 调出控制台Consol

2015-09-10 11:36:10 4240

原创 Android Studio中Gradle常用命令

下面主要列举一些Gradle的常用命令./gradlew -v 版本号./gradlew clean 清除app目录下的build文件夹./gradlew build 检查依赖并编译打包这里注意的是 ./gradlew build 命令把debug、release环境的包都打出来,如果正式发布只需要打Release的包,所以我们要使用下面命令:./gradlew assembleDebug 编译并打

2015-09-10 10:33:53 3689

原创 Android中常用adb命令及Log使用

一、adb常用命令 1、查看已连接的设备adb devices2、安装应用 adb install APK_FILE如果设备上已经安装了应用,可以使用可选参数 -r 重新进行安装并保留所有数据。adb install -r APK_FILE# exampleadb install -r com.growingwiththeweb.example3、卸载应用adb uninstall PACKAG

2015-09-09 21:35:19 1157

原创 Android设计模式——装饰模式之ContexWrapper源码分析

装饰(Decorator)模式又名包装(Wrapper)模式。在Android中,使用装饰模式一般是以Wrapper结尾,例如ContextWrapper,这也是我们这篇文章要分析的一个类。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案.装饰模式以客户透明的方式动态地给一个对象附加上更多的责任,也就是客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用更多子类的

2015-09-04 00:05:27 2178 2

方正飞腾排版快捷键

好东西, 一定要看,把所有的方正飞腾快捷键囊括在内,好好看,一定要下哦

2012-03-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除