- 博客(54)
- 问答 (1)
- 收藏
- 关注
原创 Python中包(package)与模块(module)的概念 以及 import 问题
一个包可以有多个模块(Python源文件), 即包所在目录下可以有多个Python源文件, 每个Python源文件都是一个Python模块。
2024-06-08 22:13:38
679
5
原创 一个神奇的网站(快快乐乐写时序图)
一个神奇的网站一个神奇的网站:https://www.websequencediagrams.com/代码即效果如下:
2016-03-22 18:09:45
720
原创 Java单例模式的七种不同写法
JAVA单聊模式的不同写法一. 饿汉/** * 饿汉 */public class Singleton1 { private static final Singleton1 INSTANCE = new Singleton1(); private Singleton1() { } public static Singleton1 getIns
2016-03-22 16:25:02
680
转载 软件人员推荐书目(都是国外经典书籍!!!)
软件人员推荐书目(一) 大师篇 一、 科学哲学和管理哲学 【1】 "程序开发心理学"(The Psychology of Computer Programming : Silver Anniversary Edition) 【2】 "系统化思维导论"(An Introduction to Systems Thinking, Silver Anniversary Edition)
2016-03-10 08:35:43
1658
1
原创 关于 "java中常量定义在interface中好还是定义在class中好" 的一些思考
java中interface中定义变量都是"public static final" 类型的, 也就是常量, 因此很多人在interface定义常用的常量(这也是本人偏爱的方式); 由此却引起了不少风波, 网上关于此问题的讨论也非常多, 下面说说我的个人意见: 下面是功能等同的两种定义常量的方式: package com.example;public final cla
2015-12-30 16:53:53
25481
10
转载 git revert和git reset的区别
git revert和git reset的区别git revert 是撤销某次操作,此次操作之前的commit都会被保留git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区具体一个例子,假设有三个commit, git st:commit3: add test3.ccommit2: add test2.ccommit1: add test
2015-12-09 10:22:44
607
转载 Android开源项目分类汇总
阅读目录第一部分 个性化控件(View)第二部分 工具库第三部分 优秀项目第四部分 开发工具及测试工具第五部分第一部分 个性化控件(View)主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、 GridView、ImageView、ProgressBar、TextView、Scrol
2015-12-03 09:58:03
691
转载 Android Matrix
Android MatrixMatrix的数学原理平移变换旋转变换缩放变换错切变换对称变换代码验证 Matrix的数学原理在Android中,如果你用Matrix进行过图像处理,那么一定知道Matrix这个类。Android中的Matrix是一个3 x 3的矩阵,其内容如下: Matri
2015-11-23 20:29:50
470
原创 Android Matrix相关操作总结
一. 在Android中, Matrix是一个3x3的矩阵, 有4类基本操作二. 矩阵如图: 关于matrix操作的原理, 这篇文章讲得不错 => 穿越时空三. 四种基本操作1. Translate -> 平移变换2. Scale ->放缩变换3.Rotate -> 旋转变换4. Skew
2015-11-23 19:02:32
561
转载 Android中的矩阵转换 (Matrix转换)
Android中的Matrix转换上面讲到,Matrix由3*3矩阵中9个值来决定。而我们对Matrix的所有设置,也是对这9个值的各种不同的改变,来达到我们想要的效果。下面是Matrix3*3的矩阵结构{MSCALE_X,MSKEW_X,MTRANS_X,MSKEW_Y,MSCALE_Y,MTRANS_Y,MPERSP_0,MPERSP_1,MPERSP_2}
2015-11-20 18:00:02
2353
原创 com.android.dex.DexException: Multiple dex files define的解决办法 (Android Studio)
com.android.dex.DexException: Multiple dex files define的解决办法com.android.dex.DexException: Multiple dex files define编译问题产生的原因, 几个library引用了"同一个"jar包, 这个"同一个" 为什么要加上引号呢, 其实这个jar包就名称和功能来说是完全一样的比如
2015-11-19 18:48:11
8966
2
原创 Proguard混淆Android项目所遇问题及总结
Proguard混淆Android项目所遇问题及总结最近一个老项目需要添加混淆, 因此又对混淆有了更深入的了解. 在此过程中遇到了一下问题, 记录如下: 1. 编译打包错误a. 类重复, 错误信息如下:xyz:compileReleaseNdk UP-TO-DATE:xyz:compileReleaseSources:xyz:proguardReleaseNot
2015-11-19 17:39:44
16169
转载 Android 混淆机制
转自: http://blog.csdn.net/jjwwmlp456/article/details/44977721语法规范说明地址:https://stuff.mit.edu/afs/sipb/project/android/sdk/android-sdk-linux/tools/proguard/docs/index.html#manual/usage.html
2015-11-15 12:41:06
924
原创 BubbleView源码解析
BubbleView源码解析做IM应用时, 聊天界面的消息一般都有一个背景, 我们叫它为"气泡", 一般这个气泡都使用9patch图片, 当是还有一种方法就是 "自定义View". 这类气泡view, 网上有一大堆, 下面就来看看github上的一个开源项目吧BubbleView地址: https://github.com/lguipeng/BubbleView
2015-11-12 13:43:07
2452
转载 几种类间关系:继承、实现、依赖、关联、聚合、组合及UML实现图
几种类间关系:继承、实现、依赖、关联、聚合、组合及UML实现图继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间 最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;实现指的是一个class类实现interface接口(可以是多个)
2015-11-10 18:36:37
502
原创 自定义可拖拽View(工具类ViewDragHelper的用法)
android提供了GestureDetector这个类用于常用手势识别, 如单击、双击、滑动等; 对于拖拽手势的分析识别并不理性,因此support-v4包提供了一个工具类ViewDragHelper, 使用此工具类可以轻松实现可拖拽View(准确的说应该是尺寸拖拽的View容器), 闲话少说, 请看代码: DragContainerLayout.java/
2015-11-04 18:14:19
1701
转载 Android BitmapShader 实战 实现圆形、圆角图片
1、概述记得初学那会写过一篇博客Android 完美实现图片圆角和圆形(对实现进行分析),主要是个自定View加上使用Xfermode实现的。其实实现圆角图片的方法应该很多,常见的就是利用Xfermode,Shader。本篇博客会直接继承直接继承ImageView,使用BitmapShader实现圆角的绘制,大家如果耐着性子看完,我估计什么形状都能绘制出来。2、效果图
2015-11-03 14:27:55
510
转载 如何搭建个人博客
如何搭建个人博客1. 购买VPSvps是什么,大家可以百度百科,我这里就不解释了,简单的说,就是一台服务器。vps有很多提供商,国外的一大把,价格也参差不齐,当然,服务也参差不齐,大一点的,亚马逊啦,linode啦,还有一些其他的,大家网上找一找,找个价格和速度合适的,国内嘛,现在做得还不错的有阿里云,就速度上来说,国内的阿里云怎么都比国外的要快,只是备案比较麻烦,你懂
2015-09-20 09:14:20
734
1
原创 [Gradle] 执行gradlew命令时抛异常 (java.lang.NoClassDefFoundError: org/apache/commons/cli/CommandLineParser)
gradle最近发布了2.6, 所以想把android studio中的gradle改成2.6由于我是使用命令gradlew的, 所以把gradle/wrapper/gradle-wrapper.properties文件关于gradle的url更新了, 如下#Wed Sep 09 16:16:48 CST 2015distributionBase=GRADLE_USER_HOMEd
2015-09-09 16:41:05
5810
原创 怎么获取键盘的高度
最近做项目的时候要使用emoj表情, emoj标签的输入块要和软键盘的高度一致, 于是有了获取软键盘高度的需求, 废话少说, 下面是我写的一个获取键盘高度的工具类:public class KeyboardHeightUtils { /** * 初始化键盘高度 (键盘弹出时才有效; 首次进入Activity时, 计算的高度newKeyboardHei
2015-08-26 16:38:58
953
原创 怎么判断软键盘是否显示
有人说用InputMethodManager的isActive()来判断软键盘是否可见, 经测试发现此方法总是返回true要判断软键盘是否可见, 下面是一种解决方法, 在Activity中可以使用如下代码判断软键盘是显示还是隐藏View view = getWindow().peekDecorView();if (view != null) { //软件盘处于显示状态
2015-08-26 16:16:48
2848
原创 监听Back键, onBackPressed()和onkeyDown()都无效
Android中软键盘弹出时, 点击Back键, onBackPressed()和onkeyDown()方法都没有执行, 下面是一种解决方法: 在Activity中重写dispatchKeyEvent()方法@Overridepublic boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode()
2015-08-26 15:54:57
3446
转载 Using Genymotion with Charles Proxy
Using Genymotion With Charles ProxyPosted on January 22, 2014In your Genymotion Android emulator…Settings -> Wifi -> Press and hold your active networkSelect “Modify Network”Select “Show Adv
2015-08-14 18:15:54
1374
转载 快速掌握 Android Studio 中 Gradle 的使用方法
快速掌握 Android Studio 中 Gradle 的使用方法快速掌握 Android Studio 中 Gradle 的使用方法Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build工具。Gradle脚本是基于一种JVM语言 -- Groovy,再加上DSL(领域特定语言)组
2015-08-10 22:10:19
542
原创 java中两个空字符串相加, 等于什么? (我说的空字符串是指null)
java代码如下:String a = null;String b = null;String c = a + b;System.out.println(c);猜猜输出什么??你以为这里会抛空指针异常吗? 你以为连个null相加还是null吗? 好吧, 我错了, 输出的居然是nullnull !!!!纳尼, 这是无中生有?! 这是1+1=3吗?! 瞬
2015-08-03 18:53:18
3613
1
转载 抓包工具Charles (移动开发必备工具, 网络api调试的神器)
移动开发必备抓包工具: Charles今天就来看一下Mac上如何进行抓包,之前有一篇文章介绍了使用Fidder进行抓包http://blog.csdn.net/jiangwei0910410003/article/details/19806999不过可惜的是,Fidder使用C#开发的,所以就不能在Mac上使用了,不过还有另外一个抓包神器,就是Charl
2015-07-30 17:29:13
1000
原创 正则表达式中的逻辑运算符或(怎么用逻辑运算符或连接两个正则表达式)
今天使用正则表达式是遇到一个问题, 磨了半天, 发现犯了个低级错误, 因此记录下来加深印象问题描述: 我需要把 ^drawable(-[a-zA-Z0-9]+)*$ 和 ^mipmap(-[a-zA-Z0-9]+)*$ 这两个正则表达式用或的关系连接起来我尝试了一下方法都未成功!!Pattern.compile("^drawable(-[a-zA-Z0-9]+)*$ |
2015-07-20 11:07:00
30106
1
原创 关于AndroidStudio引用外部库时的问题(gradle构建机理)
今天看到一个检测内存泄漏的工具LeakCanary(关于LeakCanary的用法有中文介绍), 于是想写个demo试试.结果, 遇到了一个问题LeakCanary类找不到. 我下载了一个Demo, 我的配置文件和这个Demo一模一样!!我无论我怎么同步build.gradle文件, 都没有效果.我的module下的build.gradle配置文件的片段如下:
2015-07-17 15:12:17
3101
原创 使用ToolBar遇到的问题
1. 启动app就崩溃, 错误信息: AppCompat does not support the current theme features2. 启动app就崩溃, 错误信息: A TaskDescription's primary color should be opaque3. ActionBarActivity一过时
2015-07-13 16:49:51
943
转载 解决Android Studio在MacbookPro 13下卡顿的问题
解决Android Studio在MacbookPro 13下卡顿的问题问题描述目前我正在使用MacbookPro13寸2015年中配开发应用,发现Android Studio使用时出奇的卡顿,具体表现在输入的时候经常会假死3到4秒钟,特别是编辑layout的时候,简直是没法用了。按理说,8G内存,i5处理器不应该出现这样的情况,所以我上网搜了一下,有的提到内存至少要1
2015-07-03 15:07:19
1551
原创 Linux下的快捷技巧大全(ubuntu)
Linux下的快捷命令大全查看linux是32位还是64位“file /sbin/init” 或者 “file /bin/ls” getconf LONG_BIT” 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。更新中。。
2015-06-14 09:56:56
435
转载 Java NIO、NIO.2学习笔记
Java NIO、NIO.2学习笔记目录1. NIO、NIO.2简介2. NIO中的关键技术1. NIO、NIO.2简介Java中的输入流、输出流都是阻塞式的输入、输出。不仅如此,传统的输入流、输出流都是通过字节的移动来处理的(即使是字符流,在底层也是通过字节流来进行处理的),也就是说,面向流的输入/输出系统一次只能处理一个字节,因此面向流的输入/输出系统通常效率不高。
2015-05-21 17:42:09
713
原创 Java开发中的乱码解决
Java开发中经常遇到乱码问题, 下面是乱码解决中的比较简单的一种(乱码问题一般是由于编码和解码所用的编码格式不一致而导致的)大码如下: //client端String codeFmt;String sysVersion = System.getProperty("java.version");double sVersion = Double.valueOf(sysVer
2015-05-19 10:22:37
581
转载 Java中的Enum的使用与分析
Java中的Enum的使用与分析示例:public enum EnumTest { FRANK("The given name of me"), LIU("The family name of me"); private String context; private String getContext(){
2015-05-18 16:44:12
486
原创 使用HttpURLConnection的getContentLength()方法返回-1??
今天使用HttpURLConnection类的getContentLength()方法时得到-1, 这是为什么呢??是这样的, 用HttpURLConnection的getContentLength获取传输数据的字节数时, 必须与服务器端协商, 即服务器端必须设置过"content-length"头: HttpURLConnection.getContentLength()方法对应于服务端
2015-05-18 14:21:30
9743
2
转载 TCPdump抓包工具命令
TCPdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。 tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正
2015-05-15 18:20:12
559
原创 Android中 view的双缓冲技术
view实现双缓冲技术当要绘制的数据量比较大,绘图时间比较长时,重复绘图会出现闪烁现象,引起闪烁现象的主要原因是视觉反差比较大。使用双缓冲技术可以解决这个问题,Surfaceview默认是使用双缓冲技术的。在Android上实现双缓冲技术的步骤是:创建一个屏幕大小(实际绘图区域)的缓冲区(Bitmap),创建一个画布(Canvas),然后设置画布的bitma
2015-05-15 17:30:35
2508
原创 Android TypedValue.applyDimension()的用法
这个方法的作用是 把Android系统中的非标准度量尺寸转变为标准度量尺寸 (Android系统中的标准尺寸是px, 即像素)Android系统中的尺寸单位有: 标准单位: px (px是安卓系统内部使用的单位, dp是与设备无关的尺寸单位 )非标准单位: dp, in, mm, pt, spTypedValue.applyDimension()方法的功能就是把非标
2015-05-15 15:53:04
16720
2
原创 Android 点击通知栏中的通知启动应用
今天再做项目中遇到一个问题: "点击通知时, 应用不能启动", 源码如下: Context application = getApplicationContext();Intent resultIntent = new Intent(application, MainActivity.class);resultIntent.setFlags(Intent.FLAG_ACTIVITY
2015-05-15 11:18:56
7043
1
转载 Java位运算在程序设计中的使用:位掩码(BitMask)
在Java中,位运算符有很多,例如与(&)、非(~)、或(|)、异或(^)、移位(>)等。这些运算符在日常编码中很少会用到。在下面的一个例子中,会用到位掩码(BitMask),其中包含大量的位运算。不只是在Java中,其他编写语言中也是可以使用的。例如,在一个系统中,用户一般有查询(Select)、新增(Insert)、修改(Update)、删除(Selete)四种权限,四种权
2015-05-14 11:39:33
514
空空如也
求解释下列md5算法中的相关代码
2016-04-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人