首先开始填坑,上篇文章最后的问题还没有解决,subscribeOn是如何切换线程的。 先回顾一下: 使用方法: observable.subscribeOn(Schedulers.newThread()); 我们直接看它…
分类:Android
Android基础进阶之EffectiveJava翻译系列(第六章:方法)
这一章介绍方法设计的几个方面:如何对待参数和返回值,如何设计方法签名,如何注释方法 Item38: 检查参数的合法性 大部分使用的方法参数都有一定的限制,如不为null,size>0等 通用的原则就是预防大于整改,…
Android 横竖屏处理的知识小结
Android 手机一般都支持横竖屏旋转,系统也会提供一个设置,控制允不允许旋转。这里对如何在 App 中控制界面的旋转方向做一个小结。 界面旋转方向的决定因素 决定一个界面显示为横屏/竖屏的因素有几个: 系统的设置项,…
Android 长按发送语音
正文 之前的文章我有写过如何录制音频,还没看过的朋友可以点这里,是关于Android 录音工具类 MediaRecorder的介绍,我们是通过一个单例的形式来写的,今天我来教大家如何长按按钮发送语音信息,当然,我只是模拟…
Android进阶-基于databinding实现更高效的自动布局
至于DataBinding是什么,这里我不再赘述,今天我要做的就是基于它实现自动布局,这么说吧,假设设计图是按照750×1334设计的,现在的手机分辨率是1500×2668,均是它的两倍,如此,原来是…
Android缓存机制——一般存储实现
一、Android缓存机制 Android缓存分为内存缓存和文件缓存(磁盘缓存)。在早期,各大图片缓存框架流行之前,常用的内存缓存方式是软引用(SoftReference)和弱引用(WeakReference),如大部分…
Jenkins:* What went wrong: Task 'gradlew' not found in root project 'CoolWeather'.
这个问题的发生多是因为在项目配置的问题 解决: gradle的Tasks当中写的命令写成了gradlew clean assembleRelease 实际上只需要写clean assembleRelease就可以
Android View.setId(int id) 用法
Android View.setId(int id) 用法 当要在代码中动态的添加View并且为其设置id时,如果直接用一个int值时,Studio会警告. 经过查询,动态设置id的方法有两种; 1. View.gene…
Android webview 实现h5的input type="file"选择图片调用系统相册/相机并进行图片压缩功能
一、引言 webview怎么实现web的<input type=”file” />选择图片功能,如何让h5通过webview调用系统相册和相机,并在图片传回h5的时已经将图片做了压缩处…
Permission的处理
为了保护系统的整体性和用户隐私,Android系统中的每个App都是运行在一个带限制的sandbox中,如果一个app想要从sandbox外获取信息或资源,app就需要请求permission,而具体请求什么permis…
Android 动画
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列。该系列引用了《Android开发艺术探索》以及《深入理解Android 卷Ⅰ,Ⅱ,Ⅲ》中的相关知识…
Java——单例模式
学习资料: Java 的 23 种设计模式全解析 《Java程序性能优化》 《Java程序性能优化》,这本书蛮不错的,豆瓣评分挺高7.9。本篇就是第2章第一章节的读书笔记 最近项目中经常用到单例模式,虽然能手写出来,但了…