adb无线调试

在开发Android应用时,通常情况下是通过USB数据线连接设备和计算机,但对于一些需要使用USB设备的应用,这种方法就碰到了麻烦,手机的USB接口已经和外接的USB设备连接,无法再连数据线,此时可以通过网络TCPIP的方法来进行。也就是然ADB 通过网络来连接设备,而无需USB数据线。
具体方法如下:

阅读全文

Android内存泄露代码详解

关于常见的内存泄露分析的很好的一个文章http://david-wei.github.io/2015/12/22/Android%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E4%BB%A3%E7%A0%81%E8%AF%A6%E8%A7%A3/

阅读全文

Rebound-Android的弹簧动画库(转)

直接上地址了http://hanhailong.com/2016/02/16/Rebound-Android%E7%9A%84%E5%BC%B9%E7%B0%A7%E5%8A%A8%E7%94%BB%E5%BA%93/

阅读全文

观察者模式和依赖注入(更优雅的撸代码)

Android项目现在越来越流行的观察者模式来进行代码的解耦,更加优雅的撸码。比如现在比较火的RxJava,EventBus等等,都是基于观察这模式的。我今天分享的也是我上一个项目中,使用观察者模式对代码进行解耦。

项目中遇到的问题:单个类的代码复杂多很高,甚者超过几千行的类逐步增多。电商类App,UI占据了很多的成分。UI变化时,牵一发动全身。特别是一个人写的东西,不感觉让别人去顶替修改,人员离职后交接成本很大。
后来终于到了我无法忍受的时候,于是就大胆的进行了重构。
重构目标:将复杂的类进行拆分(去除各种复杂的回调代码),降低耦合度,增加阅读性和维护性。并且有利于进行patch打补丁包。
下面大概说一下当时的思路
解决方案

阅读全文

使用Gradle发布aar项目到JCenter仓库

不废话,直接上地址
http://www.cnblogs.com/qianxudetianxia/p/4322331.html

阅读全文

Java动态代理

###代理:设计模式
代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。
如何理解?通俗的将就是方法增强。

###Java的动态代理
Java 动态代理机制以巧妙的方式近乎完美地实践了代理模式的设计理念。
Java动态代理是指的对Interface接口的代理,仅支持interface代理。这也是Java动态代理的缺点。

阅读全文

物料设计之Android Design Support Library 兼容库简介

  1. 添加 Design Support Library 依赖
    在 Android Studio 中,通过在build.gradle(Module: app)中的dependencies中添加:
    compile ‘com.android.support:design:23.1.0’(其中23.1.0为当前库版本号)

阅读全文

物料设计之Snackbar

今天小有兴致的研究了一下物料设计的东西。本来想自己写点东西,但是发现大神已经写好了,所以不在重复,直接引用大神的神作吧。
Snackbar使用以及源码分析:
http://www.cnblogs.com/punkisnotdead/p/4663885.html

阅读全文

Android布局动画(LayoutTransition容器转换动画)--下

Android出现属性动画之后,提供了一套对ViewGroup中View的显示隐藏添加删除等操作的转换动画。
我们可以通过LayoutTransition对ViewGroup中的view改变进行动画处理。

ViewGroup转换动画类型

    阅读全文

    Android布局动画(LayoutAnimation)--上

    布局动画

    给ViewGroup设置childView改变时的动画,即ViewGroup布局改变时的动画。

    1. ViewGroup.setLayoutAnimation()方法与android:layoutAnimation=""属性。
      这两种方式是用来给当前ViewGroup设置属性动画的,但是这个属性动画只是在ViewGroup初次创建的时候生效。
      看ViewGroup.setLayoutAnimation的源码注视,明确指定了first layout。但是我们可以通过ViewGroup的scheduleLayoutAnimation()或者startLayoutAnimation()在需要的时候再次执行该布局动画。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      /**
      * Sets the layout animation controller used to animate the group's
      * children after the first layout. *
      * @param controller the animation controller
      */
      public void setLayoutAnimation(LayoutAnimationController controller) {
      mLayoutAnimationController = controller;
      if (mLayoutAnimationController != null) {
      mGroupFlags |= FLAG_RUN_ANIMATION;
      }
      }

    阅读全文