240 发简信
IP属地:四川
  • Android中的线程池

    Android中的线程池 线程池的优点: 重用线程池的线程,避免因为线程的创建和销毁所带来的性能开销; 能有效的控制线程池的最大并发数,避免大量的线程之间因互相抢占系统资源而...

  • 120
    性能优化工具

    一 Android官方性能优化工具介绍 android针对上面这些会影响到应用性能的情况提供了一些列的工具: 1 布局复杂度: hierarchyviewer:检测布局复杂度...

  • 加锁的方式

    一.Java多线程可以通过: synchronized关键字 Java.util.concurrent包中的lock接口和ReentrantLock实现类 这两种方式实现加锁...

  • 120
    广播

    说明:Activity,Service,Application都是ContextWrapper的子类。ContextWrapper里面有一个Context类型的成员变量mBa...

  • android数据库升级

    SQLiteOpenHelper 每次调用getWriteDatbase或者getReadDatabse,都会走到getDatabaseLocked方法, 在其中会判断数据库...

  • java创建线程的三种方式及其对比

    Java中创建线程主要有三种方式: 一、继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因...

  • HTTP必知必会——断点续传原理

    要实现断点续传的功能,通常都需要客户端记录下当前的下载进度,并在需要续传的时候通知服务端本次需要下载的内容片段。 HTTP1.1协议(RFC2616)中定义了断点续传相关的H...

  • git工作流程

    git支持很多种工作流程,我们采用的一般是这样,远程创建一个主分支,本地每人创建功能分支,日常工作流程如下: 去自己的工作分支 $ git checkout work 工作 ...

  • Launcher 动态shortcut

    通过AnimatedVectorDrawable设置应用的icon。 Launcher读取后可以通过start方法播放动画

  • 谨慎初始化Application

    谨慎初始化Application Android应用可以支持开启多个进程。 通常的做法是这样 123 通常我们在Application的onCreate方法中会做很多初始化操...

  • Proguard

    ObjectAnimator.ofFloat(this,"progress", mProgress,0f); 属性动画,注意不要把相应的set和get方法混淆了。

  • RecyclerView drag

    通过ItemtouchHelper. packagecom.wds.testdragrecyclerview; importandroid.support.v7.app.Ap...

  • Loop Viewpager

    原理:把viewpager的最后一个view加到第一个位置,在最后一个位置再加一个第一个元素。 代码:https://github.com/wds609/loopviewpa...

  • Handler Message Looper

    Handler的创建需要绑定一个Looper对象和Looper对象的MessageQueen,默认调用mLooper = Looper.myLooper(),会返回当前线程中...

  • PackageManager.getPreferredActivities

    public abstract int getPreferredActivities(@NonNull ListoutFilters, @NonNull Listo...