自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 Android资源冲突检测Gradle插件

背景之前我们写了一篇定义关于如何定义Gradle插件,有兴趣的朋友可以看一下,今天我们就来简单讲一个自定义Gradle插件的实战Android项目Module间资源冲突检测的Gradle插件。对应的使用方法和源码已经在GitHub给出Android资源冲突检测插件解决问题具体我们的插件的作用是干什么的呢?这里简单解释一下,就是当我们的项目越来越大的时候我们会将项目拆分为多个Modu

2018-01-11 22:51:38 1053

原创 Android内存泄漏检测工具

背景前几天写了一篇文章关于Android几种常见的内存泄漏问题和解决方法,还没看的朋友也可以先看一下。那么当我们真正遇到不知道问题的内存泄漏的时候该怎么去分析和检测它呢?内存泄漏检测工具利用MTA来分析内存泄漏首先我们就拿一个最简单的内存泄漏的例子来分析一下public class MainActivity extends Activity { private static Context

2017-08-26 14:39:09 485

原创 Android常见内存泄漏及解决方法

背景在Android开发中内存泄漏是一个相对来说比较常见的问题,这个问题也相当严重,但是有好多朋友还不知道怎么解决和查看内存泄漏问题,这里就写一篇文章来给大家介绍一些常见的内存泄漏问题以及解决方法。常见内存泄漏1. 静态引用比如以下代码,定义了sInstance来传递和使用,会导致MainActivity无法被销毁,这是一种比较低级的错误,一般我们不建议这么使用,如果一定要使用,就需要在最后将sIn

2017-08-23 16:22:41 390

原创 Android线程池得这么用

背景之前写了两篇关于线程和多线程的文章,竟然写到了多线程,那肯定少不了线程池啊,如果想了解线程和线程池方面的知识可以查看我之前写的 线程你真的了解它吗 这才是真正的多线程 那么什么是线程池,它有什么优点呢? 1. 重用线程池中的线程,避免因为线程的创建和销毁所带来的性能开销。 能有效控制线程池的最大并发数,避免大量的线程之间因相互抢占系统资源而导致的堵塞线程。 2. 能够对线程进行简单的

2017-06-22 20:42:30 422

原创 Android多线程深入浅出

背景多线程:顾名思义,它就是指的多个线程同时存在,在Android开发中我们经常需要在一些子线程(非UI线程)中去处理一些耗时操作。对于线程还不太了解的小伙伴可以看一下你真的了解线程吗。OK,那么多线程到底有什么优缺点呢? 优点: 1)适当的提高程序的执行效率(多个线程同时执行)。 2)适当的提高了资源利用率(CPU、内存等)。 缺点: 1)占用一定的内存空间。 2)线程越多CPU的调度

2017-06-22 16:00:21 663

原创 线程的简单介绍

什么是线程线程:进程中负责程序执行的执行单元。一个进程至少有一个线程 其中:一个进程是一个独立的运行环境,它可以被看作是一个独立的程序或者应用,而线程是在进程中执行的一个任务,线程是进程的子集,每一个进程可以有多个线程,每条线程并行执行不同的任务,不同的进程使用不同的内存空间,而同一进程的所有线程,共享同一片内存空间。但它与栈内存不同,每一个线程都有单独的栈内存来存储本地数据。 对于线程的概念,

2017-06-20 11:58:25 333

原创 自定义日出日落曲线动画

背景最近在使用某一款天气软件的时候发现了它的一个日出日落的动画,感觉还不错,后面就自己动手撸了一个源码地址。分析我们先对这个动画元素进行分析: 1. 需要一条曲线。 2. 需要一个沿着曲线运动的小太阳。 3. 需要一个跟着太阳一起运动的阴影面。好了我们直接开始首先我们定义一个自定义View,然后初始化一些我们上面分析到的元素 //曲线初始化 mPathPaint = new P

2017-06-19 11:17:25 3504 2

原创 五分钟教你Android-Kotlin项目编写

背景之前就看到过Kotlin这一门语言,也有不少大神和愿意走在知识最前沿的哥哥姐姐们说这一门语言有多么多么的好,但是本人并没有去了解他,直到前段时间Google大会直接说会支持Kotlin语言,所以我就抽出了一点时间准备学习一下,个人觉得到目前为止这个东西并不是什么刚需,有兴趣可以学习,不想学影响也不是很大,好了关于这门语言有多好,有多叼,我就不多少了,想要了解的出门百度,这里给上源码链接Kotli

2017-06-05 22:16:17 2446

原创 Android多线程下载

背景万事都有两面性,多线程下载也是,那么多线程下载的优点是什么呢?归根结底还是多线程的优点,这里我们暂且不去讨论它的利弊,只是讲解一下思想和实现方案。实现分析我们用五个why的思想来分析一下这个问题: 1. 怎么实现多线程下载? 将下载逻辑在多个线程中同时运行。 2. 怎么让每个线程下载对应的文件? 将文件拆分成线程数对应的分数,进行分配。 3. 怎么拆分文件? 获取文件的长度,再按照线

2017-02-12 11:55:12 894

原创 Java反射的简单使用

百度百科先来一些不太实用的解释:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。简单使用反射,在java中是非常常见和好用的一种方式,(但是大家需要知道,他的效率是比较低的,所以要慎用)当然在基于java语言而产生的Android中也是可以使用的,我

2017-01-14 12:13:13 392

原创 JVM 内存模型简单分析

背景说是简单分析,不如说是一个笔记,写这篇文章完全是处于自己脑子不好使,总是记不住JVM的内存模型,对他的概念一直很模糊,今天终于忍不住,觉得写一篇文章来彻底记住他。(部分来自网上其他作者,我做了个汇总,在此表示感谢!)模型图简单分析程序计数器 多线程时,当线程数超过CPU数量或CPU内核数量,线程之间就要根据时间片轮询抢夺CPU时间资源。因此每个线程有要有一个独立的程序计数器,记录下一条要运行

2017-01-14 12:11:43 448

原创 Android7.0文件访问权限

在Android N之后大家会发现一些奇奇怪怪的问题,这里也是自己在开发的时候遇到的,做一个记录:情况出现在,把自己的手机刷成了Android N,然后,坑就来了,发现调用相册的地方崩溃了,提示FileUriExposedException,后面在下载应用然后调用系统安装的地方也出现了这个错误,最后发现是Android N对于权限和安全做的更加严格。现在我们就以调用系统的来安装APK为例子来讲一下:

2017-01-14 12:10:42 17103

原创 Android自定义Log库

背景我们在开发的时候肯定会打一些Log,特别是在调试代码或者bug的时候,我们都会打一些Log日志来记录,但是当我们发布正式版本的时候,尼玛,要一行一行的去掉,这就尴尬了。 励志封装Log库本来想使用github上的Logger库的,但是感觉有点烦中,后面看到了鸿洋大师写过一篇关于Log库的文章 Android反观Log库后面我也是根据这个来简单的修改的自定义内容增加变量来区分debug模式还是

2017-01-14 12:09:08 580

原创 Markdown基础语法学习

Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。使用 Markdown 的优点专注你的文字内容

2016-11-05 12:24:53 378

转载 Android常用adb命令

基本用法命令语法adb 命令的基本语法如下:adb [-d|-e|-s ] 如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s ] 这一部分,直接使用 adb 。为命令指定目标设备如果有多个设备/模拟器连接,则需要为命令指定目标设备。参数 含义 -d 指定当前唯一通过 USB 连接的 Android 设备为命令目标 -e 指定当前唯一运行的模拟器为命令目标 -s 指

2016-09-11 12:48:44 3536

原创 Android关于Context的简单理解

我相信大家在android开发的过程中都遇到过这样的问题,特别是初级的android程序员,今天我们就来简单的理解一下Context到底是什么呢,上下文环境是什么

2016-07-24 00:22:43 644

原创 Android自定义View自定义圆形Dialog

Android自定义圆形Dialog,自定义View

2016-07-22 16:43:47 1246

原创 Android自定义View温习

自定义View学习

2016-07-22 00:27:40 478

原创 Android自定义View实现随机验证码

对于android开发来说自定义View还是一个比较重要的技能,所以在这里写一篇自定义View入门的博客,也是实现一个相对简单的随机产生验证码的功能: 自定义View主要也就分为几步自定义View的属性在我们的自定义的布局中获取自定义属性重写onMesure方法重写onDraw方法好现在我们就一步一步的来,首先创建我们的View属性 在valuse目录下创建一个attrs.xml的文件

2016-07-13 21:48:27 2903 5

转载 Android代码混淆(上)

首先感谢郭大侠,此文转载郭大侠博客 混淆 本篇文章中介绍的混淆技术都是基于Android Studio的,Eclipse的用法也基本类似,但是就不再为Eclipse专门做讲解了。 我们要建立一个Android Studio项目,并在项目中添加一些能够帮助我们理解混淆知识的代码。这里我准备好了一些,我们将它们添加到Android Studio当中。 首先新建一个MyFragment类,代码

2016-07-12 21:21:04 1608

转载 Android重打包

首先感谢郭大侠的技术博客 那么对于反编译出来的文件夹,我们能不能重新把它打包成APK文件呢?答案是肯定的,只不过我实在想不出有什么义正言辞的理由可以让我们这么做。有的人会说汉化,没错,汉化的方式确实就是将一个APK进行反编译,然后翻译其中的资源再重新打包,但是不管怎么说这仍然是将别人的程序进行破解,所以我并不认为这是什么光荣的事情。那么我们就不去讨论本身这件事情的对或错,这里只是站在技术的角度来学

2016-07-11 20:25:28 1075

转载 Android反编译工具和方法介绍

反编译我们都知道,Android程序打完包之后得到的是一个APK文件,这个文件是可以直接安装到任何Android手机上的,我们反编译其实也就是对这个APK文件进行反编译。Android的反编译主要又分为两个部分,一个是对代码的反编译,一个是对资源的反编译,我们马上来逐个学习一下。 在开始学习之前,首先我们需要准备一个APK文件,为了尊重所有开发者,我就不拿任何一个市面上的软件来演示了,而是自己写

2016-07-09 22:37:32 1626

原创 单例模式与静态方法的比较

最近学习了一下单例模式,突然想到一些自己写代码的时候产生的工具类(静态方法)于是就想到了两者的区别,在网上也搜集了一些资料,但是都是大同小异没什么大的区别,这里做一下整理和写一下自己的理解1、单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集成实例成员); 2、单例可以被延迟初始化,静态类一般在第一次加载时初始化; 3、单例类可以被集成,他的方法可以被覆写 4、静态方法是面向过

2016-01-18 21:29:21 5005

原创 Android多种单例模式的使用

单例模式的简单定义: 单例模式是应用最广的模式之一,确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,应用在一些创建对象需要消耗较多资源的地方。 单例模式的实现方式,在这里讲解了5种:1.懒汉模式,2.Double CheckLock(DCL)实现单例,3.静态内部类,4.枚举单例,5.使用容器实现单例模式。 OK,现在我们来一一的看一下他们的实现方式分别是什么

2016-01-13 23:00:25 914

原创 Android通过adb命令记录

我们做开发的时候有时候想找当前页面的文件名,很麻烦,但是adb有一个很好的功能可以帮助我们: adb查找最上层的页面 adb shell dumpsys activity | findstr “mFocusedActivity”

2015-12-06 12:55:43 598

原创 时钟插件TextClock的使用

TextClock是在Android API17(4.2.0)之后出现的,他是由系统托管的不会出现停止的现象(之前做一款软件的桌面插件开发–Widget)利用绘图机制将时间绘制上去,但是会发现在内存不足或者第三方清理的情况下会出现时间不走的现象,后来与同事之间的交流选择的TextClock这个组件,研究之后才发现这个组件真的很强大,支持的也很多,他也可以跟随系统语言来切换繁体,英语等语言格式,下面我

2015-12-06 12:51:41 14132 3

原创 使用weight属性实现视图居中显示

我们写代码一定都遇到过要求 某一个组件位于父部件的中间,并且宽度是父部件的一半,大家一定都有好多实现方式,这里介绍一种最简单的: 我们利用weight和weightSum这两个属性来实现;<LinerLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:gravity="cente

2015-11-22 21:33:21 469

原创 大话AlarmManage

1、AlarmManager,顾名思义,就是“提醒”,就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent,通常我们使用 PendingIntent,PendingIntent可以理解为Intent的封装包,简单的说就是在Intent上在加个指定的动作。在使用Intent的时候,我们还需要在执行startActivity、startService或s

2015-11-08 16:00:32 792

原创 Android Selector自定义背景的使用

Selector我用的地方一般是在点击事件背景的变化,所以这里就简单的讲一下Selector的几种状态和需要注意的地方 首先Selector分为四种: 默认状态下view的背景使用android:state_enabled="true" 获得焦点时view的背景使用android:state_focused="true" 被按下时view的背景使用android:state_pressed=

2015-10-21 00:02:34 616

原创 Android对象与Base64为字符串

在Android开发中有时候我们会遇到要求存储一个对象或者是传输,这里讲解一个将对象转成Base64的字符串ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(**Obje

2015-10-20 23:42:58 1086

原创 Android获取手机的版本号等信息

private String getHandSetInfo(){ String handSetInfo= “手机型号:” + android.os.Build.MODEL + “,SDK版本:” + android.os.Build.VERSION.SDK + “,系统版本:” + android.os.Build.VERSION.RELE

2015-10-20 23:19:22 646

转载 Android百分比布局的解析与扩展

周末在家无聊,想写一些东西,顺便逛逛博客,看到了Android出来了百分比布局,我觉得特别实用,就记录下来了(获取好多开发人员都已经知道,我属于OUT了)当然了android-percent-support这个库,基本可以解决上述问题,是不是有点小激动,稍等,我们先描述下这个support-lib。这个库提供了:两种布局供大家使用: PercentRelativeLayout、PercentFr

2015-07-26 19:39:01 721

原创 关于bitmap的回收问题

Android中我们会用到大量的图片加载,因此,我们也会不可避免的用到Bitmap,对于Bitmap加载图片在这里就不作解释了,有需要的可以自行百度。 最近在项目中碰到了很严重的内存泄漏问题,老板下令必须查清楚原因,然后就加班一点带你盘查,最后发现我们的APP中用到了大量的图片资源,就怀疑是Bitmap引起的: 1.ImagView在被销毁的时候会自己释放资源,因此我们很少去主动释放资源,后面发

2015-07-26 19:21:33 7690

原创 SpannableString和ImageSpan类的简单介绍

SpannableString可以个推TextView显示不同的颜色和样式 ImageSpan可以实现在文字中间添加图片 其实并没有什么东西。只是知不知道,这个实在实习的时候看到了以前的人写的代码觉得很腻害就百度以一下Drawable drawable = getResources().getDrawable(id);       drawable.setBound

2015-06-21 17:28:58 1610

转载 drawerlayout实现侧滑效果

android实现侧滑效果:之前android的侧滑记得使用的是开源的SlidingMenu但是不知道为什么现在谷歌官方不支持使用这种方法,新推出了drawerlayout后来查阅资料发现两者有如下的区别:slidingmenu 也是将view分为上下两层 但是最上层的是主内容页而下一层才是菜单页。而drawerlayout的实现是刚好相反的 菜单页是在内容页之上的 而且据

2015-03-16 13:35:57 668

原创 GridLayout—网格布局

•Android4.0新增的网格矩阵形式的布局管理器•常用属性•android:orientation="horizontal":子元素的布局方向•android:rowCount="2":最大行数•android:columnCount="3":最大列数•为子元素提供的属性•android:layout_column=“0”:该子组件所在的列序号•android:la

2014-09-29 15:58:44 669

原创 RelativeLayout—相对布局

•相对布局内的子组件的位置总是相对于兄弟组件或父容器的位置来确定。供子组件使用的主要属性:•子组件相对于父容器•android:layout_alignParentLeft="true":在父元素内左边•android:layout_alignParentRight="true":在父元素内右边•android:layout_alignParentTop="true":在父元素

2014-09-29 15:56:23 569

原创 LinearLayout—线性布局

•以垂直或水平方式来排列所有的子组件。•必须属性•android:orientation="vertical":布局方向。可选值:•"vertical":垂直布局,每一行只有一个组件,多个组件依次垂直向下排列。•"horizontal":水平布局,只有一行,每一个组件依次向右排列•特殊属性•android:layout_weight=“0”:设置子组件在LinearLayo

2014-09-29 15:54:54 563

原创 UI基本组件和几大布局

所有界面组件的基类(包括ViewGroup类)。常用属性:属性名                    描述android:alpha           透明度:0-1android:background     背景颜色/背景图像。"@null"表示透明android:clickable        是否可以激发点击事件:true | falseandroid:focus

2014-09-29 15:49:28 1983

原创 Android学习笔记——安卓环境搭建

软件的准备 JDK:(32 位)http://download.oracle.com/otn-pub/java/jdk/7u3-b05/jdk-7u3-windows-i586.exe(64 位)http://download.oracle.com/otn-pub/java/jdk/7u3-b05/jdk-7u3-windows-x64.exeAndroidSDK:http:/

2014-09-13 20:57:12 884

自定义圆形

Android,实现简单的自定View,简单的圆形图案的自定义

2016-11-23

Android自定义View实现随机验证码

Android自定义View介绍和学习 实现随机的验证码demo

2016-07-13

单例模式ppt

简单介绍了Android中单例模式的集中实现方式和优缺点

2016-01-13

高仿2048小游戏

利用算法与网格布局实现了2048游戏功能

2014-10-31

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

TA关注的人

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