标签归档:Android Studio

CrashWoodpecker

enframe_2015-09-02-17-51-03

因为我的 Android Studio 在使用的过程中, 经常会出现 App 崩溃了, 而 AS 自带的 logcat 并没有搜集到异常信息, 特别烦恼, 怎么折腾怎么重连都不痛快, 特别是对于那种 “启动崩” 的异常, 很难马上捕捉到, 丢失也是经常的.

所以我做了这么一个库, 仿造 Square 检测并展示内存泄露的 LeakCanary. 当开发过程中, 如果有没有处理的异常导致 crash, 使用了 CrashWoodpecker 以后, 便会起一个新的美观页面, 以很友好的方式即时展示异常信息. 更多内容可以参看一下我写在 GitHub 的文档:

CrashWoodpecker

An uncaught exception handler library like Square’s LeakCanary.

Getting started

NOTE: There is a big bug before VERSION 0.9.5, QAQ thank goodness, it has been fixed in version 0.9.5, please update to 0.9.5+.

In your build.gradle:

dependencies {
  debugCompile 'me.drakeet.library:crashwoodpecker:0.9.7'
  releaseCompile 'me.drakeet.library:crashwoodpecker-do-nothing:0.9.7'
}

In your Application class:

public class ExampleApplication extends Application {

  @Override public void onCreate() {
    super.onCreate();
    CrashWoodpecker.fly().to(this);
  }
}

And in your AndroidManifest.xml file:

<application
    android:name=".ExampleApplication" // <-- 
    ...
    ...>
</application>

That is all! CrashWoodpecker will automatically show an Activity when your app crash with uncaught exceptions in your debug build.

7BDF054B-21AE-4A66-ACBF-6A51B1A0FA96

Demo apk download: LittleWood.apk

源代码: https://github.com/drakeet/CrashWoodpecker

拿到一份开源项目,快速定位感兴趣的功能代码

现在越来越多的开源项目了,令人收藏不暇,有时只是觉得对方的某个 feature 特别喜欢,但很多人可能打开了其代码找了半天找不到关键所在。其实,如果运用了 Android Studio 带给我们的一些查找功能,任何一份新的开源代码摆在我们眼前,我们都可以快速定位到感兴趣的功能代码。

所以,今天我来分享一下这个经验,造福人间2333,以两个例子做说明吧:

一、快速定位 BlackLight 的「收藏微博」功能代码

Snip20150425_1说明:BlackLight 是一个 Material Design 的微博客户,更多介绍可以看这个帖子:一个 Material Design 的微博客户 。我是前天拿到它的源代码的,我想把它微博信息页面中的收藏微博功能提取出来,做一个快捷收藏的功能……它的代码量不小,你不知道作者给这个页面取名叫什么 Activity,你也不知道你就算找到这个 Activity,再要定位到这个具体地方要多久(这个例子是针对 option menu,原本如果手动定位,也是比较简单的,但大部分没那么容易)。

关键点1:对于整个项目源代码进行「find in path」查找这个功能的字符串「收藏微博」四个字,如下:

Snip20150425_2

出来的结果是,找到了,并且找到的位置是在 strings.xml 文件中:
继续阅读

Android Studio 简介及导入 jar 包和第三方开源库方法

Android Studio 简介

几天前的晚上突然又想使用 Android Studio,结果竟然把之前无法攻克的问题全都解决了,包括之前很困扰的第三方开源库的引入问题,现在也都很轻松了,所以 eclipse 的工作几乎都可以转移过去。并且试用了一晚上,比 eclipse 强大多了!看来,eclipse For Java & Android 的地位毫无疑问终将被 IntelliJ IDEA 所取代,而 Android Studio 也正是基于 IntelliJ IDEA 开发的,并且我的驱动力主要是,开源社区都越来越偏向 Android Studio 了,不管是第三方库还是一些开源项目,都在朝着这个方向,因此做安卓的话,肯定要尽早使用 AS。

之前和龙妹在 Android Studio 0.4 版本折腾了一晚上,都没能完全搞定完整的项目转移,其中最大的障碍就是一些开源库难以导入使用。这一次谷歌更新了新版 0.8 版本,不仅支持最新的 Android L,而且懂得了 gradle 之后导入 jar 包以及开源库也变得简单了。

导入 jar 包及第三方开源库教程

jar

导入 jar 包的方式非常简单,就是在项目中的 libs 中放入你需要导入的 jar 包,QQ截图20140710123408然后右键你的 jar 文件,选择“add as a library”即可在你的项目中使用这个 jar 包了。 这个方式虽然简单,但用处很大,不仅仅能导入一些普通 jar 包,还可以作为一些不支持 Android Studio 的开源库的使用的解决方案,就是说,你把你需要使用的开源库的 jar 包拿出来,导进来即可,因为通常我们使用开源库并不会去修改其源代码。其 jar 包你可以自己用 eclipse 生成,也可以在开源库地址找到,因为一般都会同时提供 release 版本。

但如果 gradle 中已经有如下代码:

compile fileTree(include: ['*.jar'], dir: 'libs')

就不用再 add 了,Sync 一下 gradle 就可以了。
继续阅读