自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (2)
  • 收藏
  • 关注

原创 C之内存分类

C之内存分类1.分类c语言在内存划分中分为:栈区、堆区、全局静态区、常量区、代码区。1.栈区:在函数内部定义的局部变量和局部数组,都在栈区。栈区的空间由系统管理,调用函数时开辟空间,函数执行结束空间回收。2.堆区,空间由开发人员手动开辟,手动回收。通过malloc开辟,free释放3.全局静态区:存放一些全局变量和静态变量。空间由系统管理,程序开始执行开辟空间,程序运行结束空间回收,在程序执行期间一

2017-09-06 17:51:00 680

原创 C总结之指针

C总结之指针总结1.指针1.1函数指针 函数指针简单说就是一个指针指向了函数的执行地址,这样定义一个函数指针,就可以动态的指向相同参数及返回值的一类函数,比如add,sub,mul,div。函数指针的定义如下 int (*p)(int a,int b);//p指针表示指向一个带2个int参数并且返回值是int的一类函数 eg: #include <stdio.h

2017-09-06 14:26:43 444

原创 GreenDao详解

GreenDao介绍 greenDao是一个将对象映射到SQLite数据库中的轻量且快速的开源的ORM解决方案。特点1.最大的性能,可能是android中最快ORM Database解决方案2.易使用,只需要定义data model,GreenDao会构建data objects(Entities)和DAOS(data access objects)3.最少的内存开销4.依赖的库很小,< 1

2017-08-08 23:25:46 1647

原创 Jenkins + Gradle + SonarQube 项目持续集成并分析环境搭建

Jenkins + Gradle + SonarQube 项目持续集成并分析环境搭建jenkins简单介绍 Jenkins 是一个可扩展的持续集成引擎。主要用于 1.持续、自动地构建/测试软件项目。 2.监控一些定时执行的任务。优势 1.软件构建自动化 :配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建 2.构建可持续的自动化

2017-08-08 23:19:58 1169

原创 DataBinding详解

Databinding介绍Databinding数据绑定,简单的说,就是通过某种机制,把代码中的数据和xml(UI)绑定起来,双方都能对数据进行操作,并且在数据发生变化的时候,可以自动刷新数据。数据绑定方式单向绑定单向绑定就是说数据的流向是单方面的,只能从代码流向UI;双向绑定双向绑定的数据流向是双向的,当业务代码中的数据改变时,UI上的数据能够得到刷新;当用户通过UI交互编辑了数据时,数据的变化也

2017-08-08 23:04:14 1247

原创 SonarQube Win安装部署与实践

1.    SonarQube简单介绍SonarQube能够提供对代码的一整套检查扫描和分析功能,拥有一套服务器端程序,然后再通过客户端或者别的软件的插件的形式完成对各开发环境和软件的支持。对编程语言的支持非常广泛,包括C、C++、Java、Objective C、Python、JavaScript、PHP、C#、Swift、Erlang、Groovy等众多语言提供了对HTML、CSS

2017-08-08 22:47:51 10379

原创 Sophix介绍与实践

1.    介绍移动热修复(Sophix)是阿里云提供的Android平台App热修复服务方案2. Sophix优势通过比较可以发现Sophix相比其他平台的实现更具优势A.对于部分修改,补丁即时生效,不需要应用重启(这个还得看情况,较大的修改或者修改类结构之类的,会导致重启)B.补丁包同样采用差异技术,生成的PATCH体积小C.对应用无侵入,几乎没有性能损耗

2017-08-08 22:19:53 3499

原创 热修复Andfix原理及实践

1.    原理热修复Andfix的原理简单的说就是方法体的替换它是在已经加载了的类中直接在native层替换掉原有方法,是在原来类的基础上进行修改。核心在native层的replaceMethod函数。参数是在java层通过反射机制得到的Method对象所对应的jobject,src对应是需要被替换的方法,dest对应新方法,新方法在补丁包中。Android的

2017-08-08 22:08:44 629 1

原创 解决Android Studio提示文档悬浮窗一直显示不出来的问题

开发当中经常遇见一个问题,就是通过快捷键操作查看当天方法的提示文档,悬浮窗一直显示Fetching Documentation.window的解决方法是:在c盘的C:\User\.AndroidStudio\config\options\jdk.table.xml文件,打开,然后找到javadocPath标签,将url对应的链接改为本地的sdk中的doc中的references文件

2017-07-10 22:58:34 1501

原创 Android短信相关

1.读取短信Uri inboxUri = Uri.parse("content://sms/inbox");Cursor c = MainActivity.this.getContentResolver().query(inboxUri, null, null, null, "date desc");if (c != null) { if(c.moveToFirst()){

2017-06-05 11:59:32 361

原创 java Serializable详解

1、什么是序列化和反序列化Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。2、什么情况下需要序列化 a)当你想把的内存中的对象保存到一个文件中或者数据库中时候;b)当你想用套接字在网络上传送对象的时候;c)当你想通过RMI传输对象的时候;将需要序列化的类实现

2017-06-01 19:58:10 523

原创 java Externalizable序列化接口

Externalizable序列化接口和Serializable序列化不同,Seriazible序列化由系统自动实现细节,默认会将对象的所有成员变量序列化(除非是用transient关键字修饰),而Externalizable序列化接口不同,当实现这个接口时,要实现两个方法:@Overridepublic void writeExternal(ObjectOutput out) throws

2017-06-01 19:51:38 575

原创 Android Parcelable接口的使用

Serializable(Java自带):Serializable是序列化的意思,表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。Parcelable(android专用):除了Serializable之外,使用Parcelable也可以实现相同的效果,不过不同于将对象进行序列化,Parcelable方式的实现原理是将一个完整的对

2017-06-01 19:48:59 369

原创 lambda表达式的底层实现

首先来看一段简单的代码@FunctionalInterfaceinterface ILambdaCaculator{ int result(int a,int b);}public class LambdaTest { public static void main(String[] args) { System.out.println("add :"+LambdaUse((

2017-05-22 21:41:52 4516

原创 java内部类相关的底层实现

首先我们来看看使用内部类的一个例子。interface INormalInner{ void normalInner();}public class NormalInnerClass { private String outterClassStr="NormalInnerClass"; class INormalInnerImpl implements INormalInner{

2017-05-22 19:31:07 577

原创 lambda表达式的使用详解

首先我们来看一段简单的代码:interface ILambdaTest1{ void print(String s);}public class LambdaTest1 { public static void main(String[] args) { //传统内部类的实现 LambdaUse(new ILambdaTest1() { @Override publ

2017-05-22 15:05:03 20364 2

原创 dp计算

1.首先什么是dp?什么是px?dp和px有什么区别?dp与px之间的转换关系?1.什么px?图像显示的基本单元,我们知道屏幕是由很多点组成的,因为点特别小,所以我们看起来就像是一片的。那其中的每一个点就是像素点,而px呢?就表示1px=160个像素点。什么是英寸?英寸就相当于一个长度单位,和厘米一样。平时我们都说手机是多少多少英寸的?那这个英寸到底是表示哪里呢?其实我们平时说的手机是多少

2017-04-20 16:25:07 4480

原创 Android Studio项目怎么导入Coding上创建的版本库

相信大家在协同开发的时候,都想到使用版本管理仓库,像gitub,coding等。在这里介绍coding。在使用coding的时候,大家经常不知道在coding上面创建的、初始化的版本仓库怎么和AndroidStudio项目进行结合。我之前也在网上查了好久,但是讲得都不是很清楚,经过自己的多次摸索后,找到了一种方法,希望可以帮助到大家。1.在coding上创建项目,点击+号2.填

2016-12-11 17:42:22 2155

原创 科大讯飞平台语音和文字互转简单介绍

首先来介绍一下科大讯飞开放平台吧?网址是:http://www.xfyun.cn/  科大讯飞开放平台提供了很多免费的服务。在这边分享中主要是使用java平台介绍科大讯飞中的在线语音合成功能(包括语音转文字和文字转语音)。  首先大家下载该功能的SDK.下载前必须要首先注册一个科大讯飞平台的账户。并在控制台中创建一个与之对应的java项目。之后下载在线语音合成的SDK.解压

2016-12-10 21:33:45 28654 4

原创 java类中声明的立即赋值的成员变量,真的立即赋值了吗?

java类中声明的立即赋值的成员变量,真的立即赋值了吗?  我告诉你答案。并没有!  下面我们来执行一个例子,验证一下?  首先定义一个抽象的父类,父类的构造函数中调用子类实现的方法。  public abstract class Parent { public Parent(){ System.out.println("在父类的构造函数中调动子类的实例化了initVari

2016-12-10 00:01:55 6380 1

原创 java中if暗含的性能优化玄机

我们知道的if()括号内就是填写判断条件的。那到底这个判断条件会暗含什么玄机呢?  首先,让大家看一个很简单的程序,代码如下:public class Main { public static void main(String[] args) { boolean first=false,second=false; if(false&&(second=true)) { S

2016-12-09 23:32:02 2114 1

原创 Bitmap图像分析

Bitmap图像到底是怎么保存在电脑上的呢?它的二进制组成有什么规则呢?颜色是怎么保存起来的呢?等等一系列的问题。在本章分享中,将会为你解决。bmp图像文件是怎么构成的呢?下面我们来看一张图:所以一般bmp图像有四部分组成。下面我们通过一个实例来解释。1.选好自己将进行实验的照片,我准备了自己的8x8,16x16,32x32头像原图 8x8 16x162.编

2016-11-30 17:44:15 2020 1

原创 SurfaceView的介绍和使用

我们知道view的绘制一般是在主线程进行的,这就导致了如果view的绘制很复杂,主线程就会一直被view的绘制占用而导致卡死。因此surfaceView的出现很好的解决了这个问题。Surfaceview允许在子线程中进行view的绘制,因此可以使用它进行复杂的绘制,主线程还可以去处理其他的事情。这也是surfaceview最棒的优点。SurfaceView中有一个显示的区域对象Surface,

2016-11-22 16:35:15 649

原创 设计模式第六天之单例模式

这次和大家分享一下设计模式中的单例模式。说到单例模式,我相信大家都了解,简单说就是某个类在整个程序中只有一个对象。那为什么使用单例模式呢?什么场景使用单例模式呢?我个人认为,在程序设计中,经过分析,某个类有一个对象已经可以满足要求,如果此时再加上这个类会消耗许多资源(包括内存开销大,创建对象耗时等),这个类就推荐使用单例来实现了。比如:数据库连接及相关操作,图片加载,缓存,线程池等等。使用

2016-11-19 23:29:25 355

原创 开发自己的第一个安卓app

在开发安卓app的时候,首先我们需要配置一下电脑的开发环境。到jdk官网下载最新版本的jdk安装包。Window64位下载地址:http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-windows-x64.exe下载完成后,全部默认安装,一直点击下一步知道完成。在安装的过程中,会安装两个jdk和jre(java环境)

2016-11-16 00:14:23 7531 1

原创 设计模式第五天——工厂模式

在这一次分享中,向大家介绍一下工厂模式。工厂模式简单的说就是将对象创建的细节封装起来,实现这样目的的方式有三种:简单工厂、工厂方法模式和抽象工厂模式。在介绍着几个方式之前,首先来向大家介绍一个设计原则—依赖倒置原则。什么是依赖倒置原则呢?官方说:“要依赖抽象,不要依赖具体类”,这和针对接口编程很相似。通过一个例子让大家了解依赖倒置原则。假设我要去披萨店点披萨,一共有3种披萨CheesePi

2016-11-15 17:40:13 368

原创 设计模式第四天之装饰者模式

在这次分享之前,我们先来分享一个设计原则------开放-关闭原则。其实在第一篇文章分享策略模式的时候已经使用过了。大家还记得那个android的图片缓存吗?大家发现,如果我要新增加一种缓存机制,只需要增加一个类(这个类实现ImageCache接口即可),然后然后通过setImageCache()方法将该类对象赋值给ImageLoader的ImageCache对象,就可以使用了。大家有没有发现?我

2016-11-06 11:39:52 344

原创 设计模式第三天-亲力亲为实现观察者模式

在上一边文章中,和大家分享了基于java内置实现的观察者模式。在本次分享中呢,将会是一个完全自己定义的一个观察者模式。我们还是以新闻报社为例子。在这里,我们将报社(被观察者)成为主题(Subject),观察者成为(Observer),在第一篇文章中,我们讨论了策略模式,也就是我们要针对接口编程,所以我们首先来定义两个接口,一个是主题接口,另一个是观察者接口。主题接口有什么内容呢?首先我们应

2016-11-04 23:25:58 414

原创 设计模式第二天_观察者模式_java内置实现

读《Head First》设计模式,个人心得、笔记。读完了第二章,感觉自己对观察者模式有了一定的了解。下面我分享一下我的看法,可能会有错误的地方,还希望大家指出。观察者模式,我们首先解释一下什么是观察者。我个人的理解就是专注于某一件东西,然后当这个东西发生变化的时候,关注的人要做出相应的行动。举个简单的例子。我相信大家都追过剧吧,我们时刻都在关注着该剧是否已经更新,当剧更新了,我们就会马上

2016-11-01 17:48:14 453

原创 设计模式第一天 策略模式

读《Head First》设计模式,个人心得、笔记。看了第一章后,我个人总结的一句话"设计模式的重点就是把会变化的抽取出来,并对这部分针对接口编程,不是针对实现编程,而且在设计的过程中要满足接口隔离原则。",作为设计模式的新手,不知道这样总结会不会有错,但是还是希望把自己的想法写出来,有错的,希望大家纠正。首先来解释一下上面这句话的名词:会变化的:什么是会变化的,我相信大家都知道,也就

2016-10-31 19:25:44 352

原创 Activity的生命周期

2016-07-04 15:03:49 354

转载 Android6.0系统权限

转载来自:http://www.open-open.com/lib/view/open1450578678148.htmlAndroid6.0带来了新的权限管理方式,本文主要来源于官方文档,加入了自己的理解,目的是想总结Android6.0权限管理的新方式,其他部分可能主要是总结式的带过,后续再详细分析。一.Security Architecture(安全体系结构)

2016-06-30 10:56:16 483

原创 android消息通知Noticication使用详解

本人为android的新手,如果有写的不对的地方,希望各路大神多多指教哈。。。我们经常遇见的Noticication的例子,莫过于使用qq时,手机状态栏会显示有多少条消息处于未读状态。Notification类就是实现这样的功能。Notification通知的布局有两种:1.使用系统默认的布局2.使用自定义的布局首先使用系统默认布局:1.首先获取Notifi

2016-06-27 22:55:02 639

转载 Android Matrix原理

原文:http://www.cnblogs.com/qiengo/archive/2012/06/30/2570874.html#codeAndroid MatrixMatrix的数学原理平移变换旋转变换缩放变换错切变换对称变换 Matrix的数学原理在Android中,如果你用Matrix进行过图像处

2016-06-23 22:18:04 482

原创 ViewTreeObserver理解

ViewTreeObserver类是一个监听View中各种状态(焦点的改变、布局的改变、触摸模式的改变、绘制视图前、滚动状态等)。获得ViewTreeObserver类实例的方式:ViewTreeObserver vto = 视图.getViewTreeObserver();   //相应的是处理该视图的事件。分别实现上述状态改变的方法:布局的改变:设置visible和in

2016-06-23 20:47:15 517

TimeController

TimeController安装包 github:https://github.com/wpy2016/TimeContrloller/

2017-07-04

科大讯飞语音文字互转

使用了科大讯飞开放平台,实现了文字和语音的互转.

2016-12-10

空空如也

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

TA关注的人

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