自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

转载 Java动态代理:JDK 和CGLIB、Javassist、ASM之间的差别 (详细)

背景原文(点此跳转)格式不方便阅读,故重新编辑搬运此博客class文件简介及加载Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:class字节码文件是根据JVM虚拟机规范中规定的字节码组织规则生成的、具体class文件是怎样组织类信息的,可以参考 此博文:深入理解Java Clas

2020-08-18 12:04:01 876

原创 解决最大子数组之和的两种方法

背景自己码了一遍这个算法,然后网上找了下题目分析。发现了更好的解法:解决最大子数组之和的三种方法,在此记录一篇简述心得。题目求一个整数数组中[和最大]的连续子数组拿到题目自己理解的有误,一直在想怎么一边计算和一边记录 start&end 索引。其是题目没有这个要求。解法一,思路如下:1. 因为最大子数组 startIndex 和 endIndex 不确定,所以肯定需要f...

2020-03-16 13:15:07 226

原创 golang语言强制类型转换

前言golang是强类型语言,有强制类型转换,但是不同于Java语言所使用的强制类型转换。golang强制类型转换golang语言中分为类型转换(type conversion)、类型断言(type assertion)和指针类型转换。golang的类型断言

2020-02-09 20:08:47 8495 1

原创 详细解读:工厂模式、简单工厂模式、工厂方法模式、抽象工厂模式

工厂模式说了好多年,学了好多年,也忘了好多年。每次学的时候知道是怎么回事,好像明白了,工作中用的不多,过段时间又忘了。这次又学了一遍,为了延长忘记的时间(不敢说为了不忘),在此记录一篇博客。学习历程由于前一段看到https://www.runoob.com上面有好多前端和各种语言的基础知识,并且已目录的形式展开,方便查询,这次搜索工厂模式时,看到了https://www.runo...

2019-07-04 16:57:01 220

原创 【补充】关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析

背景凯子哥原博客讲解了同一张 jpg 图片放在不同的 drawable 目录下,在1080p的锤子T1手机上内存占用情况。我有一个疑问是为什么在不同的 drawable 目录下,同一张图片加载进内存,为什么会有宽高尺寸的变化。...

2019-07-02 17:11:50 980 2

原创 记一个疑难bug的解决过程

前言 测试给提了一个bug,但是具体解决的时候突然发现找不到问题发生的原因,一下子没有了头绪,后来一步步的按猜测的方向把问题解决了,并找到了问题原因(注意是先解决的问题,后来才找到问题的原因)。在此记录一下,供自己和同样遇到疑难问题的同学参考。此文章主要用于开拓思路,其他不同的问题需要具体分析。需求背景先效果看图效果图A 效果图B 需求描述:

2018-01-23 17:47:15 720

原创 git 中文乱码问题解决方案

问题场景:在工程中添加了一个中文文档,git status 时显示乱码 new file: "doc/\347\254\254\344\270\211\346\226\271\350\264\246\345\217\267\347\233\270\345\205\263.md" 解决办法: git config --global core.quotepath false 参考文献:点击查看

2016-12-20 15:43:52 1458

转载 Android 软键盘弹出时布局内指定内容上移实现及问题解决

Android SDK目前提供的软键盘弹出模式接口只有两种:一是弹出时自动回冲界面,将所有元素上顶,一种则是不重绘界面,直接将控件元素遮住,没有其他模式,如果想实现其他效果,光使用系统接口是不行的。解决方法:第一步:给想要被顶上去的内容嵌套一个 ScrollView :<ScrollView android:layout_width="match_parent" androi

2016-09-07 23:31:30 2454

原创 XCode 快捷键

常用快捷键删除一行: 删除光标后面一行: control + k删除光标前面一行:command + delete修改文件名:打答复

2016-08-05 22:19:55 434

原创 解决QQ分享没有收到【成功回调】的问题

写在前面的话:一个做了两遍的QQ分享,再次做的时候,直接边拷贝边修改,运行后发现没问题。但是:分享成功却收不到成功的回调。解决办法:首先请点击这里,一个字一个字的对照着看看自己那里跟文档写的不一样,重点看一下自己清单文件的那个schema,是不是按照tencent[appId]的格式写的。展开讲讲开发步骤 只要按照官方文档一点点的写,还真得都没有问题,出问题了,大都是自己大眼一看,木有问题啊,这

2016-07-11 16:12:56 11345

原创 微信支付SDK的使用

在此记录一下微信支付sdk的使用 使用微信支付SDK理所应该去看官方文档,按步骤一步步来就好了,怎么还需要写博客呢? 答案是因为使用支付SDK时,遇到了很多弱智的坑,希望后来人不要和我一样SB就好。 首先还是需要按照官方文档一步步的查看一遍流程。支付流程文档查看这里流程文档,那个是叫时序图吧……坑在步骤3,正常流程是调起微信的所有参数都由服务端生成,但是这个生成规则还是需要注意

2016-06-26 19:15:54 5638 1

原创 记录AS工程R文件,RecyclerView等第三方库不识别的问题

只是记录一下问题问题描述:是把 app module 的代码,拷贝到 dependence module 中,build一下,工程都报错,各种依赖的库都不识别了。 PS:app 和 dependence 都是我自己建立的module问题解决:原因有两个, 1. 一个是两个module 的R文件不同,需要把涉及到的R文件包名改为当前module的包名。 2. 第二是,拷贝过来的类中,引用到的dr

2016-06-20 15:18:10 1300

原创 Android Studio 进行单元测试完整教程

前言 为了这个AndroidStudio的单元测试,从下午搞到晚上才搞明白咋操作。 我学一个新知识总是那么坎坷,经历无数的错误路径,才可能找到正确的路在哪儿。 我的AndroidStudio我的AndroidStudio是1.5.1版本,但是进行单元测试应该很早的版本就可以了,至少可以追溯到1.0注意事项当你google查找AndroidStudio单元测试时,有大量的资料教程,

2016-03-22 10:45:02 48738 9

转载 mac下android-ndk-r10e-darwin-x86_64.bin解压

第一步:更改对应文件的读写权限。更改这个权限点主要目的就是为了第二步可以执行,所以使用了chmod a+x android-ndk-r10e-darwin-x86_64.bin 这个更改文件读写课执行权限的命令,其实这里你检查下你的文件是否有可执行的权限就行,如果有其实这一步可以跳过。第二步:执行对应的文件在linux里面执行文件的方式是./所以这里对应的命令应该是:./android-ndk

2016-03-18 11:46:50 4594

原创 can't rename root module

项目名称修改了,想修改Android Studio 中 project的名字 邮件project 的名字,refactor - rename ,填写好新名字后修改,被提示 “can’t rename root module”解决办法: 1. 关闭Android Studio 2. 修改project所在路径的文件夹名字 3. 打开Android Stuido,import新的路径工程

2016-02-19 15:48:04 17670 1

原创 Usage of forceLayout(), requestLayout() and invalidate()

摘自stackoverflow To better understand answers provided by François BOURLIEUX and Dalvik I suggest you take a look at this awesome view lifecycle diagram by Arpit Mathur: 原文

2016-02-18 11:06:15 588

原创 Get notification texts colors and background

通知栏颜色的获取* 主要内容 Maybe you’ll find solution in these posts? - Custom notification layouts and text colors - How to match text color with notification color bar?原文

2016-02-17 16:44:44 437

转载 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I

2016-02-05 18:15:41 392

原创 Error:Cause: org/gradle/api/publication/maven/internal/DefaultMavenFactory Android

方法一当你使用的Gradle版本是2.4以上,Android插件版本是1.3.0以上的时候就会出现这个问题,这时候你只需将android-maven-gradle-plugin插件版本改为classpath ‘com.github.dcendents:android-maven-gradle-plugin:1.3’即可我则是把该引用库的build.gradle 中的apply plugin: ‘

2016-02-05 18:14:58 1186

原创 Android Stuido 问题汇总

buildTypes cannot be applied to groovy.lang.ClosureIn Android Studio select: File\Settings\Build, Execution, Deployment\Build tools\GradleMark: Use default gradle wrapper (default)原网页2.

2016-01-14 22:37:13 525

原创 Mac 修改环境变量

方法一创建并以 TextEdit 的方式打开 ~/.bash_profile 文件 touch ~/.bash_profile; open -t ~/.bash_profile新增环境变量 export PATH=”HOME/.rbenv/bin:HOME/.rbenv/bin:PATH”让以上所做的配置生效 source ~/.bash_profile查看是否生效(有时可能需要关闭

2016-01-06 15:25:40 771

原创 禁止 Gradle 检查png的合法性

问题:有时从网上下载的Demo资源文件不规范,会出现直接将jpg文件改为png后缀名的情况,gradle打包检查时报错编译通不过的。方法: 在app/build.gradle文件的buildTypes{release{}}节点下增加一行配置:aaptOptions.setProperty(“cruncherEnabled”,false)例如:buildTypes { relea

2015-12-31 07:43:55 9172

原创 ListView的getFirstVisiblePosition等方法返回的是哪个对象

int firstPosition = lisView.getFirstVisiblePosition();int lastPosition = lisView.getLastVisiblePosition();int childCount = lisView.getChildCount();以上三行代码是listView的三个方法我一直疑惑这三个方法的返回值的含义是什么,和Adapter的关系

2015-12-16 13:28:01 13174

转载 JDK1.5,Switch中使用Enum

过往,根据switch的规定,其中可以使用的变量有四种:int,byte,short,char。1.5的新特性支持其中使用Enum作为变量。下面是如何在switch中使用enum。如何在Switch中使用Enum当在swtich中使用enum,几乎是很自然的假设他们将被象传统的switch一样被使用。但是,不幸的是,为了适应enums,java不得不加强它的说明文档。enum不同于

2015-12-15 12:14:02 1435

原创 dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent

onInterceptTouchEvent()是ViewGroup的一个方法,目的是在系统向该ViewGroup及其各个childView触发onTouchEvent()之前对相关事件进行一次拦截.down事件首先会传递到onInterceptTouchEvent()方法如果该ViewGroup的onInterceptTouchEvent()在接收到down事件处理完成之后return f

2015-12-08 10:36:18 489

原创 java.lang.ArrayIndexOutOfBoundsException: length=13; index=14 android.widget.AbsListView$RecycleBin.

crash的异常: java.lang.ArrayIndexOutOfBoundsException: length=13; index=14 android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:6909)问题原因: ListView 的 ViewTypeCount 小于最大的 ViewTypeId 导致的。问题

2015-10-30 11:29:56 2495

原创 关于ConvertView错乱的问题

下午遇到一个很奇怪的问题,修改了ListView中的一个item对象的类型,执行notifyDatasetChange方法后,getView 传过来的convertView类型不对!导致View绘制时调用对象数据错误!!!现象是这样的:在单个card中执行updateCardView方法时,更新对象类型,直接notifyDataSetChange方法,没有任何问题。 但是改为下面的写法就不行了ne

2015-10-21 19:53:15 2059

转载 解决Android Studio 的 Alt 快捷键和Mac自带的Alt转换功能冲突

Mac上的辅助键有4个:control, option(alt), command, shift,比windows上多一个。(注意windows上的ctrl键的大部分功能,在苹果上是command)在Idea中,发现很多option键+字母组合的快捷键不能用。比如我想像vim那样,用option加上hjkl来移动光标,但按option+j的时候居然没反应。使用其它的键又怕跟别人冲突,因为现在工作中经

2015-10-20 11:37:25 4022

原创 Android Studio 修改注释模板中的${USER}变量

方法一: 增加系统用户方法二: 设置idea 1、file 》 settings》File and Code Templates 2、中间的,选择 includes ,选中File Header。 3、右侧会出现 Created by USERon{USER} on {DATE}. 4、把这个 USER直接替换掉Createdbymynameon{USER} 直接替换掉 Create

2015-09-19 00:11:02 17430

原创 导入Android Studio 项目报 invalid gradle jdk configuration found

从git.oschina.com上clone下来代码后,直接Android Studio open,而不是用import的方式,Android Studio 不识别,因为缺少.iml配置文件。这时不要慌,用import的方法再次打开项目工程。 选择如下: 选择刚才clone下来的工程导入后,所有的文件都能看到了。目录结构也都在了,只是Android Studio 下面的错误信息栏会有错误信息提示

2015-09-17 14:41:43 46930 1

原创 android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams

遇到此问题已经是ListView添加header时出现了问题。创建Header的View时,用下面的方法View header = View.inflate(this, R.layout.header_layout, null);should fix it.Edit: As mentioned in the comments, changing the ViewGroup Parameter of

2015-09-14 17:21:25 2933

转载 android include merge标签

include和merge标记的作用主要是为了解决layout的重用问题。比如我们有三四个Activity但是他们都要用到同一个样式的标题栏,虽然我们把一样的代码copy个三四遍也没关系,但实在是太丑了,而且效率太低,如果这个标题栏要改样式,你岂不是要去三四个地方分别改动。为了解决这个问题,android中有了include和merge标记以下为标题栏的layout文件titlebar.xml 我

2015-09-08 18:10:17 430

转载 getDimension,getDimensionPixelOffset和getDimensionPixelSize的一点说明

getDimension和getDimensionPixelOffset的功能类似, 都是获取某个dimen的值,但是如果单位是dp或sp,则需要将其乘以density 如果是px,则不乘。并且getDimension返回float,getDimensionPixelOffset返回int. 而getDimensionPixelSize则不管写的是dp还是sp还是px,都会乘以denstiy.

2015-09-02 09:42:45 517

原创 导入Github上Android studio 项目

导入Github上的AndroidStudio项目有时会出现Build很久都没有成功的情况,此时职能强制退出AndroidStudio,下面说一下导入的步骤:1. local.properties在导入的时候就会被修改为本级的SDK地址2. 根目录:setting.gradle 不用修改,里面是声明include 几个module,打开build.gradle 如果没有特殊配置内容,也可以不修

2015-08-28 18:27:46 682 1

原创 解决Gradle DSL method not found: ‘android()’

解决Gradle DSL method not found: ‘android()’最近导入as的项目出了这样的问题 这个问题困扰了我很长时间,好吧,搜了半天全都是runProguard的,最后在stackoverflow上搜到解决办法了: http://stackoverflow.com/questions/27735646/android-studio-gradle-dsl-method-n

2015-08-25 16:15:47 908

原创 Android ViewGroup 中 mFocused 字段引起的问题

有时一个View莫名其妙的接收到了返回键的点击事件,怎么排查呢?请看正文实例分析。

2015-08-19 17:19:16 648

移动App性能评测与优化

移动App性能评测与优化,针对项目扩张后的性能评测和性能瓶颈检测

2017-10-30

空空如也

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

TA关注的人

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