- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 一些编程经验的总结
类 TAG 的分析,推荐 TAG = “XXXActivity”字符串的形式,避免使用 TAG = XXXActivity.class.getSimpleName()的形式,有如下几个优点:代码简洁,在后期项目大了之后,对于代码减包很可观(字节码层面比较)内存方面,static final TAG = “XXXActivity”会直接进入常量池,不会占用堆内存。效率方面,TAG = XXXActi...
2018-07-11 15:53:33
1309
原创 checkstyle + gradle + git pre-commit 实现代码提交前对代码规范的检查
我们的目的是想在代码commit之前去做这个检查,把不符合规范的代码标记出来,直到修改完成之后才允许提交。脚本涉及到几个重要的文件:1.pre-commit, 这个是git的一个hook文件,可以帮助我们在commit前去做一些事情,比如,调用我们第二步定义的checkstyle。2.checkstyle.gradle,这里面主要包含gradle的一个task,通过依赖checkstyle插件,然...
2018-07-11 15:53:08
4258
1
原创 OPPO手机ColorOS3.0 Push通知新特性
OPPO R9采用了ColorOS3.0作为手机系统,为了给用户一个良好的体验,不让各种垃圾消息的推送影响视觉,在ColorOS3.0上默认都屏蔽了第三方应用的通知栏权限,如果应用需要在通知栏展示Push通知的话还需要用户自己手动开启该应用的通知栏权限。同时,为防止奇形怪状的Push通知带来视觉不统一,ColorOS3.0会对不规范的Push通知进行拦截,导致第三方应用推送的Push显示不出来。下
2018-02-07 19:08:29
5266
原创 相册拼图组件
为了满足产品的各种拼图需求,所以我们希望在尽可能小的改动下灵活调整布局以适应各种拼图方案。这里,我提供了一个通用的拼图组件给大家参考,下面是详细的介绍和实现方案。一、先来看下拼图组件到底长什么样子。 上面只是给出了两种不同的拼图方案,其实这里的方案可以有无限多种,因为排列组合的方式实在太多了,随便你怎么画,都可以是一种布局。那么问题来了,设计同学每给一
2018-02-07 18:55:26
889
原创 Android无障碍总结
说起Android无障碍,也许很多同学没听说过,那这里我就来扫盲一下。许多Android用户有不同的能力(限制),这要求他们以不同的方式使用他们的Android设备。这些限制包括视力,肢体或与年龄有关,这些限制阻碍了他们看到或充分使用触摸屏,而用户的听力丧失,让他们可能无法感知声音信息和警报。Android提供了辅助功能的特性和服务帮助这些用户更容易的使用他们的设备,这些功能包括语音合成、触觉反馈
2018-02-06 20:13:40
13592
4
原创 人脸识别动画实现详解(SurfaceView + ObjectAnimator + 三角函数 = 炫酷动画)
前言开门见山,先来看下效果吧。看到这么酷炫的效果图,不得不赞叹一下我们的设计师。然而,站在程序员的角度上看,除了酷炫之外更多的是复杂。但是,上面我们所看到的还只是最简单的一种形态而已。更加复杂的情况是当存在多个人脸的时候进行主次脸动画的切换,摄像头移动的时候动画的追踪,多个动画的之间的时序控制等问题,总之,UI展示加上各种业务逻辑使得这个动画变得异常复杂。今天我们要讲解的是剔除业务逻辑
2018-02-06 20:05:37
3939
1
转载 RSA解密时javax.crypto.BadPaddingException: Data must start with zero
RSA解密时javax.crypto.BadPaddingException: Data must start with zero
2015-11-17 19:43:43
10806
1
原创 java Socket 传输对象的时候程序没反应了。
出现这个的原因就是输入输出流的构造顺序弄反了。原因就这么简单。亲自摸索才知道。这取决于是客户端还是服务端,比如客户端先发一个信息给服务端然后服务端再回复客户端那么客户端的输入输出流顺序是这样的: os = new ObjectOutputStream(sock.getOutputStream()); //先输出 is = new Objec
2015-11-16 23:04:48
1201
原创 No active compatible AVD's or devices found. 解决方法
No active compatible AVD's or devices found. Relaunch this configuration after connecting a device or starting an AVD.
2015-10-28 12:23:22
6714
原创 面试算法
1、给一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么b是a的兄弟单词,比如的单词army和mary互为兄弟单词。解:a,将a-z对应成从2开始的26个素数,然后只需要比较两个单词的字母乘积是否相等即可。b,字典树的典型应用,一般情况下,字典树的结构都是采用26叉树进行组织的,每个节点对应一个字母,查找的时候,就是一个字母一个字母的进行匹配,算法的时间复杂度就是单词的
2015-09-30 16:26:19
426
原创 Android 面试题目
1.androiddvm的进程和Linux的进程,应用程序的进程是否为同一个概念:答:dvm是dalivk虚拟机。每一个android应用程序都在自己的进程中运行,都拥有一个dalivk虚拟机实例。而每一个dvm都是在linux的一个进程。所以说可以认为是同一个概念。2.android的动画有哪几种?他们的特点和区别是什么?答:两种,一种是tween动画,一种是frame动画。twee
2015-09-30 16:24:45
513
原创 http响应状态码大全
http响应状态码大全 http状态返回代码 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。http状态返回代码 代码 说明100 (继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。http状态返回代码 2xx(成功)
2015-09-30 16:23:05
455
原创 Android ListView 的优化
一、复用convertView,减少findViewById的次数1、优化一:复用convertViewAndroid系统本身为我们考虑了ListView的优化问题,在复写的Adapter的类中,比较重要的两个方法是getCount()和getView()。界面上有多少个条显示,就会调用多少次的getView()方法;因此如果在每次调用的时候,如果不进行优化,每次都会使用View.infl
2015-08-19 21:51:59
659
原创 Android获取各个应用程序的缓存文件代码小片段(使用AIDL)
import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.List;import android.app.Activity;import android.content.Intent;import android.content.
2015-08-19 21:34:21
969
转载 IntentService简介及其使用
IntentService是Service类的子类,用来处理异步请求。客户端可以通过startService(Intent)方法传递请求给IntentService。IntentService在onCreate()函数中通过HandlerThread单独开启一个线程来处理所有Intent请求对象(通过startService的方式发送过来的)所对应的任务,这样以免事务处理阻塞主线程。执行完所一个I
2015-07-24 18:25:02
463
原创 论HashMap、Hashtable、TreeMap、LinkedHashMap的内部排序
HashMap、Hashtable的存储顺序跟key 所对应的hashCode有关,但是有小规律,当key的值不超过16时,HashMap的存取是按照从小到大的顺序来存取的,当key的个数不超过11且key的值不超过11时,Hashtable的存取是按照从大到小的顺序来存取的。TreeMap 的顺序按照从小到大,LinkedHashMap的顺序有两种,一种是按插入顺序,一种是按访问顺序,取决于accessOrder是否为true。
2015-07-21 16:01:13
2273
原创 java 内存泄露小测试
package com.ckw.mianshi;/** * 测试内存泄露 * java中导致内存泄露的几个事件: * 1.HashMap,Verctor等容器中持有对象的引用,尽管对象已经置为null,但还是会发生内存泄露 * 2.监听器类的使用,没有显示置为null * 3.数据库连接类的close方法没有调用 * 4.单例模式中对另一个类的引用 * @author Admin
2015-07-19 16:02:14
546
转载 Activity Intent Flags及Task相关属性
原文地址我们来讲一下Activity的task相关内容。上次我们讲到Activity的四种启动模式的时候,已经了解到一些关于task的技术,今天我再向大家介绍一下。task是一个具有栈结构的容器,可以放置多个Activity实例。启动一个应用,系统就会为之创建一个task,来放置根Activity;默认情况下,一个Activity启动另一个Activity时,两个Activity是放置
2015-07-15 11:17:49
442
转载 Java线程池使用说明
java自带线程池和队列详细讲解原文链接:http://blog.csdn.net/sd0902/article/details/8395677Java线程池使用说明一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util
2015-07-12 23:20:14
366
转载 android Touch事件分发机制
原出处不详,先出处:点击打开链接Android Touch事件传递机制解析没事逛论坛,无意间看到了一篇非常不错的帖子,转载如下: 开篇语:最近程序在做一个小效果,要用到touch,结果整得云里面雾里的,干脆就好好把android touch机制好好看了一下,呵呵。。android系统中的每个ViewGroup的子类都具有下面三个和TouchEvent处理密切相关
2015-05-30 22:59:35
547
原创 android 模拟器创建的sdcard 没有mount
android 模拟器创建的sdcard 没有mount今天在练习的时候发现,sdcard虽然是存在了,但是没有mount,所以也就没有那些读写的权限,也就是说sdcard没有激活,相当于使用不了sdcard。网上找了会解决的办法,现在来总结一下,只要有几种方法。1.在Eclipse中鼠标移到项目上面,右键,run as ——>run configrations——>左边点击项
2015-05-04 20:42:15
8264
转载 六款值得推荐的android开源框架简介
1、volley 项目地址 https://github.com/smanikandan14/Volley-demo(1) JSON,图像等的异步下载;(2) 网络请求的排序(scheduling)(3) 网络请求的优先级处理(4) 缓存(5) 多级别取消请求(6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)2、androi
2015-05-04 12:36:56
459
转载 java中关键字volatile的作用
今天看了两篇关于volatile的文章,写的很好,跟大家分享一下。点击打开链接点击打开链接从jvm上和内存中来分析了volatile的工作原理,很好理解
2015-04-26 12:58:17
370
原创 Android 加载图片时的内存问题
1.因为在内存中分配给图片的堆栈只有8M,当图片过大的时候,会出现内存泄露,如何解决呢。BitmapFactory.Options options = new BitmapFactory.Options();options.inSampleSize = 3; //图片宽高都为原来的1/3,即图片大小为原来的1/4//以上代码可以优化内存溢出,但它只是改变图片的大小,即是图片的缩略图,并
2015-04-19 10:12:42
1051
2
转载 IP地址的正则表达式
原文地址:点击打开链接IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开。例如:某台计算机IP地址为10.11.44.100。分析IP地址的组成特点:250-255、200-249、0-199。 这三种情况可以分开考虑, 1. 250-255:特点:三位数,百位是2,十位是5,个位是0~5,用正则表达式
2015-04-11 18:35:07
434
转载 正则表达式详解
原文地址点击打开链接正则表达式(regular expression )就是用一个“ 字符串” 来描述一个特征,然后去验证另一个“ 字符串” 是否符合这个特征。比如 表达式“ab+” 描述的特征是“ 一个 'a' 和 任意个 'b' ” ,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。 正则表达式可以用来:(1 )验证字符串是否符合指定特征,比如验证
2015-04-11 18:25:32
366
转载 JAVA中正则表达式总结
原文地址点击打开链接许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能。所以JAVA语言也不例外。正则表达式已经超出了某种语言或某个系统的局限,成为被人们广为使用的工具,我们完全可以用它来解决实际开发中碰到的一些实际的问题。 在JDK1.3及之前的JDK
2015-04-11 17:33:46
469
原创 android项目点滴记录2
1.把本机地址广播出去private void sendIP() { try { DatagramSocket dgSocket = new DatagramSocket(8989);byte[] by = _ipString.getBytes();try {DatagramPacket packet = new DatagramPacket(by,by
2015-04-09 15:52:10
479
原创 Android项目记录点滴
服务器端:(根据Apache POI库函数其中SlideShow表示PPT文档,Slide表示某一张幻灯片)1.先把电脑中的PPT文件读入到一个字节数组中。(输入流-->字节数组-->输出流-->字节数组) FileInputStream inputStream = new FileInputStream(Path); ByteArrayOutputStream b
2015-03-23 19:53:58
541
原创 处理机调度的层次
1.高级调度:高级调度又称为长程调度或作业调度,它的调度对象是作业。其主要功能是根据某种算法,决定从外存中处于后备队列中的哪几个作业调入内存,为它们创建进程、分配必要的资源,并将它们放入就绪队列。高级调度主要用于多道批处理系统中,而在实时和分时系统中不设置高级调度。2.低级调度:低级调度又称为进程调度或短程调度,其所调度的对象是进程。其主要功能是,根据某种算法,决定就绪队列中哪个进程应获得处理
2014-10-31 22:53:40
3238
原创 EditText 空指针问题
今天在Android中碰到了这样一个问题,其实应该很少人会碰到,因为只有像我这种奇葩才会犯这种错误。但既然解决了,我就想在这里跟大家分享一下,毕竟它困扰了我一个白天啊。。。不多说了,看下面。。。其实问题很简单,就是Caused By : java.lang.NullPointerException.上面就是我在用EditText 的时候它给我提示的错误类型。为了简便
2014-09-06 18:18:28
1308
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人