Fork me on GitHub
nanchen

做不完的开源,写不完的矫情


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

这可能是最好的性能优化教程(三)

发表于 2017-09-13 | 分类于 性能优化 | | 阅读次数
这可能是最好的性能优化教程系列专栏这可能是最好的性能优化教程(一)这可能是最好的性能优化教程(二)这可能是最好的性能优化教程(三) 前言内存泄漏从来都是我们老生常谈的话题,无论是 Android Studio 自带的内存泄漏分析工具还是专业的 Eclipse MAT 抑或是备受青睐的第三方插件 LeakCanary,都为我们的内存泄漏检测提供了便利。如果从根源上解决内存泄漏,内存优化必不可少。所以本章节我们参考扔物线胡凯的内存优化策略,直接拿出一章节来谈内存优化。 内存优化基本可以分为下面几个方面 减少对象的内存占用 对内存对象进行复用 避免对象的内存泄漏 内存使用策略优化 减少对象的内存占用避免在 Android 里面使用 EnumEnum 是 Java 中包含固定常量的数据类型,当需要知道预先定制的几个值,这几个值表示一些数据类,我们都可以使用 Enum。我们一般用 Enum 做一 ...
阅读全文 »

这可能是最好的性能优化教程(二)

发表于 2017-09-13 | 分类于 性能优化 | | 阅读次数
这可能是最好的性能优化教程系列专栏这可能是最好的性能优化教程(一)这可能是最好的性能优化教程(二)这可能是最好的性能优化教程(三) 前言上篇写了 ArrayMap 和 UI 性能优化,这篇我想和大家聊聊每个人都关心的 APP 启动,参见 Android 性能优化典范。 正文提高 APP 的启动速度对我们意义深远,很显然,APP 的启动时间越短,使用它的用户越有耐心等待打开这个 APP 进行使用。反之,启动时间太长,用户则有可能还没等到 APP 打开就已经切换到其他 APP 了。 程序启动过程中那些复杂错误的操作很有可能导致严重的性能问题。Android 系统会根据用户的操作行为调整程序的显示策略,用来提高程序的显示性能。例如,一旦用户点击桌面图标,Android 系统会立即显示一个启动窗口,这个窗口会一直保持显示直到画面中的元素成功加载并绘制完第一帧。这种行为常见于程序的冷启动,或者程序的 ...
阅读全文 »

这可能是最好的性能优化教程(一)

发表于 2017-09-12 | 分类于 性能优化 | | 阅读次数
这可能是最好的性能优化教程系列专栏这可能是最好的性能优化教程(一)这可能是最好的性能优化教程(二)这可能是最好的性能优化教程(三) 前言性能检测与分析,一直在 APP 开发中相当重要,但又被我们常常忽略。很多 APP 或者开发者总是急功近利,总想着快速充实 APP 的相关功能,把开发进度放在首位没有问题,可很多时候就没有然后了,这在整个开发界屡见不鲜。 在这样的大背景下,加之我之前写的 RxJava 2.0 系列 收到较好的反馈,诱导我想出这么一个性能优化系列。 一些你可能需要知道的了解我的知道,我出的系列基本都是比较基础,而且侧重于常见必备。所以不一定全面,也不一定深入,所以希望理解。 性能优化大概可以概括为: 性能优化说起来很简单,但做起来难。 性能优化点多并且繁杂,需要耐心和经验。也许每个优化点很小,但积累起来会从量变变成质的飞跃。 性能优化必须建立在产品设计之上,不能为了追求性能 ...
阅读全文 »

Android 开发者,如何提升自己的职场竞争力?

发表于 2017-08-23 | 分类于 感悟 | | 阅读次数
前言该文章是笔者参加 Android 巴士线下交流会成都站 的手写讲稿虚拟场景,所以大家将就看一下。 开始大家好,我是刘世麟,首先感谢安卓巴士为我们创造了这次奇妙的相遇。现场的氛围也让我十分激动。 职场竞争力,从来都是我们关注的话题,所以我今天给大家分享一下:《Android 初学者,如何快速提升职场竞争力》。 在今年 4 月,全球互联网引来了一个历史性的转折点:随着流量分析工具 StatCounter 的报告,Android 首次超越 Windows,成为用户访问互联网最常用的操作系统!Android 不仅在移动领域,在全操作系统内,都成为了当之无愧的霸主!无论你有志于成为领先企业的 Android 工程师,还是想成为改变世界的独立开发者,我希望你们为此而骄傲!!! 即便如此,大家觉得 Android 开发就业形势可观吗? 答案是不可观。我这绝对不是危言耸听,随着近年来 O2O 公司的 ...
阅读全文 »

Android 7.0 调用系统相机崩溃解决 android.os.FileUriException

发表于 2017-07-25 | 分类于 相机适配 | | 阅读次数
写在前面最近由于廖子尧忙于自己公司的事情和 OkGo (一款专注于让网络请求更简单的网络框架) ,故让LZ 接替维护 ImagePicker(一款支持单、多选、旋转和裁剪的图片选择器),也是处理了诸多bug,最近总算趋于稳定了,这里就把 Android N (API 24) 以上的相机适配方案分享给大家。   Android Nougat 也是被更新很久了,作为一名 Andorid 开发者,我们有义务时刻准备自己调整 TargetSdkVersion 为最近的一个,于是从之前的 23 直接提高到了 25 。   和往常一样,每当我们调整 TargetSdkVersion,我们需要检查我们的代码的每一部分工作的非常好。如果你只是简单地更改代码,我可以说,你的应用程序正在崩溃或故障的高风险。在这种情况下,当你改变你的应用程序的 TargetSdkVersion 24,我们需要检查每一个功能完美 ...
阅读全文 »

MIUI 系统 BUG,Android 调用相机崩溃?将相机适配进行到底

发表于 2017-07-25 | 分类于 相机适配 | | 阅读次数
写在前面昨天也是为大家分享了 7.0 相机适配,今天就来为大家讲讲 Android 之相机适配。 提起 Android 调用系统相机拍照上传图片或者是显示图片,想必任何一位开发 Android 的朋友都不会陌生,基本这个功能已经涵盖各个应用了,今天,我就来给大家聊聊网上并不多见却有经常听到大家吐槽的问题。 拍照功能实现对于拍照功能的实现方式我这里就不多谈了,无非两种,一种是利用相机的 API 来自定义相机,另一种是利用 Intent 调用系统指定的相机拍照。而这两种方式的实现网上搜索一大把,我就不在这里啰嗦了。 有没有相机可用?前面讲到我们是调用系统指定的相机 APP 来拍照,那么系统是否存在可以被我们调用的 APP 呢?这个我们不敢确定,毕竟 Android 奇葩问题多,还真有遇到过这种极端的情况导致闪退的。虽然很极端,但作为客户端人员还是要进行处理,方式有二: 调用相机时,简单粗暴 ...
阅读全文 »

如果优雅地退出应用和处理崩溃异常并重启

发表于 2017-07-21 | 分类于 知识整理 | | 阅读次数
写在前面这是最近一些朋友问我的问题,我把它整理成了一个库,供大家享用,GitHub 地址:https://github.com/nanchen2251/AppManager 从四个应用场景说起 退出应用相信各位朋友或多或少都会有遇到过需要在某个特定的地方退出应用的需求,这个场景一定非常普遍。 崩溃后重启程序总是无法做到尽善尽美,有时候你也不知道因为什么原因导致了 APP 的崩溃,这无疑是非常糟糕的用户体验。这时候我们可以采用重启机制来增强用户舒适体验感。 莫名其妙重启然而心细的小伙伴肯定会发现,在部分手机上会出现莫名其妙的崩溃后重启(后面会讲原因),而且最要命的是,假设你有三个 Activity,他们分别是 Act1, Act2, Act3,它们的启动顺序是 Act1 -> Act2 -> Act3,而如果在 Act3 发生了崩溃,这时候极有可能应用重启后进入的是 Act2 ...
阅读全文 »

一文彻底搞懂 CoordinatorLayout 和 AppbarLayout 联动,让 Design 设计更简单

发表于 2017-07-20 | 分类于 Design 设计 | | 阅读次数
一、写在前面其实博主在之前已经对 Design 包的各个控件都做了博文说明,无奈个人觉得理解不够深入,所以有了这篇更加深入的介绍,希望各位看官拍砖~ 二、从是什么开始1、首先我们得知道 CoordinatorLayout 是什么玩意儿,到底有什么用,我们不妨看看官方文档的描述:    CoordinatorLayout 是一个 “加强版” FrameLayout, 它主要有两个用途:1) 用作应用的顶层布局管理器,也就是作为用户界面中所有 UI 控件的容器;2) 用作相互之间具有特定交互行为的 UI 控件的容器,通过为 CoordinatorLayout 的子 View 指定 Behavior, 就可以实现它们之间的交互行为。 Behavior 可以用来实现一系列的交互行为和布局变化,比如说侧滑菜单、可滑动删除的 UI 元素,以及跟随着其他 UI 控件移动的按钮等。 其实总结出来就是 ...
阅读全文 »

这可能是最好的 RxJava 2.x 入门教程(完结版)

发表于 2017-07-07 | 分类于 RxJava 2.x | | 阅读次数
这可能是最好的RxJava 2.x入门教程系列专栏文章链接:这可能是最好的RxJava 2.x 入门教程(一)这可能是最好的RxJava 2.x 入门教程(二)这可能是最好的RxJava 2.x 入门教程(三)这可能是最好的RxJava 2.x 入门教程(四)这可能是最好的RxJava 2.x 入门教程(五)GitHub 代码同步更新:https://github.com/nanchen2251/RxJava2Examples为了满足大家的饥渴难耐,GitHub将同步更新代码,主要包含基本的代码封装,RxJava 2.x所有操作符应用场景介绍和实际应用场景,后期除了RxJava可能还会增添其他东西,总之,GitHub上的Demo专为大家倾心打造。传送门:https://github.com/nanchen2251/RxJava2Examples 为什么要学 RxJava?提升开发效率,降低 ...
阅读全文 »
南尘

南尘

做不完的开源,写不完的矫情

9 日志
6 分类
7 标签
GitHub 简书 博客园 巴士
© 2017 南尘
由 Hexo 强力驱动
主题 - NexT.Pisces