Android Room + RxJava 查询记录不存在的处理方法
Android 的 Room Persistence Library 提供了一层对 SQLite 的抽象,通过 Room RxJava,Room 可以直接返回 RxJava 的 Publisher 和 Flowable 对象,极大地方便了对数据库的访问。 使用 Room RxJava 时,常用的返回类型有 Flowable、Single 和 Maybe 。Flowable 用于获取并持续监…
Read more
learn, build, evaluate
Android 的 Room Persistence Library 提供了一层对 SQLite 的抽象,通过 Room RxJava,Room 可以直接返回 RxJava 的 Publisher 和 Flowable 对象,极大地方便了对数据库的访问。 使用 Room RxJava 时,常用的返回类型有 Flowable、Single 和 Maybe 。Flowable 用于获取并持续监…
Read more
本文介绍了在 Linux 上配置 Jenkins 构建 Android 应用的方法。下面的说明中,假定已安装 Jenkins,并具有 root 权限。 1. 下载并配置 Android SDK 1.1. 下载 Android SDK 在本文的示例中,会把 Android SDK 下载到 /opt/android-sdk 目录,可以根据需要修改。首先在 /opt 下建立 android-sdk 目录…
Read more
Visual Studio Emulator for Android 是微软推出的一款 Android 模拟器,本身已经集成在最新的 Visual Studio 中,也可以在 这里 下载独立运行的版本。由于最近要用 Docker,打开了 Hyper-V,而 Hyper-V 和 HAXM (用于 Google 官方 Android 模拟器的加速技术)不能同时开启,只能转而使用 Visual Stud…
Read more
Android 的 RadioGroup 可用于容纳 RadioButton,并为其中的 RadioButton 提供统一的行为管理(选中/取消选中)和事件监听(OnCheckedChangeListener)。RadioGroup 可以很方便地管理 RadioButton,但也仅限于 RadioButton,RadioGroup 无法为其他 View 提供类似的功能。 最近在做一个类似 …
Read more
Apktool 是对 smali/baksmali 的一个封装,smali 和 baksmali 可以看做是 Android 的 assembler 和 disassembler,Apktool 在其基础上提供了更便捷的使用方法。 1. 建立测试工程 首先来建立一个测试工程。新建一个 Android APP 工程,只包含一个 TextView,在 MainActivity 中创建一个名为 na…
Read more
1. 从 Adobe After Effect 导出 JSON bodymovin 是 Adobe After Effect 的一个插件,提供了从 Adobe After Effect 导出 JSON 的方法。 1.1. 安装 bodymovin bodymovin 提供了三种安装方法,由于国内网络带来的推送和同步问题,从 Adobe Add-ons 基本无法正常安装,推荐直接下载安装,方…
Read more
最近在 Android 5.x 上遇到了一个 PopupWindow 无法消失的问题,PopupWindow 已经设置了 popup.setOutsideTouchable(true); 但点击 PopupWindow 外部无法消除 PopupWindow。在 Android 6.0 上没有此问题。 该问题的原因是在使用PopupWindow时,为了取消默认的带阴影效果,使用了 popup…
Read more
Android 提供的 Button 默认带有点击效果,在 API Level 21 及以上,即使单独设置了 background,点击按钮时仍会有一个类似上浮的效果。可以通过使用 Widget.AppCompat.Button.Borderless 的 style 来去除点击效果,如: <Button style="@style/Widget.AppCompat.Button…
Read more
最近的一个 Lib 被提了一个属性冲突的 Issue,大意是在和其他 Lib 同时使用时,两个 Lib 定义了相同名称的属性,导致冲突。找来冲突的 Lib 试了一下,并没有复现,根据这个 Issue,Build tools 24.0.1 进行了部分修复,但相同名称的属性仍有发生冲突的可能性,具体情况整理如下。 1. 建立冲突的情景 创建一个 App,然后通过 File/New/New Mo…
Read more
在使用 Dagger2 对 Android 应用进行依赖注入时,有时需要先注入 Activity ,然后 Fragment 从 Activity 中获取被注入的 Component 实例,再对自己(Fragment)进行注入。Fragment 的生命周期和 Activity 不同,注入时需要考虑注入的时机。 1. 在 onCreate() 时注入 Fernando Cejas 在 Tast…
Read more