RxJava2详解(一)--基础

ReactiveX详解 RxJava2基础 RxAndroid ReactiveX(Reactive Extensions),一般简写为Rx,是一个使用可观察数据流进行异步编程的编程接口。由微软的架构师Erik Meijer领导的团队开发,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便地编写异步和基于事件的程序,现在已经有了RxJava、RxJS、Rx.NET、RxScala、RxClojure、Rx...
阅读(85) 评论(0)

Android权限管理详解

概述Android安全架构规定:默认情况下,任何应用都没有权限执行对其他应用、操作系统或用户有不利影响的任何操作。这包括读写用户的私有数据(如联系人或电子邮件等)、读写其他应用的文件、执行网络访问、使设备保持唤醒状态等等。 如果要使用这些受保护的设备功能,首先要在应用的清单文件(AndroidManifest.xml)中添加一个或多个 标记: <manifest...
阅读(228) 评论(0)

Dagger2 User's Guide(翻译)

概述依赖注入(dependency injection)是一个对象为另一个对象提供依赖关系的技术手段。简单点说,就是一个对象(client)要依赖其它对象(services)才能完成工作,那么这个对象(client)就对其它对象(services)产生了依赖,而依赖注入就是把依赖(services)在需要的时候自动传给client,而不是client自己创建或者寻找services。也就是说客户对象...
阅读(1381) 评论(0)

Android软键盘输入详解

IM(Input Method): 输入法。是指通过键盘等输入设备输入 输入设备上没有 的字符的 方法/程序/处理器 。最开始是特指在拉丁字母键盘上输入CJK (Chinese, Japanese and Korean)文字的方法,现在一般将所有的输入语言的方式都叫输入法。 IME(Input Method Editor): 输入法编辑器。通常简作输入法。 IMF(input method...
阅读(560) 评论(0)

Android时间处理详解

Android时间详解 Java Calendar详解 Java Date Greenwich:格林威治/格林尼治,是位于伦敦市中心东南部的一个区,1675国王查理二世在此建立了皇家格林尼治天文台,1851年御用天文学家艾里在天文台设置了中星仪并确定了格林威治子午线,1884年在美国华盛顿特区举行的国际本初子午线大会上正式将此线定之为经度的起点。...
阅读(1680) 评论(0)

MD风格之丰富多变Toolbar

一. 下载 compile 'com.android.support:design:23.4.0'二. 详解CoordinatorLayout继承自ViewGroup,实现了NestedScrollingParent接口,可以说是超级版FrameLayout。 CoordinatorLayout的用途主要有两个: 作为最顶层的application decor或者chrome layout....
阅读(605) 评论(0)

Invalid double崩溃分析

Caused by: java.lang.NumberFormatException: Invalid double: "0,3" at java.lang.StringToReal.invalidReal(StringToReal.java:63) at java.lang.StringToReal.initialParse(StringToReal.java:164) at java.la...
阅读(1832) 评论(0)

RecyclerView之ItemDecoration详解

关于RecyclerView的ItemView装饰,之前一直用官方Demo的DividerItemDecoration,并没有认真地去理解ItemDecoration的用法,也没能体会到ItemDecoration的强大,直到要用到横向的RecyclerView,而且最左边的和最右边的Item要留出间隔(虽然clip结合padding可以实现),才认真地理解一下ItemDecoration。 Re...
阅读(7048) 评论(15)

Collections.sort()崩溃分析

对List排序一般采用两种方法: (1)实体类实现`Comparable`接口,完成`compareTo(T o)`方法。 (2)创建一个`Comparator`的实现类,完成`compare(T o1, T o2)`方法,然后利用这个比较器对List进行排序。...
阅读(1689) 评论(0)

Glide使用详解(二)

BitmapPoolDalvik和ART都没有使用compacting garbage collector垃圾回收模式,这种模式中GC会遍历堆,同时把活跃对象移到相邻内存区域,让更大的内存块可以用在后续的分配中。因为安卓没有这种模式,就可能会出现被分配的对象分散在各处,对象之间只有很小的内存可用。如果应用试图分配一个大于邻近的闲置内存块空间的对象,就会导致OOM崩溃,即使总的空余内存空间大于要分配的...
阅读(5644) 评论(5)

Glide使用详解(一)

Glide使用 Glide使用教程 Glide详解 Android图片加载 一. 下载在build.gradle中添加依赖: compile 'com.github.bumptech.glide:glide:3.7.0'需要support-v4库的支持,如果你的项目没有support-v4库(项目默认已经添加了),还需要添加s...
阅读(58996) 评论(56)

Glide之后台线程加载及缓存资源

后台线程加载及缓存为了使后台线程加载和处理媒体资源更容易,Glide新增了两个API: downloadOnly(int, int) into(int, int) Glide的downloadOnly(int, int)API允许你下载图片的字节流到磁盘中,以便你之后用到。你可以在UI线程中异步地使用downloadOnly()或者在后台线程中同步使用,但要注意,异步API需要一个Target作为参...
阅读(4930) 评论(2)

Glide之Target

Glide不但可以把图片、视频剧照、GIF动画加载到View,还可以加载到自定义的Target实现中。Target就是使用Glide获取到资源之后资源作用的目标,我们通常是用Glide加载完资源后显示到ImageView中,这个ImageView就是目标。 Target架构的接口包括: com.bumptech.glide.manager.LifecycleListener com.bumptec...
阅读(4736) 评论(6)

Glide之GlideModule

GlideModule接口:为了延迟配置Glide(包括用GlideBuilder设置选项,为Glide注册ModelLoader) 所有的GlideModule实现类必须是public的,并且只拥有一个空的构造器,以便在Glide延迟初始化时,可以通过反射将它们实例化。注册ModuleLoader时可调用Glide的register(Class modelClass, Class r...
阅读(6143) 评论(0)

Unable to add window崩溃分析

显示Dialog时,我们通常会将Activity实例传给Dialog,然后调用Dialog的show方法显示。但在一些情况下,比如说先通过异步网络请求请求数据,等拿到数据后再调用Dialog的show方法显示Dialog来告诉用户已经拿到数据了,但是,我们偶尔会发现发生这样的程序崩溃: android.view.WindowManager$BadTokenException: Unable to...
阅读(2210) 评论(2)
56条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:217974次
    • 积分:1868
    • 等级:
    • 排名:第19916名
    • 原创:50篇
    • 转载:0篇
    • 译文:7篇
    • 评论:221条
    最新评论