首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
想念你的Android
掘友等级
国防科技大学计算机学院研究生毕业, 全球首批Android开发者,开发的软件
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
1
文章 1
沸点 0
赞
1
返回
|
搜索文章
最新
热门
Android进阶:七、Retrofit2.0原理解析之最简流程【上】
retrofit的实例化很简单,采用链式调用的设计,把需要的参数传进去即可,复杂的参数我们这里就不举例了。 我们调用retrofit的create方法就可以把我们定义的接口转化成实现类,我们可以直接调用我们定义的方法进行网络请求,但是我们只定义了一个接口方法,也没有方法体,请求…
Android进阶:六、在子线程中直接使用 Toast 及其原理
一般我们都把Toast当做一个UI控件在主线程显示。但是有时候非想在子线程中显示Toast,就会使用Handler切换到主线程显示。 答案是:当然可以。 以上代码有简化。可以看出当Looper为null的时候,会通过Looper.myLooper获取一个当前的Looper。我们…
Android进阶:五、RxJava2源码解析 2
Rxjava是解决异步问题的,它的链式调用让代码看起来非常流畅优雅。现在我们带上线程切换以及链式调用来看看。下面代码是示例: 我们创建一个事件(观察者),想输出一个字符串 "a"。这个事件发生在IO线程,结束也在IO线程,事件的状态回调发生在主线程。示例的用法大家应该都能懂,我…
Android进阶:四、RxJava2 源码解析 1
Rxjava在GitHub 主页上的自我介绍是 "a library for composing asynchronous and event-based programs using observable sequences for the Java VM"(一个在 Java…
Android进阶:三、这一次,我们用最详细的方式解析Android消息机制的源码
Handler的构造函数中首先判断了FIND_POTENTIAL_LEAKS的值,为true时,会获取该对象的运行时类,如果是匿名类,成员类,局部类的时候判断修饰符是否为static,不是则提示可能会造成内存泄漏。 如果没有调用Looper.prepare()则不能再线程里创建…
Android进阶:一、日志打印和保存策略
项目开始没有做好日志统计工作,每次有问题后端都得找前端对接,严重影响工作效率。最近特地在项目中加上日志保存策略,在此分享,供需要的人学习。 StackTrace(堆栈轨迹)存放的就是方法调用栈的信息,我们从中获取方法执行的线程相关的信息,以及执行的方法名称等。这些信息能帮助我们…
Kotlin 基础-程序结构(上)
在 Kotlin 中,只要是编译器认识的类型,就可以自动推导出变量的类型,不需要我们显示的指定。 Kotlin 中使用 value 的缩写 val 来表示一个不可变的值类型,与 Java 中 final 的用法类似。 以上的两行代码在使用上来说是一样的,如果你想重新给「NAME…
Kotlin 基础 - 数据类型
Boolean 值有两个值,分别为 true 或 false。多数情况下,Kotlin 中的 Boolean 相当于 Java 中的基本类型 boolean,只有在必要的情况下才会装箱成为 Java 中的装箱类型 Boolean。这一切都是交由编译器来完成,我们无需关心。 Ch…
Android性能优化之内存篇
性能优化一直是高级Android工程师必问的,这也往往涉及到对Java、JVM、Android运行机制、监控工具使用等全方位的知识点,是很好的面试方向。 本篇会围绕Android与Java的性能优化专项之内存展开并深入。 内存是Android运行性能至关重要的一项指标,每个进程…
Gradle 提速:每天为你省下一杯喝咖啡的时间
作为一名 Android 开发同学,当你的工程和代码达到一定规模的时候,相信你一定遇到过编译速度过慢的问题。比如: 对于程序猿,时间尤其宝贵,当你修改完一个 BUG 或者想验证一个功能时,却因为编译速度过慢而不得不打断你的思路,也会严重影响你的开发效率。 正所谓,磨刀不误砍柴工…
下一页
个人成就
文章被点赞
31
文章被阅读
39,553
掘力值
990
关注了
5
关注者
14
收藏集
0
关注标签
3
加入于
2018-11-21