自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [Dkaishu的博客](http://dkaishu.com/)

新博客站点:Dkaishu的博客 ,http://dkaishu.com/,今后的博客会在新站点,这里不再继续。

2018-11-27 13:20:32 341

原创 Android 滚动显示的 TextView

ScrollTextView很多 App 中都有滚动展示文字需求,特别适合用来展示简短的通知和广告等内容,不多说,先简单看下效果, 具体的 UI 可以自己定义,我已经其开原到 github :https://github.com/Dkaishu/ScrollTextView,并可以在 gradle 中引用到工程,只需一行代码。如何使用见上面链接。推荐结合源码阅读下面内容。实现思路滚动文字的实现思路

2017-11-24 12:57:53 3545

原创 Android开发你需要知道的注解(Annotation)

这一部分平时接触较少,收藏几篇文章,写的很到位,不需要再记录一遍了。 深入浅出Android Support Annotations Android开发你需要知道的注解(Annotation)

2017-09-19 14:46:29 477

转载 Android开发中Gradle的高级用法

本篇文章主要针对实际开发中遇到的一些复杂需求,并结合自己工作中踩过的坑进行一下总结。基础知识首先我们要知道gradle中有一个功能叫做变体「productflavors」,这是来为APP设置不同的打包配置,以实现多渠道打包的一种方案。基本形式如下:android { ... buildTypes { debug { ... } q

2017-08-23 15:54:07 613

原创 如何通过 JitPack 发布自己的开源项目

compile 'com.google.code.gson:gson:2.8.0'当你在Android Studio 中 这样引入别人的开源项目时,是不是感觉巨简洁,巨帅?看完这篇,你也可以!一.为什么选择 jitPack因为简单。于是越来越多的人在用。 参考:论JitPack的优越性二.如何操作step 1.新建一个project或者在已有工程中,新建module,注意选择

2017-08-22 22:06:49 1624

原创 ViewPager + fragment 中 懒加载的一点经验

ViewPager + fragment 中 懒加载的一点经验由于 viewpager 会预创建 page 页,所以当在fragment onCreatView 中进行一些业务时,体验会很差,比如网络请求等,此时需要考虑懒加载。下面是几个可能会遇到的问题:1.仅仅在setUserVisibleHint 方法中执行业务时,第一页,也就是第一个fragment不执行

2017-08-21 16:40:09 740

原创 WebView 重定向行为导致的多次加载问题

使用 WebView 时,我们通常会重写以下方法: shouldOverrideUrlLoading() onPageStarted() onPageFinished()WebView 内部点击连接,他们的回调顺序是这样的:1、如果是固定的地址:shouldOverrideUrlLoading() -> onPageStarted()-> onPageFinished()shouldO

2017-05-30 23:15:39 17806 3

原创 Android 判断某个Intent是否可用

当我们调用 Intent 时,如果没有找到与此 Intent 匹配的 Activity 组件(Component)时,应用将报以下错误:android.content.ActivityNotFoundException:Unable to find explicit activity class 因此,在启动 Activity 之前要先判断 Intent 在此机器上是否可用。方法一:public

2017-03-13 11:23:11 3042

原创 Android 中 selector 选择器的使用

selector 选择器可用于控件不同状态下背景图的选择,以实现精美的效果。 在drawable/xxx.xml中配置,通过配置 selector,可以使系统运行时根据控件对象的状态使用相应的图片、文字等。android:state_selected 控件选中状态,可以为 true 或 false android:state_focused 控件获得焦点状态,可以为 true 或 false

2017-03-07 22:08:16 803

原创 Java 中 this 用法小结

大部分人将关键字 this 的用法总结为三种,或者四种,在我看来其实就两种:一、在构造器方法中调用本类的其他构造器方法这算是一个固定用法,用法是this(参数列表),这一句必须处于构造方法的第一句,同时一个构造方法内部只能调用另一个构造函数 。 (另外, 1.除构造器外,编译器禁止在其他地方调用构造器; 2.在一个构造函数内只能调用一个构造函数;)

2017-01-05 17:14:47 491

原创 利用MAT,两步找出内存泄漏原因

当我们利用 Android Studio 的 Memory Monitor 工具(HPROF Viewer 和 Analyzer)找出内存泄漏的Activity 后,你会发现这么多的引用,要找出泄漏点太难了,同时AS尚未提供有效的工具(可能我不知道,求告知),那么就是 Eclipse Memory Analyzer (MAT) 的 showtime 了。 很简单,就两步:

2017-01-02 21:18:05 1257

原创 分析Android内存泄漏的高质量资料

严重推荐:GC那些事儿–Android内存优化第一弹Android的内存管理–Android内存优化第二弹内存分析工具–Android内存优化第三弹内存泄露实例分析–Android内存优化第四弹MAT使用文档(中文版)Android性能优化之内存篇(胡凯,内容源自Google教学视频)square开源工具 leakcanaryAndroid应用内存泄漏的定位、分析与解决策略内存管理

2017-01-01 01:31:02 374

原创 AndroidStudio导入项目时一直卡在 Building gradle project info 的问题

问题的原因是gradle包(即gradle-wrapper.properties里的gradle压缩文件)本地没有需要下载,因为墙的原因,一直卡在下载的环节。 有三个解决方案: 1. 科学#上网,不多说,必备。加载多久看你网速了。 2.将 gradle-wrapper.properties中的版本改为已经存在的版本,找一个可以编译的项目复制版本号即可。 3. 下载离线包放到本地(例如 C:\

2016-11-29 19:25:28 2104 2

原创 Android网络请求三篇

篇一:Android 网络操作和优化相关篇二:Android网络请求心路历程篇三:Android开源项目推荐之「网络请求哪家强」

2016-11-02 23:18:39 10543 1

原创 Android中的IPC方式及对比

IPC (Interprocess communication) 跨进程通信,是指在两个进程之间交换数据的过程。多进程通信一般分为两种情况。第一种,一个应用因为自身的需要采用多进程实现,比如某些模块由于特殊原因需要运行在单独的进程中。第二种情况,当前应用需要获得其它应用的数据,由于是两个应用,所以必须采用跨进程的方式。有如下方法实现IPC:(具体实现 google 即可)一、使用Bundle四大组件

2016-11-02 22:11:32 524

转载 Java enum的用法详解

基本用法用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switchJDK1.6之前的switch语句只支持int,char,enum类型,使用

2016-11-01 19:27:34 271

转载 什么是RPC

wikipedia:远程过程调用(英语:Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用,例:Java RMI。

2016-11-01 17:03:02 332

转载 Android Studio Gradle的一些总结

简介Android Studio默认使用Gradle作为构建工具,不像Ant那样基于XML,取而代之的是采用基于Groovy的DSL(Domain Specific Language)。Gradle构建工具是任务驱动型的构建工具,并且可以通过各种Plugin扩展功能以适应各种构建任务。采用约定优于配置的原则,最简单方式是使用一个默认的目录结构。当然目录结构是可以自己修改的。Gradle Build

2016-10-29 11:33:58 3164

转载 简单易懂 MVP 模式

Android MVP 模式 [1] 也不是什么新鲜的东西了,我在自己的项目里也普遍地使用了这个设计模式。当项目越来越庞大、复杂,参与的研发人员越来越多的时候,MVP 模式 的优势就充分显示出来了。MVP 模式是 MVC 模式在 Android 上的一种变体,要介绍 MVP 就得先介绍 MVC。在 MVC 模式中,Activity 应该是属于 View 这一层。而实质上,它既承担了 View,同时也

2016-10-29 10:24:19 760

转载 Navigation View的使用详解

在这篇文章中,我们将讨论一下Navigation View。Material Design定义了 一个抽屉导航应该有何种外观和感受 。Navigation View是如何工作的?基本上就是把它添加到DrawerLayout以前用于自定义view的地方。Navigation View需要接收几个必要的参数、一个用于显示头部的布局(可选)以及用于建立导向选项的菜单,这些都设置完之后,你就只添加监听选

2016-10-26 23:37:42 8459 2

转载 CoordinatorLayout使用详解

一、CoordinatorLayout有什么作用CoordinatorLayout作为“super-powered FrameLayout”基本实现两个功能: 1、 作为顶层布局 2、调度协调子布局CoordinatorLayout使用新的思路通过协调调度子布局的形式实现触摸影响布局的形式产生动画效果。CoordinatorLayout通过设置子View的 Behaviors来调度子

2016-10-26 23:19:46 2729

原创 XUtils3框架——绑定图片

基本用法ImageOptions options=new ImageOptions.Builder()//设置加载过程中的图片.setLoadingDrawableId(R.drawable.ic_launcher)//设置加载失败后的图片.setFailureDrawableId(R.drawable.ic_launcher)//设置使用缓存.setUseMemCache(true)

2016-10-12 23:43:58 4299

原创 Android SDK版本号与API级别的对应关系

Platform Version API Level VERSION_CODE Notes Android 5.0 21 LOLLIPOP Platform Highlights Android 4.4W Android 4.4 19 KITKAT Plat

2016-10-12 16:35:23 2628

原创 Android进阶干货铺(一)——Activity的生命周期

一、典型情况下生命周期 Activity 生命周期大家应该非常熟悉,值得注意的是,onCreate 和 onDestroy 配对,标识 Activity 的创建与销毁; onStart 和 onStop 配对,标识 Activity 是否可见;onResume 和 onPause 配对··· ···二、异常情况下生命周期

2016-09-28 20:22:13 242

原创 Android进阶干货铺(〇)——干货铺开张

本系列的核心内容来源于任玉刚大神的《Android开发艺术探索》,提取了其精华内容,又加入了其他知识以及自己的见解,是Android进阶的必备知识。写作的初衷是为了巩固所学,同时帮助像我这样试图进阶的同学。 温馨提示:配合《Android开发艺术探索》阅读最佳。关于内容 为了使文章更加精简,过于基础的内容不会详细列出,而是侧重于易混淆易错点,以及高频知识点。每一篇将会总结某一个知识点的相关内容

2016-09-28 16:34:30 362

原创 常见git问题

Github “fatal: remote origin already exists”中途更改.gitignore规则不生效的解决办法

2016-09-19 20:46:07 398

原创 git命令笔记

本地创建一个版本库:$ mkdir learngit$ cd learngit$ pwd/Users/michael/learngit把目录变成Git可以管理的仓库:$ git initInitialized empty Git repository in /Users/michael/learngit/.git/在此目录新建文件,并添加到git仓库:$ git add readme.

2016-09-13 18:06:34 514 1

原创 一步一个坑

Android 6.0 的运行时权限

2016-09-05 21:39:49 470

原创 设计模式优秀博文

23种设计模式–卡奴达摩的专栏HeadFirst 设计模式学习笔记–CSDN《Head first设计模式》学习笔记 –cashow的博客

2016-09-05 20:28:16 274

转载 String,StringBuffer与StringBuilder的区别

结论: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)在大部分情况下(除纯字符常量拼接) StringBuffer > String 在大部分情况下 StringBuilder > StringBuffer详解:

2016-09-02 22:28:02 176

转载 Java中的多线程

如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如

2016-09-02 22:12:52 232

原创 适配器模式、外观模式

适配器模式 所谓适配器模式,将一个类的接口,转换为客户所期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。一般这种模式就是在不修改现有代码的情况下,将一个接口转换为另一个接口。它主要包含两种方式:对象适配器和累适配器。二者唯一的差别就在于适配器继承了Target和Adaptee。而对象适配器利用组合的方式将请求传送给被适配者。

2016-09-02 21:39:06 414

原创 命令模式

23种设计模式(10):命令模式

2016-09-01 16:46:15 195

转载 Java垃圾回收机制

说到垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来。在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理。顾名思义,垃圾回收就是释放垃圾占用的空间,那么在Java中,什么样的对象会被认定为“垃圾”?那么当一些对象被确定为垃圾之后,采用什么样的策略来进行回收(释放空间)?在目前的商业虚拟机中,有哪些典型的垃圾收集器

2016-09-01 00:22:16 345

转载 Java中有关Null的9件事

对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。Java为什么要保留null呢?null出现有一段时间了,并且我认为Java发明者知道null与它解决的问题相比带来了更多的麻烦,但是null仍然陪伴着Java。我越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间在指针、操作符重载、多继承实

2016-08-31 23:58:10 266

原创 单例模式

`/**对于性能要求不高,可以这样写 */ public class Singleton_1 { private static Singleton_1 uniqueInstance; //其他变量private Singleton_1(){}public static synchronized Singleton_1 getInstance(){ if (uniqueInstanc

2016-08-31 18:34:20 252

原创 Android开发--重点知识汇总(持续更新)

自定义控件: 1.自定义组合控件实现布局重用 2.Android 自定义View (一)【他有一个自定义view的专题】屏幕适配[三种模式在Android中的使用:MVC,MVP,MVVM]: -选择恐惧症的福音!教你认清MVC,MVP和MVVM -Android中的MVP

2016-08-05 23:40:29 352

原创 Android Studio 使用技巧汇总

重要技巧60个: -「常用技巧篇」: -「编码技巧篇」: -「调试技巧篇」:常用快捷键,快捷键大全报错汇总(很水已删)零星补充 - 断点删除 - aidl文件的导入附图:AS与Eclipse快捷键对比

2016-07-28 11:12:00 351

原创 android知识总结--Intent

三种重要组件:Activity、Service、BroadcastReceiver,都是依靠Intent来启动的,同时,Intent还可用于与被启动组件交换信息。 启动方法如下图: Intent对象大致包含Component、Action、Category、Data、Type、Extra和Flag这7种属性,其中Component用于明确指定需要启动的目标组件,而Extra则用于“携带”需要

2016-07-18 21:41:52 289

原创 登录+注册界面的实现(代码)

先看效果图! 话不多说,直接上代码!//布局文件:activity_login.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.c

2016-07-18 20:47:14 30921 3

空空如也

空空如也

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

TA关注的人

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