自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AudioRecord api的初步认知

相比AudioTrack作用播音,AudioRecord的作用就是用来录音的。api也简单易懂,使用过程中根据自身需求获取相应录音通道的PCM音频数据。1、用AudioRecord录制(read方法)下来直接保存在文件中的音频是PCM音频,也就是源音频,播放器没办法直接播放,需要转换为某一格式的音频。例如转为wave格式即可(在源文件前加44个字节来描述该音频------采样率、通道数、位宽等)...

2019-07-02 08:43:01 435 1

原创 Android Studio已经依赖了库,但是无法import

将项目导入到另一台电脑后明明已经依赖的库,死活无法import。类似于implementation 'com.android.support:appcompat-v7:26.0.1’这种一大堆。可是这个库在我的代码里就是找不到类,import后面一堆红字,然后网上搜了无数方法,google() jcenter() mavenCentral()这三个也都在项目根目录的build.gradle...

2019-01-23 22:14:46 3761 1

原创 LeakCanary还能这样????(自定义保存泄漏信息)

对于Android开发来说,用leakcanary来检测内存泄漏很是方便与快捷的。但是由于本人工作原因,LeakCanary用起来着实无法满足需求,因为我是开发机顶盒和车机的Android系统app,这个时候系统不发弹出Notifaciton,就无法看到内存泄漏的具体信息。有人会说看源码,在show提示Notification的之前,会保存当时分析的内存快照以及结果问题,如下:leakcana...

2019-01-22 10:43:07 577 1

原创 AIDL连接池的实现

参考《Android开发艺术探索》学习一下AIDL的连接池实现回顾一下AIDL使用的大致流程:首先创建一个Service和一个AIDL接口,接着创建一个类继承自AIDL接口中的Stub类并实现Stub中的抽象方法,在Service的onBind方法中返回这个类的对象,然后客户端就可以绑定服务端Service,建立连接后就可以访问远程服务端的方法了。现在考虑一种情况:公司的项目越来越庞大了,现在...

2018-11-21 14:19:25 383

原创 Android studio中多版本AndroidManifest文件编译打包解决

前言:在使用Android studio开发过程中,不免会遇到多版本多渠道编译apk,或者组件化,插件化开发apk。在开发过程中,自我开发调试和发布不同版本apk时,需要频繁的去修改AndroidManifest中的配置信息,这样不仅繁琐,还增加了工作量以及错误率。所以我们可以尝试将AndroidManifest也进行多版本区分。配置过程如下:首先在/src/main下建两个文件夹(不一定...

2018-11-19 20:31:53 4262

原创 MD5编码

进行MD5编码,编码后的字符串肯定是唯一的,并且只会包含0-F这样的字符,符合文件的命名规则。那么我们就写一个方法用来将字符串进行MD5编码,代码如下所示:public String hashKeyForDisk(String key) {   String cacheKey;   try&nbs...

2018-11-19 20:31:26 1369

原创 SparseArray和HashMap 了解一下

引言Android开发者对于HashMap肯定是不陌生的吧,开发过程中经常会用到。键值对应的数据储存结构。但是对于SparseArray,可能一些童鞋就没那么熟悉了。在此之前,了解一下基础知识。数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空...

2018-11-19 20:31:03 680

原创 设计模式之装饰者模式

前言:相信Java开发者在使用java i/o API的时候,对于以下代码写法应该非常熟悉:InputStream inputStream = new FileInputStream(file);BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);在不知道具体设计实现之前,是否有人像...

2018-11-19 20:30:20 121

原创 设计模式之观察者模式

介绍观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。观察者设计模式定义了...

2018-11-19 20:30:00 101 1

原创 设计模式之策略模式

对于设计模式,以前虽然看过一些文章,但是总感觉差那么一点,没有系统的去学习深入一下,以致于在脑海中的思路总不是那么清晰,在项目中对于设计模式的带入感很是不强。所以在下准备静下心来好好整理一下。第一篇便是策略模式。在百度百科上的介绍:策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。策略模式的优点有:策略模式提供...

2018-11-19 20:29:30 83

原创 设计模式的六大原则

1、单一职责原则(Single Responsibility Principle)定义 : 应该有且只有一个原因引起类的变化注意 : 这里的类不光指类,也适用于方法和接口,比如我们常说的一个方法实现一个功能2、里氏代换原则(Liskov Substitution Principle)定义 : 只要父类出现的地方子类就一定可以出现,而且替换为子类也不会出现任何异常或错误,使用者不需要知道是父...

2018-11-19 20:29:00 88

原创 网络基础

1、手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。TCP/IP协议主要负责数据的传输,HTTP协议负责数据的封装2、WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。3、Socket跟TCP/IP协议...

2018-11-19 20:28:09 90

原创 比较浅显易懂的AIDL

Binder是Android中的一种跨进程通信方式,Android的四大组件、各种Manager 和其对应ManagerService等无不与Binder挂钩。从Android Framework角度来说,Binder是ServiceManager连接ActivityManager、WindowManager等Manager和他们相应ManagerService的桥梁; 从Android 应用层来...

2018-11-19 20:24:28 188

原创 常见的几种排序方法实现

常见的几种排序方法:冒泡排序、选择排序、插入排序、选择排序1、冒泡排序:每次比较相邻的像个数,值小的往前冒泡,时间复杂度O(n2)2、选择排序:每次选择最小的一个数放在前面,时间复杂度O(n2)3、插入排序:每个数插入前面的有序数列中,时间复杂度O(n2)4、选择排序:利用递归方法,不断将小于某个数的数字放左边,大于这个数的放右边O(N*logN)代码如下:public class t...

2018-11-19 19:11:43 420

原创 利用SurfaceView实现帧动画效果,更流畅,更节约内存

利用SurfaceView实现帧动画效果在开发Android做动画效果的时候,有时候UI给开发一组动画实现的帧图片,如果说图片较少(十几张)、分辨率较低(几K,十几K),用帧动画实现应该没什么问题,但是如果有几十上百张、或者几百K或者上M的图片,这个时候用帧动画来实现其实就很有问题了,内存吃紧,会卡顿,OOM等问题随之而来。当然如果可以沟通UI改设计是最好的,但是如果非得这样做不可呢?本人就遇...

2018-11-05 23:11:17 1568 1

原创 Android 收集Crash日志----UncaughtExceptionHandler

Android应用不可避免地会发生crash,也称之为崩溃,无论你的程序写得多么完美,总是无法完全避免crash的发生,可能是由于Android系统底层的bug,也可能是由于不充分的机型适配或者是糟糕的网络状况。当crash发生时,系统会kill掉正在执行的程序,现象就是闪退或者提示用户程序已停止运行,这对用户来说是很不友好的,也是开发者所不愿意看到的。更糟糕的是,当用户发生了crash,开发者却...

2018-10-12 16:39:22 267

原创 自适应控件宽高大小加载bitmap图片的友好方式

自动计算BitmapFactory.Options 的inSampleSize 参数。代码如下: int reqWidth,int reqHeight) { // First decode with inJustDecodeBounds=true to check dimensions final BitmapFactory.Options options = new BitmapFa...

2018-10-09 14:19:54 902

原创 针对多个帧动画相互切换且帧数较多情况的另一种实现方式,优化方案,流畅不卡顿

最近有一个项目,有很多组帧动画,每一组大概60帧左右,再不同的状态下回调不同的接口,动态的切换到不同的帧动画,但是不管每一帧只有10K左右,使用软引用,提前加载帧动画,这些操作都试过了,但是再切换动画的时候还是有不时的有卡顿。由于图片过多,效果异常卡顿,所以在这篇文章中就说一下帧动画的优化问题。 首先还是先来看一下android原生的帧动画的实现,代码如下:(1)帧动画的资源文件 放入...

2018-10-09 10:07:38 896

原创 Android MVP模式直接用版本

引言        如果对于mvp和mvc不太熟悉的童鞋,请花一点时间阅读下面文字内容,纯手工打些本人一点粗糙的见解。或者问问度娘多多学习。熟悉者可直接跳过看干货,撸代码阶段。      在说mvp之前,相信大家应该都熟悉了mvc(model 、 view 、 control)。在Android的架构中Activity,fragment,布局的xml相当于View。然而在实际的开发过程中,Andr...

2018-05-22 15:29:15 544

原创 Kotlin--TODO("not implemented")异常

   在kotlin实现接口的时候小白可能会遇到以下异常:    抛出异常:kotlin.NotImplementedError: An operation is not implemented: not implemented    在实现接口的时候IDE会自动为我们添加上:    TODO("not implemented") //To change body of created funct...

2018-04-25 16:20:21 2159 1

原创 java-日期时间前后对比

public class DateTest { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); try { String ...

2018-04-10 14:09:18 2362

转载 最全Tortoise SVN Clean up失败的解决方法合集

转载:http://blog.csdn.net/coffeecato https://blog.csdn.net/u010832643/article/details/55104311

2018-04-06 12:25:39 447

原创 一个简单无脑的防止内存重启后导致Fragment重叠的解决办法

一个简单无脑的防止内存重启后导致Fragment重叠的解决办法谈起Fragment,对于开发Android的各位童鞋来说应该是家常便饭了吧。但是不得不说,Fragment的使用要比Activity的使用要复杂一些,使用Fragment摆在我们面前的坑也是很隐蔽,说不定啥时候就一脚踩了上去,还一脸懵逼。哈哈哈哈废话不多说了。进入正题,相比用replace,hide和show相信大家用得更多吧,那么大

2017-08-20 16:27:54 1187

原创 ViewPager以及导航小圆点实现无限循环

ViewPager以及导航小圆点实现无限循环 之前用View Pager做了一个图片切换的推荐栏(就类似与淘宝、头条客户端顶端的推荐信息栏),利用View Pager很快就能实现,但是一次无意间使用淘宝APP的时候,突然发现它的效果和我做的还不一样,淘宝APP的推荐栏可以左右无限循环切换,而ViewPager自身其实并没有支持这个功能。其实实现这个无限循环不难,只需要在数据源的首尾各添加一张多余的

2017-08-20 15:49:23 273

原创 spring+springmvc+myabtis+bootstrap 填补天坑(4)-mybatis注入失败

spring+springmvc+myabtis+bootstrap 填补天坑(4)-mybatis注入失败 新人上路,这里我用的idea maven写的项目,在加入mybatis的数据库操作时,遇到一个问题,   在Service里面注入dao的对象的时候,提示注入失败,找不到bean的对象问题。 @Resource private accountDao accountDa

2017-07-13 15:57:38 448

原创 spring+springmvc+myabtis+bootstrap 填补天坑(3)-EL失效

spring+springmvc+myabtis+bootstrap 填补天坑(3)-EL失效在Spring Controller 与jsp传值得时候遇到的问题,用<%=request.getParameter("account")%>是可以获得controller传来的account值得,而用EL表达式${account},界面显示总是为空,咋回事呢?其实问题很简单,只是jsp中默认是禁止用EL

2017-07-10 14:12:30 255

原创 spring+springmvc+myabtis+bootstrap 填补天坑(2)-注入问题

spring+springmvc+myabtis+bootstrap 填补天坑(2)-注入问题接上一篇静态加载问题之后,又一个天坑,虽说是天坑,其实就是一些初学者在开发时会遇到的一些小问题,有时代码看无数遍都觉得没错,但是就是运行结果不是预期的,这就很蛋疼了。下面是Spring的配置文件和一个controller的.java文件。UserController.java位于com

2017-07-07 14:09:19 315

原创 spring+springmvc+myabtis+bootstrap 填补天坑(1)-静态资源加载问题

最近想做一个管理系统,想着用ssm+bootstrap来写,用idea 15工具在撸代码,之前一直也怎么用过idea,这次就想着多熟悉熟悉,毕竟听说idea还是很牛逼的哈!多的就不说了,从新建项目到现在的一个坑问题。静态资源加载问题。如下:一个简单的jsp文件,将道理,预期的结果界面应该是如下图。坑爹的是,加入了Spring的拦截器,配置了Spring相关东西之后,界面打开

2017-07-07 13:44:28 1003

原创 Maven创建web项目学习,web和Java版本的修改

在最新的eclipse里面已经有maven插件,可以直接使用创建maven项目,如果没有请安装相关的maven插件

2017-03-13 18:36:56 820

原创 WebService-JAX-WS学习案例

WebService-JAX-WS学习案例服务端项目

2017-03-10 15:11:35 326

原创 RMI学习案例

RMI学习记录本人初学RMI,参照网上的实例教程实现了一个实例,在此记录一下

2017-03-10 14:36:20 271

空空如也

空空如也

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

TA关注的人

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