自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 我就是懒的要命

手机号隐藏:187****7456public static String replacePhoneNumber(String rawPhoneNumber) { final String replacement = "$1****$3"; return rawPhoneNumber.replaceAll("(\\d{3})([^<>]*)(\\d{4})",

2017-05-18 17:30:19 287

原创 关于注解support annotations 的小记

资源类注解:AnimatorRes :指出一个integer的参数,成员变量,或方法返回值是一个animator资源的引用。AnimRes:指出一个integer的参数,成员变量,或方法返回值是一个anim资源的引用。AnyRes:指出一个integer的参数,成员变量,或方法返回值是一个任意资源类型的引用。ArrayRes:指出一个integer的参数,成员变量,或方法返回值是一个arr

2017-05-15 16:04:54 372

原创 杂乱

冒泡排序:(从小到大)/** * 冒泡排序 * 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 * 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 * 针对所有的元素重复以上的步骤,除了最后一个。 * 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

2017-03-09 23:16:59 301

原创 重构-改善既有代码的设计(四)----------在对象之间搬移特性

接下来的一系列文章我将写关于重构过程中具体的一些操作,今天 先来说比较重要的一点,就是在对象之间搬移特性。  对于java来这种面向对象的设计语言,“决定把责任放在哪里“即使不是最重要的事情,也是最重要的事情之一,我相信即使一个使用面向对象技术十几年的人也不一定在一开始就能保证做对,但是,不用担心,我们可以运用重构,改变自己原先的设计。  常常只需要用到Move Method 和Move

2017-02-07 17:31:55 346

原创 DialogFragment使用中show()方法遇到的IllegalStateException

最近在首页做了一个弹窗,用dialogFragment 实现的,线上报了一个crash:ava.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(Frag

2016-12-15 17:30:37 7272 2

转载 Android-sharedUserId数据权限

Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户(Android 系统是基于Linux)的.所以不同APK(用户)间互相访问数据默认是禁止的.但是它也提供了2种APK间共享数据的形式:1. Share Preference. / Content ProviderAPK可以指定接口和数据给任何其他APK读取. 需要

2016-09-01 11:10:13 266

原创 Rxjava源码(三)-----线程控制Scheduler

又是一个令人激动的东西,真不想说废话了,开始神奇之旅吧(原谅我这么土鳖,就是觉得很神奇,不看不知道,一看吓一跳啊)灵活的变换已经让我们眼花缭乱了,线程的自由控制更是让RxJava的牛叉之气更上一层楼。前边我们已经知道了可以利用subscribeOn()结合observeOn()来实现线程控制,让事件的产生和消费发生在不同的线程,map() flatMap()等方法都可以多次变换,那线程切换

2016-08-24 18:33:39 381

原创 Rxjava源码(二)-----变换

本文章来解析RxJava的线程切换原理。想想都激动了。在不指定线程的情况下,它遵循的是线程不变原则,即:在哪个线程调用subscribe()方法,就在哪个线程生产事件,在哪个线程生产事件,就在哪个线程消费事件,如果需要切换线程,就需要用到调度器Scheduler.在RxJava中,Scheduler相当于线程控制器,RxJava通过它来指定每一段代码应该运行在什么样的线程,RxJava已经

2016-08-19 18:44:04 622

原创 改善既有代码的设计(三)----------代码的坏味道

我喜欢“坏味道”这个词,代码狗嗅到了项目中的坏味道,就需要来重构,去除这种坏味道,好了不多说废话了,看看作者给我们提了哪些项目中的坏味道。come  on 3.1 Duplicated Code (重复代码) 这是我们开发中最常见的,如果你在一个以上的地方看到相似的程序结构,那么就可以肯定:设法将他们合二为一,程序会变得更好。  最简单的就是“同一个类的两个函数含有相同的表达式”,采用

2016-08-17 11:52:13 515

原创 Rxjava源码(一)

RxJava有四个基本概念Observable(被观察者)Observer(观察者) subscribe(订阅) 和事件,先看Observablepublic class Observable { final OnSubscribe onSubscribe; /** * Creates an Observable with a Function to ex

2016-07-29 14:20:19 490

原创 改善既有代码的设计(二)----------重构和性能

上一篇文章用一个小例子展示课一下重构的魅力,作者写书是要顾全到各种语言,各种项目,所以大家不论是做Android还是ios还是后台的,还是前端的,都不要用太较真的眼光来看这本书,要想顾全大局,难免会宽泛了许多,我们只要领会他的精神,了解他的手法,然后自己运用到自己所涉猎的行业即可。  一旦牵扯重构,有一个问题会被经常提出,那就是他对程序的性能会造成怎么样的影响,  对于这个问题也是我比较好

2016-07-28 15:55:27 500

原创 改善既有代码的设计(一)----------小案例展示重构的意义

本书很好的一点就是上来没有讲历史渊源这一类的催人入睡的课题,而是先用一个小案例来展示重构的过程和意义,这也是我看着本书没有至于前言的主要原因,看完了本案例,才会觉得代码真是一项艺术,与难度无关,更多的好像与强迫症有关似的,初期开发是成型,后期重构是雕琢,这也推翻了我以前的想法,比如注释要尽量写的多啊,重构基本需要推到重做啊,其实感觉本书更像是给代码习惯和编程风格一个规范化,以前一些模棱两可的习惯在

2016-07-22 11:17:32 1754

翻译 Android中常用的设计模式<一>

对于开发来说,设计模式是必不可少的,就像是一个项目的架海紫金梁,而且熟悉常用的设计模式可以有助于我们研读源码。好,废话不多说,开始介绍,1,单例:不想再说了,如果还有人不会,我叫他大爷。算了还是简单说说吧概念:确保一个类只有一个实例,并且自行实例化并向整个系统提供整个实例优点:  1,对于那些耗内存的类,只实例化一次,大大提高性能,尤其是移动开发中2,程序运行中,始终保

2016-07-14 18:51:01 7119 7

原创 开发小注意

比较乱,随时给自己一个小记录1,item的点击事件里边出现dialog选择处理的注意final关键字,不要用来传递可变的对象,因为final特性导致他一直不变2,对于封装好的dialog,一个界面出现两种,要起两个不同的名字,要不会因为复用而混乱3,集合在不同activity和fragment之间传递的时候不要用=赋值,而是addAll();=是指针的引用,慎用4对于列表界面开发,

2016-06-16 19:34:48 269

原创 关于Android 内存泄露整理

内存泄漏:简单粗俗的讲,就是该被释放的对象没有释放,一直被某个或某些实例所持有却不再被使用导致 GC 不能回收。从基本的来讲Java 内存分配策略Java 程序运行时的内存分配策略有三种,分别是静态分配,栈式分配,和堆式分配,对应的,三种存储策略使用的内存空间主要分别是静态存储区(也称方法区)、栈区和堆区。静态存储区(方法区):主要存放静态数据、全局 static 数据

2016-05-09 16:36:57 537

转载 关于自定义属性typearray的一些小理解

AttributeSet与TypedArray在自定义控件中的作用:AttributeSet的作用就是在控件进行初始化的时候,解析布局文件中该控件的属性(key eg:background)与该值(value eg:@drawable/icon)的信息封装在AttributeSet中,传递给该控件(View)的构造函数。对于非Android自带的属性,在View类中处理时是

2016-02-16 14:59:31 604

转载 关于定位的几种方式

开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面 www.androidkaifa.com 总结了一下网络中现有对于介绍android定位的几种方式,希望对大家有帮助:                                            android 定位一般有四种方法,这四种方式分别是:GPS定位,WIFI定准,基站定位,A

2016-02-03 10:32:17 570

转载 glide

Glide原理的核心是为bitmap维护一个对象池。对象池的主要目的是通过减少大对象的分配以重用来提高性能(至于对象池的概览,可以查看 这个Android performance pattern 视频)。 Dalvik和ART虚拟机都没有使用compacting garbage collector,compacting garbage collector是一种模式,这种模式中GC会遍历

2016-01-28 11:15:08 481

转载 Realm简单入门(转载)

转载文章介绍如果你关注安卓开发的最新趋势,你可能已经听说过Realm。Realm是一个可以替代SQLite以及ORMlibraries的轻量级数据库。相比SQLite,Realm更快并且具有很多现代数据库的特性,比如支持JSON,流式api,数据变更通知,以及加密支持,这些都为安卓开发者带来了方便。在这篇快速入门教程中,你将学到Android版Realm的基础知识。

2016-01-25 16:54:22 451

转载 java之内部类(InnerClass)----非静态内部类、静态内部类、局部内部类、匿名内部类

提起java内裤类(innerClass)很多人不太熟悉,实际上类似的概念在c++里面也有,那就是嵌套类(Nested Class),关于这俩者的区别,在下文中会有对比。内部类从表面上看,就是在类中定义了一个类(下文可以看到,内部类可以在很多地方定义),而实际上并没有那么简单,乍看上去内部类似乎有些多余,他的用处可能对于初学者来说并不是那么显著,但是随着对他的深入了解,你会发现java的设计者在内

2015-12-18 15:09:03 328

转载 Android动画之translate(位移动画)

Translate动画是非常好理解,就是定义一个开始的位置和一个结束位置,定义移动时间,然后就能自动产生移动动画。Android的translate移动方向有 横向(X) 竖向(Y), 左右滑动使用了横向移动效果,对于竖向(Y)的位置如下:定义一个向上退出的动画(从位置2 移动位置3)和从下面进入(从位置1移动位置2)的动画定义文件如下:out_to_up.xml (从

2015-11-27 16:59:02 373

转载 关于图片的处理的一些收集

Java代码  //压缩图片大小      public static Bitmap compressImage(Bitmap image) {            ByteArrayOutputStream baos = new ByteArrayOutputStream();          image.compress(Bitmap.CompressFor

2015-08-26 10:32:21 636

原创 IOS自学-UI基础01

1, 每一个手机界面,都是一个试图(View),每一个View都有一个控制器去维护和管理(ViewController)每一个应用程序在现实的时候首先是创建控制器,由控制器去创建视图,然后再创建视图中的控件2, 要实现点击按钮执行一段内容,就是在控制器上提供一个方法,方法必须使用(IBAction)返回值然后使用控件的Touch Up inside事件连接这

2015-04-23 10:28:56 488

原创 ColorStateList按钮文字变色

我们首先添加一个ColorStateList资源XML文件,XML文件保存在res/color/button_text.xml:Java代码  "1.0" encoding="utf-8"?>  "http://schemas.android.com/apk/res/android">      "true"            android:col

2015-01-19 14:19:08 460

原创 分析windowManager中添加一个悬浮框的方式

12345678910111213WindowManager.LayoutParams params = new LayoutParams();        params.width = width;         params.height = heig

2015-01-19 10:38:30 1000

原创 自定义控件——AlphaView 首字母提示

public class AlphaView extends View { OnTouchingLetterChangedListener onTouchingLetterChangedListener; int choose = -1; //当前选中首字母的位置 Paint paint = new Paint(); boolean showBkg = false; private Arra

2015-01-14 15:31:50 414

翻译 EditText属性

EditText继承关系:View-->TextView-->EditText  EditText的属性很多,这里介绍几个:android:hint="请输入数字!"//设置显示在空间上的提示信息android:numeric="integer"//设置只能输入整数,如果是小数则是:decimalandroid:singleLine="true"//设置单行输入,一旦设置为true

2014-03-14 12:21:23 368

原创 git

git clone 仓库url/(空格).git status   查看状态git add  文件名-->将该文件纳入版本控制git commit 文件名-->提交到本地仓库进入编辑状态之后i-->输入注释-->按esc键:wq保存退出或者(git commit -m "本次提交的注释内容" 文件名)git push origin master-->j将本地仓库的文件pus

2013-11-04 00:02:37 431

转载 极光推送

首先,我们要知道什么是Push信息?     所谓信息推送,就是"web广播",是通过一定的技术标准或协议,在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术。推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息。简单的来说,信息推送就是服务器端主动向客户端发送信息,客户端进行

2013-10-21 13:25:10 971

翻译 ActivityGroup对子Activity的管理

ActivityGroup是个用来承载多个Activity的容器,自身也是继承Activity,主要用于切换Activity(Layout),类似新浪微博软件切换界面。public class MainActivityGroup extends ActivityGroup {protected void onCreate(Bundle savedInstanceState) {

2013-10-21 09:29:46 539

空空如也

空空如也

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

TA关注的人

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