ART虚拟机是如何内建支持MultiDex的?
项目的代码量越来越大,引入的jar越来越多,由于Dalvik虚拟机作者当初对Method量的短视,最终造成了Dex方法数超标的悲剧。Google为此提供了MultiDex这一补丁方案。MultiDex分为两部分,一部分是编译时需要的IDE插件,它负责将单个的classes.dex拆分成多个dex文件;而另一部分则是编译进classes.dex的运行时环境,它将classes2.dex, classes3.dex…在运行时加载进来,从而拼合成完整的字节码。
老司机教你 “飙” EventBus 3
EventBus 对于 Android 开发老司机来说肯定不会陌生,它是一个基于观察者模式的事件发布/订阅框架,开发者可以通过极少的代码去实现多个模块之间的通信,而不需要以层层传递接口的形式去单独构建通信桥梁。从而降低因多重回调导致的模块间强耦合,同时避免产生大量内部类。它拥有使用方便,性能高,接入成本低和支持多线程的优点,实乃模块解耦、代码重构必备良药。
那些年我们用过的显示性能指标
从 Android 诞生的那一刻起,流畅度就为众人所关注。一时之间,似乎所有人都在讨论 Android 和 iOS 谁的流畅度更好。但是,毫不夸张的说,流畅度绝对是 Android 众多性能维度中最为奇葩的一个。因为,为了刻画这一性能维度,业界设计了各式各样的指标来对其进行衡量。可以说弄清了这些指标我们就明白了什么是流畅度,可是这似乎并不太容易。
Android存储挖坑记
最近在搞Android存储相关的业务,什么Internal/External/Primary/Secondary搞得我都看懵了,国内也没什么好的文章系统的讲这个,我就挖挖各类资料,整理一下。对于Internal Storage 与 External Storage,官方文档上有这么一段话,描述得很详细了,我翻译了一段下来:所有的Android设备都有两块存储区域:Internal Storage和External Storage。它们的名称来源于早期的Android系统,那时候大家的手机都内置(Permanent)一块较小存储板(即Internal Storage),并配上一个的外置的(Removable)储存卡(即External Storage)。
如何优雅的设计java异常
异常处理是程序开发中必不可少操作之一,但如何正确优雅的对异常进行处理确是一门学问,笔者根据自己的开发经验来谈一谈我是如何对异常进行处理的。由于本文只作一些经验之谈,不涉及到基础知识部分,如果读者对异常的概念还很模糊,请先查看基础知识。
第三方库和SDK中隐藏的性能问题
很难想象现在的 APP 不会使用任何第三方库或者 SDK,毕竟大部分 APP 都会需要进行网络图片加载、闪退追踪、广告或者用户行为分析。这是很有意义的,开发者不应该在每次开发 APP 时都重复造轮子。然而很多第三方库和 SDK 都会导致 APP 启动变慢以及一些其他的性能问题。而这些性能问题通常都很难追踪分析,因为大部分开发者都对第三方库和 SDK 的实现细节了解很少,甚至完全没有了解。
突破App启动时间的极限
开发一个高性能的小规模 APP 很简单,一旦涉及到数据缓存、JSON 解析、不可变对象、依赖注入以及一系列安卓 support 库时,保持 APP 的高性能就变得很有挑战性了。 幸运的是保持 APP 的高性能依然是有可能的,即便我们使用了 RxJava 进行响应式编程,不可变数据对象, Guava 集合,Optional,以及用 Dagger 进行依赖注入。
Flexbox-layout
navi Adds listening capabilities to Activities and Fragments
easydeviceinfo 一个可以很方便的获取一系列设备信息的库
AdvancedRecyclerView
用 Kotlin 实现的支持 Single choice、Multiple choice 和 Sections 的 RecyclerView
android-widget-fanmenu
风扇效果的菜单
Tesela
Tesela simplifies dealing with background threads and UI work in Model-View-Presenter
MaryPopup
可以给View添加展开和关闭动画效果的库
Shuffle
An easy to use swiping-view for Android
GithubWidget
轻量级显示Github用户的贡献、星数、Follower数、热门仓库的App
Android-Coverflow
基于 ViewPager 实现的 cover flow 效果
QuickSand
Automatically manipulates the duration of animations dependent on view count
MusicBobber
Awesome Audio Widget for any Android Music App
EasySplashScreen
Easily create your company splash screen
版权声明:欢迎自由转载-非商用-非衍生-保持署名 | [Creative Commons BY-NC-ND 3.0](http://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh399