自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 RecyclerView添加Header的正确方式

问题如何为RecyclerView添加Header如何让Header适配各种LayoutManager在有Header的情况下,我们的分割线该怎么画作为一个懒惰的程序员,如何将这些做到最简便如果为RecyclerView添加Header大家在使用ListView的时候可以很轻松的添加headers, 但是不知道大家发现没有,RecyclerView和各种LayoutManager都没有哪个方法是为...

2018-04-09 15:36:46 783

转载 RecyclerView 监听滚动到底部

据个人尝试 以下这种方案能准确监听到是否滚动到底部,可以做上拉加载更多protected boolean isSlideToBottom(RecyclerView recyclerView) { if (recyclerView == null) return false; if (recyclerView.computeVerticalScrollExtent() + r...

2018-04-09 11:35:56 2885 1

转载 【内存优化】内存溢出(OOM)和内存泄露的引发原因及优化方案

一、内存泄露垃圾回收器无法回收原本应该被回收的对象,这个对象就引发了内存泄露。内存泄露的危害: (1)过多的内存泄露最终会导致内存溢出(OOM)(2)内存泄露导致可用内存不足,会触发频繁GC,不管是Android2.2以前的单线程GC还是现在的CMS和G1,都有一部分的操作会导致用户线程停止(就是所谓的Stop the world),从而导致UI卡顿。二、内存溢出(OOM)Android为每个进程...

2018-04-03 12:29:05 2618

转载 【内存优化】用LeakCanary寻找App中的内存泄漏问题

简述在性能优化中,内存是一个不得不聊的话题;然而内存泄漏,显示已经成为内存优化的一个重量级的方向。当前流行的内存泄漏分析工具中,不得不提的就是LeakCanary框架;这是一个集成方便, 使用便捷,配置超级简单的框架,实现的功能却是极为强大的。1. 你需要添加到配置的只有这个dependencies {debugCompile 'com.squareup.leakcanary:leakcanary...

2018-04-03 12:23:59 541

转载 【内存优化】查看app(进程)的内存占用

1、官方有篇文章,详细的写了,可以通过哪些工具查看内存占用的情况https://developer.android.com/studio/profile/investigate-ram.html2、较常用的 adb 命令,adb shell dumpsys meminfo <packageName>Here is an older dumpsys on Dalvik of the gm...

2018-04-03 12:06:47 5676

转载 【内存优化】内存泄漏 之 MAT工具的使用

1 内存泄漏的排查方法 Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 :·    heap 查看堆的分配情况·    allocation tracker跟踪内存分配情况·    eclipse插件:http://download.eclipse.org/mat/1.5/update-site/DDMS 这两项功能有助于...

2018-04-03 11:08:15 725

转载 Fragment 生命周期图

2017-12-27 15:14:16 507

原创 Android 动图 WebP Gif 的 播放 和 暂停

先说明一下:目前 支持 webp 动图 的 三方图片库,只有Fresco,想控制 动图 播放 和 暂停 的 也只有 Fresco (声明:博主并不是 Fresco 的 铁粉,其他的三方库也都用过,只不过本文标题的功能 目前只有 Fresco 能简单实现)先看一下效果:Gradle添加引用:compile 'com.facebook.fresco:fresco:1.3.0'compile 'com

2017-07-17 17:52:53 7672

转载 【已解决】github中git push origin master出错:error: failed to push some refs to

【背景】折腾:【记录】将googlecode上面的crifanLib迁移到Github上期间出错:?123456789101112131415161718Administr

2017-06-02 14:39:32 5371 1

转载 Android 新一代编译 toolchain Jack & Jill 简介

2016 年 3 月 10 日, Google 向外界发布了 Android N 的预览版,并宣布了 Android N 的 Roadmap,Android N 的最终版源代码将于今年 8 或 9 月份释出到 AOSP 项目。在众多的 Android N 新特性中,有一项新工具链的出现与 Android 生态圈的所有开发者息息相关,即 Jack & Jill 编译器的引入。在依

2017-01-03 17:26:11 709 1

转载 Java 中 static 作用详解

static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,

2016-12-10 09:55:43 318

原创 Android 一些新特性

1.RTL(左右翻转的界面风格 支持 Android 4.2(API 17) 和 更新的版本)适配RTL(从右到左) 只要把布局 xml 里面的所有 Left 属性改为 Start,Right 属性改为 End 就好了例如:marginLeft 改为 marginStart,marginRight 改为 marginEnd,padding,gravity 等同理2.高度和阴

2016-09-20 15:25:06 394

转载 Android 命名规范 (提高代码可读性)

在讲解命名规范前,先初略介绍下当前主要的标识符命名法和英文缩写规则。标识符命名法标识符命名法最要有四种:1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写。2 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写3 下划线命名法:单词与单词间用下划线做间隔。4 匈牙利命名法:广泛应用于微软编程环境

2016-08-27 09:05:40 752

原创 ExpandableListView的首次加载全部展开,并且点击Group不收缩,去掉Group左边的箭头

1、首次加载全部展开:mExpandableListView.setAdapter(mExpandableListViewAdapter); for (int i = 0; i < mDataGroup.size(); i++) { mExpandableListView.expandGroup(i); }提醒:加载前别忘了判断adapter是否为空和有没有Group数据哦

2016-08-16 10:56:48 7376 1

转载 android开发中资源文件和资源ID是如何映射的

有一段时间没有更新博客了。这里贴一篇从stackoverflow整理过来的问答,来冒充一下自己的原创。问题:android里面,资源文件和资源ID之间的映射是如何工作的?问题描述:做Android应用开发的时候,我们知道可以通过 R.id.xxx 来非常方便的访问应用程序的资源。但是任何资源最终要编译成二进制格式的,那么在这种机制下,系统是如何工作的?例如,在layout1

2016-08-15 15:26:49 4197

转载 ListView分析和getItemViewType的用法

ListView 和 Adapter 的基础工作原理:ListView 针对List中每个item,要求 adapter “给我一个视图” (getView)。一个新的视图被返回并显示如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图?NO!这不可能!实际上Android为你缓存了视图。Android中有个叫做Recycler的构件,下图是他的工作原

2016-08-15 15:08:14 1905

转载 DrawerLayout背景设置的问题,去除阴影

做项目的时候遇到一个问题,就是当DrawerLayout滑动出来的时候,默认是会给侧边栏下面部分的界面蒙上一层阴影,而我们这个app侧边栏颜色和阴影颜色实在是太相近了,所以就需要去除阴影,然后翻遍baidu找不到,只能fan qiang 去谷歌咯。最后总算找到了方法,给DrawerLayout设置setScrimColor这个方法,给它加上自己想要的颜色就好了,透明的使用drawer.setS

2016-08-11 16:24:58 9589 3

转载 DrawerLayout禁用侧边滑动

使用DrawerLayout的时候有时会出现侧边栏只能滑出一小部分,然后在手指抬起之后侧边栏并没有弹出来的情况,我不清楚这是否是一个BUG,但是个人感觉有些影响体验,索性直接将侧边滑动给禁用掉。DrawerLayout的侧边滑动可以通过设置锁定模式来禁用 mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CL

2016-08-11 14:34:37 7024

转载 Android禁止ViewPager的左右滑动

怎样禁止ViewPager左右滑动呢?大致就是重写ViewPager,覆盖ViewPager的onInterceptTouchEvent(MotionEvent arg0)方法和onTouchEvent(MotionEvent arg0)方法,这两个方法的返回值都是boolean类型的,只需要将返回值改为false,那么ViewPager就不会消耗掉手指滑动的事件了,转而传递给上层View去处理或

2016-08-11 09:52:44 909

转载 Android EditText不弹出软键盘

方法一: 在AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为adjustUnspecified|stateHidden 例如:<activity android:name=".Main" android:label="@string/app_name"

2016-08-04 14:33:53 4059

转载 ListView的精确定位 和 自下而上展示的ListView

在android的开发中,经常会遇到需要主动去设定某条ListItem的位置的需求。设置位置的函数有ListView.setSelection(int position) ListView.setSelectionFromTop(int position, int y);其中position指的是指定的item的在ListView中的索引,注意如果有Header存在的情

2016-08-04 14:23:29 596

转载 Android listview指定垂直滑动距离

在写自动化代码的时候对于listview的拖动有时候效果不尽人意,例如robotium自带的滚动操作scrollListToLine,最终的核心就是:inst.runOnMainSync(new Runnable(){ public void run(){ view.setSelection(lineToMoveTo); } });那么也就是

2016-08-04 11:06:23 2500 2

转载 获取ListView当前滚动的距离(高度)

原本以为ListView的OnScrollListener中onScroll方法可以得出ListView的滚动高度,12public void onScroll(AbsListView view, int firstVisibleItem,            int visibleItemCount, int tota

2016-08-04 09:44:07 1198

转载 自己生成网络后台接口并利用charles模拟Http请求和响应

最新项目组服务端的童鞋们太不给力了,接口一直没有出来,为了方便开发。服务器的童鞋们定义好了http接口以及返回的json结构。然后客户端就可以利用json结构,模拟数据,然后顺利开发,最后等服务器接口完成的时候,再次做一下联合调试。这样的方法,有专业的名字mock。下面介绍下怎样利用mock http响应。比如有个http接口http://xx.oo.com/api

2016-07-22 14:51:14 3908

转载 用文字替换小图标(TextView替换ImageView)

原理很简单,就是利用了字体文件: Typeface iconfont = Typeface.createFromAsset(getAssets(), "iconfont/iconfont.ttf"); TextView textview = (TextView)findViewById(R.id.like); textview.setTypeface(iconfont); text

2016-07-19 15:40:19 906

转载 用Fiddler模拟低速网络环境

有时候宽频网路用习惯了…在开发的过程就比较少去考虑最佳化的问题…但当有人反应说「你的网页好慢」甚至当网路速度慢,会造成你的网页跳出什么诡异的bug时要如何重现呢?我们可以用Fiddler 这套强大的web Debugging 工具…Fiddler是一个web调试代理。它能够记录所有客户端和服务器间的http请求,允许你监视,设置断点,甚至修改输入输出

2016-07-19 14:29:15 846

转载 为什么图片加载我首先Glide

图片加载框架用了不少,从afinal框架的afinalBitmap,Xutils的BitmapUtils,老牌框架universalImageLoader,著名开源组织square的picasso,google推荐的glide到FaceBook推出的fresco。这些我前前后后都体验过,那么面对这么多的框架,该如何选择呢?下面简单分析下我的看法。afinal和Xuils在github上作者

2016-07-18 11:25:10 482

转载 纠正对Fragment Transaction BackStack的误解

目前在开发APP时,Fragment已经被开发者广泛使用,但Fragment的BackStack却被很多开发者误解。所以这篇博客就讨论下Fragment的BackStack及一些相关的常用接口。首先需要明确的是,FragmentActivity的FragmentManager是处理Fragment Transaction的而不是处理Fragment。BackStack内部的一个Transactio

2016-07-14 11:23:54 435

转载 Android使用Glide加载Gif.解决Glide加载Gif非常慢问题

在Glide文档中找了半天没发现加载Gif的方式.然后通过基本的用法去加载:Glide.with(MainActivity.this).load(url).asGif().into(imageView); 发现网络也没有获取,翻了一连接才找到:https://groups.google.com/forum/#!msg/glidelibrary/fZnIK2IW7cQ/lnBWNMsk

2016-07-13 14:34:44 1593

转载 打破Android应用65K方法数魔咒

近日,我们的应用,在编译的时候不幸的遇到这个错误Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536这才让我意识到原来我们的程序中,方法数已经超过了65536。在之前,已经知道了android系统的java虚拟机dalvik在执行java程

2016-07-11 17:04:55 337

转载 加速Android Studio/Gradle构建

已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。开启gradle单独的守护进程在下面的目录下面创建gradle.properties文件:/home//.gradle/ (Linux)/

2016-07-11 17:02:05 555

转载 Android Studio中设置作者和创建日期等注释模板

在开发程序的时候,我们一般都会给文件自动添加上一些关于文件的注释信息,比如开发者的名字,开发的时间,开发者的联系方式等等。那么在android studio中该如何设置呢?点击菜单栏的“File“->“Settings”,打开Settings窗口。

2016-07-11 11:15:20 11487

转载 提升效率 Windows 10 快捷键大全

Win键+Tab:激活任务视图Win键+A:激活操作中心Win键+C:通过语音激活CortanaWin键+D:显示桌面Win键+E:打开文件管理器Win键+G:打开Xbox游戏录制工具栏,供用户录制游戏视频或截屏Win键+H:激活Windows 10应用的分享功能Win键+I:打开Windows 10设置Win键+K:激活无线显示器连

2016-07-07 14:45:37 447

转载 Java异常机制

异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通 过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。一、相关知识1、在 Java 中,所有的异常都有一个共同的祖先

2016-07-07 10:30:29 226

转载 Android中的隐藏API和Internal包的使用之获取应用电量排行

今天老大安排一个任务叫我获取手机中应用耗电排行(时间是前天晚上7点到第二天早上10点),所以在网上各种搜索,没想到这种资料还是很多的,发现了一个主要的类:PowerProfile,但是可以的是,这个类没有曝光给我们开发者,所以我们不能调用它那怎么办呀?,还是有办法的,这个类是藏在:com.android.internal.os.PowerProfilecom.android.int

2016-07-06 14:56:57 440

转载 Android Studio 高级配置

前面的话Android Studio 提供了一个非常方便的功能帮助我们导入或者导出设置。因此我们在安装一个新的 Android Studio 的时候通常会导入一个之前的设置。但是,最近发生了一件悲剧的事情-我丢失了我的设置文件(幸灾乐祸点个赞~)。我的建议:即时的备份你的设置文件到云盘等地方。当我在配置我的 Android Studio 的时候,下面的一些配置技

2016-07-05 15:06:37 441

转载 android怎样调用@hide和internal API

Android有两种类型的API是不能经由SDK访问的。第一种是位于com.android.internal包中的API。我将称之为internal API。第二种API类型是一系列被标记为@hide属性的类和方法。从严格意义上来讲,这不是一个单一的API,而是一组小的被隐藏的API,但我仍将其假设为一种API,并称之为hidden API。Hidden API 例子你可以

2016-07-05 14:52:15 865

转载 Android Studio你不知道的调试技巧

转载自: http://tianweishu.com/2015/12/21/Android-studio-debug-tips-you-may-not-know/写代码不可避免有Bug,通常情况下除了日志最直接的调试手段就是debug;那么你的调试技术停留在哪一阶段呢?仅仅是下个断点单步执行吗?或者你知道 Evaluate Expression, 知道条件断点;可是你听说过日志断点

2016-07-05 14:49:53 817

转载 Android Studio中查看类的继承关系

查看类的继承关系的快捷键F4,在Android Studio常用快捷键这篇文章中,有写了。今天主要是讲一些关于这个快捷键出来的界面的一些配置,这块功能相对偏冷一些,可能很多人都会用不到。但是关于这些配置,android studio中很多都是类似的。废话不多说,直接上图,如下图,我选中Activity,然后按F4,右边会出现一个和Activity有继承关系的图。1、先简要分析下

2016-07-05 09:58:03 512

转载 Android ScrollView滚动 + ListView无滚动条加载全部内容

Android实现 ScrollView+ListView无滚动条滚动,即ListView的数据会全部显示完,但Listview无滚动条。核心代码如下:1. NoScrollListView.Java /*** * 自定义ListView子类,继承ListView * @author Administrator * */public class NoScrol

2016-06-28 11:49:41 614

空空如也

空空如也

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

TA关注的人

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