自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

关于Android开发的一些技术点总结 ╮( ̄▽ ̄”)╭

有句话说的很对,会用是一回事,深入理解又是另一回事了 ╮( ̄▽ ̄”)╭

  • 博客(28)
  • 资源 (17)
  • 问答 (1)
  • 收藏
  • 关注

转载 Android开发——网易云音乐使用的开源组件集合

前言网易云音乐Android版从第一版使用到现在,全新的 Material Design 界面,更加清新、简洁。同样也是音乐播放器开发者,我们确实需要思考,相同的功能,会如何选择。感谢开源,让我们有更多的时间和精力专注在自己产品的设计以及开发业务上。开发过程中使用了下列第三方开源类库、组件(本文由于潜在的商业目的,仅供开发者参考学习) 项目 项目描述 [material-dialogs]

2016-08-30 19:50:06 11789

原创 Java并发——线程同步Volatile与Synchronized详解

Java面试——线程同步volatile与synchronized详解0. 前言面试时很可能遇到这样一个问题:使用volatile修饰int型变量i,多个线程同时进行i++操作,这样可以实现线程安全吗?提到线程安全、线程同步,我们经常会想到两个关键字:volatile和synchronized,那么这两者有什么区别呢?1. volatile与synchronized介绍volatile是变量修

2016-08-30 19:09:16 45219 10

原创 Android开发——JVM、Dalvik以及ART的区别

0. 前言转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52354964Dalvik是Google公司自己设计用于Android平台的虚拟机。Dalvik经过优化,使其更适合Android平台。具体优点会在下面和JVM进行比较时说明。2014年6月谷歌I/O大会,Android L 改动幅度较大,Google将直接删除D...

2016-08-29 19:40:28 29491 1

原创 Android开发——常见的内存泄漏以及解决方案(二)

0.前言 上一篇Android开发——常见的内存泄漏以及解决方案(一)中已经对部分可能会引发内存泄漏的情况进行了阐述,此篇将从图片、动画等资源角度介绍可能会造成内存泄漏的情况以及应对方法。6. 集合类导致内存泄漏很常见的一个例子就是图片的三级缓存结构,为了更好的用户体验,缓存机制必不可少,三级缓存分别为网络缓存,本地缓存以及内存缓存。...

2016-08-29 10:57:49 14926 2

原创 Android开发——常见的内存泄漏以及解决方案(一)

0. 前言 Android的内存泄漏是Android开发领域永恒的话题,那今天就总结一下常见的内存泄漏吧。也给自己提个醒,在以后的编码过程中多注意这个问题。在Android Studio里可以通过一些分析工具比如MAT来找出潜在的内存泄漏。还有如果不清楚Java里的内存泄漏以及内存泄漏、内存益处的区别的小伙伴,可以参考我之前写过的Java技术——Java中的内存泄漏。此篇将从静态变量引用Acti...

2016-08-27 12:37:30 17993 3

原创 JVM——自定义类加载器

0. 为什么需要自定义类加载器 网上的大部分自定义类加载器文章,几乎都是贴一段实现代码,然后分析一两句自定义ClassLoader的原理。但是我觉得首先得把为什么需要自定义加载器这个问题搞清楚,因为如果不明白它的作用的情况下,还要去学习它显然是很让人困惑的。首先介绍自定义类的应用场景:(1)加密:Java代码可以轻易的被反编译,如果你需要把自己的代码进行加密以防止反编译,可以先...

2016-08-25 20:13:29 28933 18

原创 JVM——Java类加载机制总结

1. 类加载器的组织结构转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52301541类加载器ClassLoader是具有层次结构的,也就是父子关系。其中,Bootstrap是所有类加载器的父亲。(1)Bootstrapclass loader:启动类加载器当运行Java虚拟机时,这个类加载器被创建,...

2016-08-24 20:38:24 16333 4

转载 Java技术——你真的了解String类的intern()方法吗

0.引言什么都先不说,先看下面这个引入的例子:String str1 = new String("SEU")+ new String("Calvin"); System.out.println(str1.intern() == str1); System.out.println(str1 == "SEUCalvin");本人JDK版本1.8,输出结果为:tru...

2016-08-23 16:40:53 63704 136

转载 HTML5——7个最牛的HTML5移动开发框架

0.前言你并不需要任何的原生应用编程经验,你只需要一些HTML、CSS和JavaScript的知识。首先HTML5会越来越好,因为移动端的硬件也会越来越强,其实你手机上的很多应用已经悄悄的使用混合式开发了,这也许就是HTML5的魅力所在吧。 1. 目前已经有很多的框架可以帮助你开发跨平台的移动应用,在这篇文章中,我们只介绍最牛的7个。

2016-08-21 17:37:55 25250 4

原创 设计模式——抽象工厂模式详解

0.前言写在最前面,本人的设计模式类博文,建议先看博文前半部分的理论介绍,再看后半部分的实例分析,最后再返回来复习一遍理论介绍,这时候你就会发现我在重点处标红的用心,对于帮助你理解设计模式有奇效哦~无论是工厂方法模式,还是抽象工厂模式,都属于工厂模式,在形式和特点上很相近,他们的最终目的都是为了解耦。为了方便理解,看此篇之前请先理解工厂方法模式,可以阅读我之前写过的设计模式……...

2016-08-21 17:05:41 14881 4

原创 设计模式——工厂方法模式详解

0.前言实际上工厂模式分为三种,第一种是简单工厂模式,第二种是工厂方法模式,第三种是抽象工厂模式。此篇为工厂方法模式的详解,那为什么跳过了简单工厂模式呢,是因为这两种模式差别不大,差异之处会在本文中指出,懂了工厂方法模式,稍微解释就懂了简单工厂模式。所以仔细看哦~还有就是抽象工厂模式,这个模式以后会另外写文章介绍。1.工厂方法模式模式介绍工厂方法模式定义……...

2016-08-20 17:08:23 11745 3

原创 设计模式——建造者模式解析

1.建造者模式介绍建造者模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式包括的角色:(1)Builder:给出一个抽象接口或抽象类,以规范产品的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建,一般由子类具体实现。(2)ConcreteBuilder:Builder接口的实现类,并返回组建好对象实例。(3)Direc...

2016-08-19 13:33:04 15835 8

原创 设计模式——单例模式解析

0.前言写在最前面,本人的设计模式类博文,建议先看博文前半部分的理论介绍,再看后半部分的实例分析,最后再返回来复习一遍理论介绍,这时候你就会发现我在重点处标红的用心,对于帮助你理解设计模式有奇效哦~1.单例模式介绍单例模式定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式的使用场景/优点:(1)避免产生多个对象消耗过多的资源(特别是一个对象需要频繁的创建和销毁时);(2)提供一个全局访问点,常常被用来管理系统中共享的资源(作为一个Manager)。单例模式的缺点:(1)单

2016-08-18 16:34:48 10554 1

转载 Android开发工具——Android Studio调试技巧

0.前言Android Studio目前已经成为开发Android的主要工具,作为开发者,调试、发现并解决BUG是家常便饭。正所谓,工欲善其事必先利其器,今天我们就来看看Android Studio中有关调试的技巧。1.调试面板调试面板首先,来看看Android studio中为我们提供的调试面板(标准情况下):点击右上角Restore ‘Threads’View可先展示目前相关的线程信息:一、A

2016-08-17 17:20:58 11862

原创 Java技术——Java泛型详解

1.为什么需要泛型转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52230032泛型在Java中有很重要的地位,网上很多文章罗列各种理论,不便于理解,本篇将立足于代码介绍、总结了关于泛型的知识。先看下面的代码:List list = new ArrayList();list.add("CSDN_SEU_Ca...

2016-08-17 13:24:56 26666 20

转载 Java技术——Java反射机制分析

1. Java的反射机制动态语言是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言。但Java它却有着一个非常突出的动态相关机制:反射。Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...

2016-08-14 21:28:37 8605 1

原创 Android开发——减小APK大小

0.前言APK的大小对APP的加载速度,使用内存大小和消耗功率多少有一定影响。如何减小APK的大小对于Android开发者是一个永恒的话题。那么首先就来了解一下APK的组成结构。1.APK的组成结构META-INF:包含CERT.SF和CERT.RSA签名文件,和MANIFEST.MF清单文件。assets:包含APP的assets资源,代码中可以通过AssetManager对象访问。res:包...

2016-08-13 18:50:25 19386 4

原创 Java技术——多态的实现原理

0.前言多态在Java技术里有很重要的地位,在面试中也会经常被问到。但是多态太抽象了,查了很多很多资料,连续几天断断续续的看,有时候看着看着就走神了。毕竟太抽象,哈哈~不过依然硬着头皮看下来了(也不知道看了多少遍),并且将很多资料里关于多态的知识进行了整理(添添加加删删减减了很久),便有了这篇文章。通过这篇文章相信可以帮助你更加深刻的理解多态。

2016-08-12 15:19:12 30813 27

原创 Android开发——AsyncTask的使用以及源码解析

1.AsyncTask使用介绍AsyncTask封装了Thread和Handler,通过AsyncTask可以很方便地在执行完后台任务后更新UI。如果不太清楚Android的Handler机制,可以查看此篇Android消息机制详解。下面是一个使用AsyncTask的实例,利用网络下载某URL里的字符串,以模拟耗时任务。在下载过程中,会通过进度条对话框向用户展示进度。在完成任务后将字...

2016-08-10 21:15:21 16854 8

原创 Android开发——Android 6.0权限管理机制详解

0.前言最近在研究所实习,我负责维护Android手机取证项目的Android客户端,有客户反映我们的APP在Android6.0无响应,经过调试发现SD卡读写权限权限被拒绝。但明明是在AndroidManifest.xml文件中声明过的。查了很多资料才知道Android6.0的很多权限申请机制发生了改变,可以说是Android6.0在安全机制上更进了一步吧,因此写下这篇文章以记录。...

2016-08-09 20:27:48 18969 13

翻译 Java技术——Java中创建对象的5种方式

此文为译文原文连接:https://dzone.com/articles/5-different-ways-to-create-objects-in-java-with-ex0. 前言作为Java开发者,我们每天都会创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象。然而此文中我们可以学习到更多创建对象的方法。Java中如下5种创建对象的方式,下面给出它们的......

2016-08-08 14:31:09 13699 3

原创 Android开发——子线程操作UI的几种方法

在Android项目中经常有碰到这样的问题,在子线程中完成耗时操作之后要更新UI,下面就自己经历的一些项目总结一下更新的方法:在看方法之前需要了解一下Android中的消息机制方法1 Activity.runOnUiThread方法如下:runOnUiThread(new Runnable() { @Override public void run()...

2016-08-04 17:21:34 23417

原创 Android开发——ThreadLocal功能介绍

ThreadLocal适用于某些数据以线程为作用域并且不同线程具有不同数据副本的场景。比如对于Handler来说,它需要获取当前线程的Looper,很显然Looper的作用域就是线程并且不同线程具有不同的Looper,这个时候通过ThreadLocal就可以轻松实现Looper在线程中的存取。ThreadLocal的另一个使用场景是复杂逻辑下的对象传递。比如监听器的传递,有时一个...

2016-08-04 16:07:58 12949

原创 Android开发——Android的消息机制详解

1. 为什么需要Android的消息机制Android规定访问UI只能在主线程中进行。若在子线程中访问UI就会抛出异常。这个验证由ViewRootImpl的checkThread()来完成。为什么不允许在非主线程访问UI呢?这是因为Android的UI控件不是线程安全的。并且UI访问没有锁机制,并发访问会导致控件处于不可预期的状态。那为什么不对UI访问加上锁机制呢?(1)这显然会......

2016-08-04 16:06:36 15912 1

原创 Java技术——Java中的内存泄漏

1.什么是OOMOOM就是说,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个Error(注:非Exception,因为这个问题已经严重到不足以被应用处理,当然Exception也分运行时异常和Checked异常,前者编译可通过,运行是抛出异常,后者编译时必须try-catch到,如IO操纵等和运行环境有关而与程序本身无关的异常)。2...

2016-08-02 17:23:04 14313 2

原创 Java面试——String、StringBuider以及StringBuffer的区别和使用场景

1. 为什么我们需要StringBuffer类和StringBuilder类String是不可变的对象,因此在每次对String类型进行改变的时候,都会生成一个新的String对象,然后将指针指向新的String对象,所以经常改变内容的字符串最好不要用String,因为每次生成对象会降低性能,当内存中无引用对象多了GC就会开始工作,性能就会降低。不要使用String类的"+"来进行......

2016-08-02 15:56:23 15040 2

原创 Java面试——HashCode的作用原理和实例解析

1. HashCode的特性(1)HashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,HashCode经常用于确定对象的存储地址;(2)如果两个对象相同, equals方法一定返回true,并且这两个对象的HashCode一定相同;(3)两个对象的HashCode相同,并不一定表示两个对象就相同,即equals()不一定为true,只能说明这两...

2016-08-02 14:50:19 42571 10

原创 Java面试——从JVM角度比较equals和==的区别

1. Java中数据类型分类1.1基本数据类型又称为原始数据类型,byte,short,char,int,long,float,double,boolean,他们之间的比较应该使用(==),比较的是他们的值。1.2复合数据类型当复合数据类型用(==)进行比较,比较的是他们在内存中的存放地址。当复合数据类型之间进行equals比较时,这个方法的初始行为是比...

2016-08-01 20:55:52 18486 9

Android高斯模糊效果的简单实现

Android高斯模糊效果的简单实现示例代码。

2017-01-17

Android使用AIDL完成自定义对象的远程传递示例

Android使用AIDL完成自定义对象的远程传递的完整代码示例。

2017-01-03

Android使用AIDL完成简单的远程加法计算示例

Android使用AIDL完成简单的远程加法计算的完整示例代码。

2017-01-03

Android IPC之Messenger使用示例

使用Messenger进行进程间通信的简单示例代码。

2017-01-03

RecyclerView的使用示例

RecyclerView的使用示例,包含了简单的动画设置、点击事件处理等。

2016-12-25

SurfaceView使用示例

该示例介绍如何使用SurfaceView的上述模版代码实现一个绘图板。

2016-12-19

实时的隐藏Toolbar

比如ListView向下滑动时,为了获得更大的阅读空间,隐藏Toolbar,向上滑时再显示。

2016-12-18

ListView实现两种布局

一个简单的聊天界面示例,来演示如何在ListView的getView方法里更优雅地实现加载不同的布局。

2016-12-16

异步任务中Activity销毁时保证提示框不出问题的代码示例

如果在进行异步任务,如进行下载时,该示例保证在旋转屏幕,不会对加载任务进行中断重启,并且对话框正常显示。

2016-12-11

异步任务中Activity销毁时的代码示例

异步任务中Activity销毁时的代码示例

2016-12-11

增量更新PC端工具

增量更新PC端生成补丁和形成新包的工具。

2016-11-13

Android检测用户心率应用源码

亲测可用。当打开软件时,手机的闪光灯也会自动打开,将手指放在摄像头上时,可以将用户的心跳条形图和心率数值显示出来。

2016-10-21

远程电脑屏幕监控

网上有很多远程监控的代码,但大多不全,这个是代码完整,亲测可用。实现一台电脑对另一台电脑的屏幕监控。

2016-10-19

Android热修复完整示例

Android热修复的例子网上很多,但是很多不全,这是一个简单的实例,易懂可用。

2016-10-18

Java实现文件的Zip压缩解压缩(可以加解密)

在Java代码里实现对文件的zip压缩(支持使用密码)以及解压缩,在网上搜索了好多这方面的资料,都不全面,花了几天时间整理了一下代码,资源里包括了5个jar包,实例代码简单易懂,希望可以帮到你。

2016-10-18

APK权限修改器(免Root)

可以在手机不需要Root的情况下对已安装的第三方应用进行权限“阉割”,比如单机游戏去掉网络权限以防止广告,一般应用去掉读取手机短信的等不必要的权限等。

2016-10-18

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

TA关注的人

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