NimbleDroid 2016年3月产品更新
过去的一个月中,我们加入了很多激动人心的新特性,同时也包括一系列提升NimbleDroid用户体验的更新。内存泄漏NimbleDroid早已提供检测速度相关问题的功能,现在我们加入了检测内存泄露的新功能。我们会报告对已销毁的Activity的引用情况,这些引用已销毁Activity的对象会导致Activity对象无法被垃圾回收,即内存泄漏。Activity对象的泄露在安卓平台是非常严重的bug,因为...
View ArticleFive Lesser-Known Ways to Hang Your Main Thread
By now, most Android Developers already know that the main thread of an app is the one that handles user interaction, and should consequently be considered off-limits for time-consuming work. In...
View Article5个导致主线程卡顿较鲜为人知的元凶
广大安卓开发者都知道主线程是APP用来响应用户交互的线程,因此应该避免执行耗时操作。通常来说,耗时方法导致主线程卡住超过16*N毫秒时,APP界面将会丢掉N帧。让我们把这些耗时长的方法称作卡顿函数(Hung Method)。在本文中,我们首先看一个典型的卡顿函数案例,接着仔细分析5个较鲜为人知的导致主线程卡顿原因。Hollister中一个卡顿函数的例子让我们分析一下Hollister...
View ArticleWhy Is ClassLoader.getResourceAsStream So Slow in Android?
Through our extensive analysis at NimbleDroid, we’ve picked up on a few tricks that help prevent monolithic lags in Android apps, boosting fluidity and response time. One of the things we’ve learned to...
View Article揭秘在安卓平台上奇慢无比的 ClassLoader.getResourceAsStream
我们 NimbleDroid 经过大量的分析,发现了一些避免 APP 整体变慢,让 APP 快速启动以及迅速响应的技巧。其中有一个就是奇慢无比的 ClassLoader.getResourceAsStream函数,这个函数可以让 APP 通过名字访问资源。在传统的 Java 程序开发中,这个函数用得非常普遍,但是在安卓平台上,这个函数在第一次调用时执行时间非常长,会严重拖慢安卓 APP...
View ArticleNimbleDroid Product Update, April 2016
This month we have a mix of new features, many of them focused on making NimbleDroid’s UI more enjoyable to work with.Saving App Test CredentialsWe’ve always allowed users to include app test...
View ArticleNimbleDroid 2016年4月产品更新
这个月我们发布了一系列的新特性,大部分主要关注于让 NimbleDroid 的 UI 更便于使用。测试凭证(Test Credentials)的保存我们以前就允许用户在上传 APK 时同时上传测试凭证,这次我们允许用户保存一个测试凭证,并默认用于其他 APP。它将默认应用在 gradle 上传的 APK 中,也会在用户上传测试凭证时提供保存选项。方法数统计、APK...
View ArticlePushing the Limits of App Startup Time
(This is a guest post by Mikhail Nakhimovich. By day Mikhail Nakhimovich is an architect of the award winning New York Times Android App and by night he writes about Android and helps startups create...
View Article突破App启动时间的极限
(这篇文章由 Mikhail Nakhimovich 发布。Mikhail Nakhimovich 白天在屡获殊荣的纽约时报安卓 APP 团队担任架构师,晚上则撰写安卓 APP 开发相关的文章,以及在 Friendly Robot团队帮助开发者开发高性能、用户体验优良的 APP。 )开发一个高性能的小规模 APP 很简单,一旦涉及到数据缓存、JSON 解析、不可变对象、依赖注入以及一系列安卓...
View ArticlePerformance Problems in Libraries and SDKs
It’s difficult to imagine modern android apps that don’t implement some external libraries or SDKs. After all, most apps have to leverage some combination of network image loading, crash tracking,...
View Article第三方库和SDK中隐藏的性能问题
很难想象现在的 APP 不会使用任何第三方库或者 SDK,毕竟大部分 APP 都会需要进行网络图片加载、闪退追踪、广告或者用户行为分析。这是很有意义的,开发者不应该在每次开发 APP 时都重复造轮子。然而很多第三方库和 SDK 都会导致 APP 启动变慢以及一些其他的性能问题。而这些性能问题通常都很难追踪分析,因为大部分开发者都对第三方库和 SDK 的实现细节了解很少,甚至完全没有了解。第三方库和...
View ArticleFive Common Issues That Slow Down Your App
In the last couple of months, we’ve been describing a handful of common issues that slow down your Android app based on our analysis using NimbleDroid. We conclude this series of posts by summarizing...
View ArticleNimbleDroid Product Update, May 2016
This month we’ve been primarily focused on improving the more hidden parts of NimbleDroid, as well as laying the groundwork for some exciting features coming next month. For now, here are a couple of...
View ArticleEight Ways Your Android App Can Leak Memory
One advantage of a garbage-collecting-language like Java is that it removes the need for developers to explicitly manage allocated memory. This reduces the likelihood of a segmentation fault crashing...
View Article常见的八种导致 APP 内存泄漏的问题
像 Java 这样具有垃圾回收功能的语言的好处之一,就是程序员无需手动管理内存分配。这减少了段错误(segmentation fault)导致的闪退,也减少了内存泄漏导致的堆空间膨胀,让编写的代码更加安全。然而,Java 中依然有可能发生内存泄漏。所以你的安卓 APP...
View Article拖慢 APP 启动的 5 个常见问题
在过去的几个月里,通过 NimbleDroid的分析,我们分享了很多导致安卓 APP 运行变慢的常见问题。在本文中,我们把这些问题总结如下。Java 发射的使用。在 Java 和安卓开发中,反射是非常有用的特性。但是如果使用不当,反射往往是导致安卓 APP 严重性能问题的元凶。例如,你使用 Gson 来序列化/反序列化大量的数据,使用反射的 adapter 会严重拖慢你的 APP。请使用自定义的...
View ArticleNimbleDroid 2016年5月产品更新
这个月我们主要聚焦于改进 NimbleDroid 中用户无法直接感知的部分,同时也为下个月将要发布的令人振奋的特性做好准备工作。现在,有以下几点可以感知到的提升。更好的上传管理功能我们有很多用户都在使用 Gradle 插件自动上传功能了,或者是在调研 NimbleDroid 时上传了一些测试版本的 APP。由于有的用户希望可以删除指定上传的分析结果,我们在 APP 页面的上传 tab...
View ArticleApp Diets are not a Fad
(This is our second guest post by Mikhail Nakhimovich. By day Mikhail Nakhimovich is an architect of the award winning New York Times Android App and by night he writes about Android and helps startups...
View ArticleApp瘦身不只是一个传说
(这是来自 Mikhail Nakhimovich 的第二篇文章。Mikhail Nakhimovich 白天在屡获殊荣的纽约时报安卓 APP 团队担任架构师,晚上则撰写安卓 APP 开发相关的文章,以及在 Friendly Robot团队帮助开发者开发高性能、用户体验优良的 APP。)在上一篇文章中,我们探究了一套能保证近乎完美的 APP...
View ArticleEight Ways Your Android App Can STOP Leaking Memory
In part one of this blog post “Eight Ways Your Android App Can Leak Memory”, we went over eight different ways your code can cause your Android application to leak memory. Specifically, all eight leaks...
View Article