自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 设计模式之6大设计原则

设计模式之6大设计原则原则一:单一职责原则(Single Responsibility Principle SRP)定义:There should never be more than one reason for a class to change.(应该有且仅有一个原因引起类的变更)好处:1.类的复杂性降低,实现什么职都有清晰明确的定义;2.可读性高,负责性降低,当

2017-05-08 12:24:07 450

原创 Android 音频系统:从 AudioTrack 到 AudioFlinger

1. Android 音频框架概述Audio 是整个 Android 平台非常重要的一个组成部分,负责音频数据的采集和输出、音频流的控制、音频设备的管理、音量调节等,主要包括如下部分:Audio Application Framework:音频应用框架 AudioTrack:负责回放数据的输出,属 Android 应用框架 API 类AudioRecord:负责录音

2017-05-08 12:22:45 3478

原创 什么是MD5

MD5是什么?MD5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。1991年,Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了"安全-带子"(safety-belts)的概念。虽然MD5比MD4复杂度大一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD4完全

2017-04-21 15:34:04 789

原创 HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议

它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP

2017-04-18 19:39:33 643

原创 Android自定义ImageView实现圆形图片

android中的ImageView只能显示矩形的图片,这样一来不能满足我们其他的需求,比如要显示圆形的图片,这个时候,我们就需要自定义ImageView了,其原理就是首先获取到图片的Bitmap,然后进行裁剪圆形的bitmap,然后在onDraw()进行绘制圆形图片输出。效果图如下:自定义的圆形的ImageView类的实现代码如下:package com.xc.xcski

2017-04-18 14:27:29 1120

原创 Android性能优化-内存泄漏的8个Case

为什么要做性能优化?手机性能越来越好,不用纠结这些细微的性能?Android每一个应用都是运行的独立的Dalivk虚拟机,根据不同的手机分配的可用内存可能只有(32M、64M等),所谓的4GB、6GB运行内存其实对于我们的应用不是可以任意索取优秀的算法与效率低下的算法之间的运行效率要远远超过计算机硬件的的发展,虽然手机单核、双核到4核、8核的发展,但性能

2017-04-13 11:26:59 407

原创 Android TextWatcher监控EditText中的输入内容并限制其输入字符个数

Android的编辑框控件EditText在平常编程时会经常用到,有时候会对编辑框增加某些限制,如限制只能输入数字,最大输入的文字个数,不能输入一些非法字符等,这些需求有些可以使用android控件属性直接写在布局xml文件里,比如android:numeric="integer"(只允许输入数字);对于一些需求,如非法字符限制(例如不允许输入#号,如果输入了#给出错误

2017-04-11 13:27:11 1579

原创 mvc mvp mvvm比较以及区别

MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式。软件中最核心的,最基本的东西是什么? 是的,是数据。我们写的所有代码,都是围绕数据的。围绕着数据的产生、修改等变化,出现了业务逻辑。围绕着数据的显示,出现了不同的界面技术。没有很好设计的代码,常常就会出现数据层(持久层)和业务逻辑层还有界面代码耦合的情况。ORM等框架,解耦合了业务

2017-04-11 13:25:41 1421

原创 Android调用系统输入法

一、打开输入法窗口:InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);// 接受软键盘输入的编辑文本或其它视图imm.showSoftInput(this,InputMethodManager.SHOW_FO

2017-04-10 10:19:17 3329

原创 ImageView.ScaleType说明

缩放图片的边界用于视图边界的选取设定。公共方法static ImageView.ScaleTypevalueOf(String name)final static ScaleType[]values()枚举值public static final ImageView.ScaleType CENTER图片位于视图中间,但不执

2017-04-10 10:18:32 261

原创 Intent详解

Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要。

2017-04-07 10:46:15 430

原创 创建后台任务的两种代码模式

后台任务是每个App都需要的一些行为,毕竟主线程是大爷,拖不起,伤不起,脏活累活都只能在不见天日的后台去做。    最简单的后台任务,可以说是直接开一个线程就可以了,或者说来个Service,再开个线程。但这些并不是官方认证的最佳实践,实际上,Google早就考虑到了这一点,并把这些需求进行了封装,给我们提供了非常好的后台任务解决方案,并在Training上进行了讲解:官网镇楼:

2017-04-05 11:40:43 287

原创 Android Studio导入第三方类库的方法

导入*.jar包新建好了Android项目,添加一个第三方已经打包好的jar文件进你项目,下面就已添加一个odata4j的一个包在项目中添加一个libs文件直接通过COPY/PAST 把你下载的jar文件添加到libs文件夹下然后在libs文件夹和添加的*.jar文件下鼠标单击菜单 add as lib

2017-04-02 12:00:49 245

原创 Invalidate和postInvalidate的区别

Android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用。 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。

2017-03-31 16:29:21 273

转载 Android开发使用的常见第三方框架汇总

1、volley 项目地址 https://github.com/smanikandan14/Volley-demo (1)  JSON,图像等的异步下载; (2)  网络请求的排序(scheduling) (3)  网络请求的优先级处理 (4)  缓存 (5)  多级别取消请求 (6)  和Activity和生命周期的联动(Activity结束时同时取消所有网络请

2017-03-31 09:27:25 570

转载 android--断点续传

0.  前言在Android开发中,断点续传听起来挺容易,在下载一个文件时点击暂停任务暂停,点击开始会继续下载文件。但是真正实现起来知识点还是蛮多的,因此今天有时间实现了一下,并进行记录。本文原创,转载请注明出处为SEU_Calvin的博客。 1.  断点续传原理在本地下载过程中要使用数据库实时存储到底存储到文件的哪个位置了,这样点击开始继续传递时,才能通过HTTP

2017-03-30 20:14:34 208

原创 Android实现网络多线程文件下载

实现原理(1)首先获得下载文件的长度,然后设置本地文件的长度。(2)根据文件长度和线程数计算每条线程下载的数据长度和下载位置。如:文件的长度为6M,线程数为3,那么,每条线程下载的数据长度为2M,每条线程开始下载的位置如下图所示:(网上找的图) 例如10M大小,使用3个线程来下载,线程下载的数据长度   (10%3 == 0 ? 10/3:10/3+1) ,第1,2个线程下

2017-03-30 20:06:14 591

原创 android常用权限

安卓开发中会有很多权限,这里总结一些常用的。

2017-03-29 18:57:58 532

原创 创建README.md文件

最近对它的README.md文件颇为感兴趣。便写下这贴,帮助更多的还不会编写README文件的同学们。README文件后缀名为md。md是markdown的缩写,markdown是一种编辑博客的语言。用惯了可视化的博客编辑器(比如CSDN博客,囧),这种编程式的博客编辑方案着实让人眼前一亮。不过GitHub支持的语法在标准markdown语法的基础上做了修改,称为Github Flavor

2017-03-29 12:17:21 25582 1

原创 第三方登录

一般稍微作为一个大点的项目,为了提高用户的群体都会做第三方登录(如:QQ,微信,新浪等)在往下看之前先注册第三方网站的开发者账号,创建应用完成审核。QQ : QQ开发者平台微信: 微信开发者平台新浪: 新浪开放平台要实现第三方登录的功能首先要明白oauth2.0的认证原理,由于第三方登录的认证授权流程大致都是一样的,在这里我只讲QQ的登录授权流程:官网也有介绍: 

2017-03-29 09:25:25 469

原创 一个移动助手ViewDragHelper

Google在其support库中为我们提供了DrawerLayout和SlidingPaneLayout两个布局来帮助开发者实现侧边栏滑动的效果。这两个新的布局,大大方便了我们创建自己的滑动布局界面。然而,这两个功能强大的布局背后,却隐藏着一个鲜为人知却功能强大的类——ViewDragHelper。通过ViewDragHelper,基本可以实现各种不同的滑动、拖放要求,因此这个方法也是各种滑动解

2017-03-29 09:09:00 205

原创 git使用备忘

1.参与一个开源项目,一定要从自己的帐号下克隆版本库,这样你才能推送修改!2.Repository 版本库,又名仓库:  可以简单地理解为一个目录,且目录下的所有文本文件可被 Git 管理(建议用 UTF8 编码)。3.用 git config 命令的 --global 参数,表示你机器上所有的 Git 版本库都会使用这个配置: 

2017-03-28 19:54:37 205

原创 Android Http的多点下载

在进行下载的时候,涉及到了一个http多点下载的技术,在这里解释一下;先说下原理,原理明白了,其实很简单:a、对于网络上的一个资源,首先发送一个请求,从返回的Content-Length中回去需要下载文件的大小,然后根据文件大小创建一个文件;[java] view plain copy this.fileSize = conn

2017-03-27 19:54:08 318

转载 解决ViewPager和SlidingPaneLayout的事件冲突

最近在做一个项目需要用到ViewPager加载广告图,布局中需要侧滑,用了android V4包里的SlidingPaneLayout控件,项目中使用的时候,发现在滑动中ViewPager和SlidingPaneLayout滑动冲突了,当手指从左向右滑动时,ViewPager的滑动事件被SlidingPaneLayout屏蔽了,只能执行SlidingPaneLayout的事件,而从右往左滑时,则正

2017-03-23 19:33:02 411

转载 为什么选择Chrome浏览器

Chrome 可能是世界上最流行的浏览器,但它不一定是最好的浏览器。好吧,刚刚只是开个小玩笑。Chrome 是伟大的,Google 为了它也做了很多出色的工作 —— 并且每天都在不断改进它。市场也认可这一点,而且许多调查也显示 Chrome 是目前最流行的浏览器。我们不难看出,Chrome 是稳定的,部分是因为它的架构师做了一个聪明的决定 —— 把每个网页放到一个单独的

2017-03-23 09:32:16 1303

原创 Adapter适配器的基本使用

在ListView,GridView等控件中经常用到适配器Adapter,但是android提供的Adapter只是集中框架,如果我们有需求,还是要自己根据需求而自定义Adapter的;  Android提供的三种Adapter主要有ArrayAdapter,SimpleAdapter,SimpleCusorAdapter是简单的字符串适配器,SimpleAdapter是可以自定义Vi

2017-03-22 16:38:45 1122

空空如也

空空如也

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

TA关注的人

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