iJays'blog 专注于移动开发,分享技术,共享快乐

浅析layoutinflater 加载原理

在Android 开发中,我们经常会遇到使用LayoutInflater 的场景,如RecyclerView 显示item 布局,Activity 使用setContentView 方法设置layout 等,今天我们就尝试从代码中揭开LayoutInflater 的神秘面纱😊。 加载布局文件 我们以 setContentView 作为切入点查看, @Override publ...

RxLifecycle原理解析

前言 我们在使用 RxJava 的时候,往往会惊诧于它带来的便利,但同时他也是一把双刃剑,如果开发人员不注意,那么就极有可能造成内存泄露。千里之堤,溃于蚁穴,过多的内存泄漏最终会拖垮我们的应用,大大的影响体验。鉴于此种情况,一波聪明的工程师想到了一些巧妙的解决方案,其中一个就是就是本文的主角 RxLifecycle 使用 首先在 build.gradle 中引入依赖: ...

Typora中插入数学公式

最近会有在 Typora 和 Keynote 中插入数学公式的需求,开始 Google 了好一阵,为了防止自己忘记,特此记录一下。 在Typora 中插入 LaTeX LaTeX 是一种强大的排版系统,对于复杂的表格和数学公式支持相当不错,那么在 Typora 中如何插入 LaTeX 呢? Typora 天然支持了 LaTeX 语法,可以使用 快捷键 ==command + alt +...

LeetCode刷题日志-Roman To Integer

昨晚刷题,随机选到了一道把罗马数字转换为整型的问题。 题目 在罗马数字中使用以下字符来表示特定的数字, Symbols Value I 1 V 5 X 10 L ...

Mac解压zip文件乱码解决

事情的起因是这样的,因为婚纱工作室发来的小样是 zip 的压缩包,用 Mac 打开后出现乱码,比如: 8¥Á∞Ʊ¥ÀÆæß2 10¥Á∞Ʊ¥ÀÆæß2 试过使用 Mac 自带的压缩工具和 第三方的 StuffIt Expander 都是同样的结果,最后忍无可忍,Google 到了解决方案,这里做一下记录总结。 其实出现问题的原因,就是文字编码的问题,当不指定编码格式的...

Android Gradle 小技巧

记录一些在Android 开发中使用到的Gradle 小技巧 保存敏感信息 在开发中,可能会使用到一些敏感的信息,比如签名信息或者某些服务的key 等,直接写在如build.gradle 文件中是不合适的。只时候我们可以将信息写入到gradle.properties 这个配置文件当中(实际上也可以新建一个后缀名为 .preperties 的文件)。 这里我在项目根目录中新建了一个名为p...

Java开发手册记录

最近又阅读了一遍阿里的Java 开发手册,发现了一些平时没有太注意的点,特此记录下来方便平时查阅。 POJO 类中布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误。 eg:定义为基本数据类型 boolean isDeleted 的属性,它的方法也是isDeleted(),RPC框架在反向解析的时候,“以为”对应的属性名称是deleted,导致属性获取...

ViewStub的使用

ViewStub 的使用 介绍 一般在介绍Android 布局优化的时候,都会说到使用include 标签,merge 标签和ViewStub,前两个使用的频率还比较高,后者相对来说使用就不是那么频繁了。前几天刚好做一个error 的界面,并不想一开始就将资源加载进内存中,然后改变visibility,于是就想到了使用ViewStub,这里记录下ViewStub 的使用,方便以后查看。 ...

常用ADB命令的使用

负责桌牌项目后,由于设备本身的特殊性,必须借由 ADB(Android Debug Bridge) 命令来观察设备的运行情况,因此这里记录下常用的 ADB 命令,方便自己查看。 获取当前已连接的设备列表 adb devices 安装卸载 apk adb install YOUR_APK.apk adb install -r YOUR_APK.apk //区别在于-r 表示替换此应...

RxJava2学习笔记

RxJava2 学习笔记 今天刚好捣鼓了下Rxjava2,期间遇到了一些问题,这里给自己做个记录。 一开始为了图省事,使用了如下的依赖: compile 'io.reactivex.rxjava2:rxjava:2.1.0' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'com.squareup...