zoukankan      html  css  js  c++  java
  • 如何使用Android Studio开发/调试Android源码

    如何使用Android Studio开发/调试Android源码

     

    本文是以源码中development/tools/idegen/README作为指导文档.

    环境: Ubuntu 14.10,openJdk 1.7,Android Studio 1.0.2,android-5.0.1_r1源码

    由于AS是基于IntelliJ IDEA开发的,所以本文也适用于IntelliJ IDEA

    一、修改Android Studio(以下简称AS)的内存配置

    因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio.vmoptions中-Xms和-Xmx的值。文档中使用的是748m, 可自行修改。

     二、配置AS的JDK、SDK

    在IDE中添加一个没有classpath的JDK, 这样可以确保使用源码里的库文件

     

    并将其作为要使用的SDK的Java SDK。如下图

    三、生成导入AS所需配置文件(*.ipr)

    ①编译源码(为了确保生成了.java文件,如R.java;如果编译过,则无需再次编译)

    ②检查out/host/linux-x86/framework/目录下是否有idegen.jar

    如果idegen.jar不存在,执行:

    mmm development/tools/idegen/

    在5.0.1的源码中会生成res.java的文件夹,导致idegen.jar运行时抛FileNotFoundException,这是idegen的代码不够严谨造成的。

    我的分享里有修改这个bug的patch,或者直接使用我分享的idegen.jar。

    ③执行

    development/tools/idegen/idegen.sh

    等待出现类似下面的结果:

    Read excludes: 5ms
    Traversed tree: 44078ms

    这时会在源码的根目录下生成android.ipr和android.iml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社区版开发的)的配置文件

    ④在AS中打开源码根目录下新生成的android.ipr

    如果在导入时AS出现

     则建议按照其给定的解决方法来解决(网址:http://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit),具体内容如下图:

    四、解决源码中跳转错误问题

    ①为当前工程设置正确的SDK和JDK

    ②设置'Modules'的依赖

    先将所有依赖删掉,只留下上图'1'所指向的两个(注意:这里删除全部只是为了方便。如果确实用到了.jar,在将它们的路径添加进来就可以了.

    如:5.0.1的ContactsCommon用到了geocoder-2.9.jar和libphonenumber-6.2.jar)

    点击上图中'2'指向的'+'并选择上图'3'指向的'Jars or directories'选项,依次将frameworks和external文件夹添加进来.如:

    其它版本的代码在添加frameworks时可能会显示成:

    没有关系,只是显示问题,点击OK还是会把frameworks路径添加进去的.

    如果还有代码跳转错误,请仿照上面的步骤将相应代码的路径或jar文件添加到其Dependencies标签页中即可.

    五、DEBUG源码

    我们可以通过给刚导入的工程在'Modules'中添加'Android Framework'来让AS将它作为一个Android工程,从而方便我们调试代码.

    可以按照上图中'1'和'2'来添加Android Framework支持.

    在代码中加断点,然后选择'Run'->'Attach debugger to Android process'或者直接点击下图所示的图标

    在弹出的选择进程(Choose Process)对话框中,勾选显示所有进程,选择要DEBUG的代码所在的进程,点击OK即可.

    六、其它

    代码中很多地方提示Call requires API Level x.... 出现这个问题是因为AS将我们的工程当做安卓应用程序工程了,且源码中没有指定minSdkVersion.

    我们只需在源码根目录加一个声明minSdkVersion的AndroidManifest.xml文件即可(分享了一个AndroidManifest.xml)。

    也可以考虑使用build.gradle来解决该问题。

     

    文中所使用的文件地址:http://yunpan.cn/cf3MBa2688eBw (提取码: 64e5)

  • 相关阅读:
    让我一生一世呵护你
    看美女无数
    跨越人生五个修炼爱上这个诡秘的人生
    太空欢迎你
    只要你记得我的好
    最美的十大精典爱情句子
    袁桂英(帮别人名字作诗)
    张紫秋(帮别人名字作诗)
    爱情是毒药
    博客文化将成为草根崛起的一片热土
  • 原文地址:https://www.cnblogs.com/dongweiq/p/4179687.html
Copyright © 2011-2022 走看看