使用Android Studio导入源码

2-1 基础准备工作

首先你得安装配置了Android Studio,具体不明白的参考《Android Studio入门到精通 》

接着你得下载好了源码Code,至于如何下载这里不再说明,比较简单,上官网查看就行了。

其次你需要保证源码已经被编译生成了out相关目录文件。

好了,如上就是一些基本准备工作,针对定制源码或者原生源码来说,这些准备步骤都是必须的,没必要再强调了。

2-2 配置导入及使用

2-2-1 编译源码idegen模块及生成AS配置文件(*.ipr)

在开始编译idegen模块前,你一定知道需要先全局编译出out目录及相关文件吧,这个不再过多说了,我们通过如下命令编译idegen模块:

mmm development/tools/idegen/

这行命令的意思是编译idegen这个模块项目,然后生成idegen.jar文件(不信你自己去查看这个模块的Android.mk的目标吧,不多解释)。运行完以后如果看到如下信息则说明编译OK:

...

make completed successfully (7 seconds)

接着执行如下脚本:

development/tools/idegen/idegen.sh

这行命令的意思是在根目录生成对应的android.ipr、android.iml IEDA工程配置文件。等待片刻得到类似如下信息说明OK:

Read excludes: 21ms

Traversed tree: 194799ms

通过如上操作我们就完成了基本的源码配置工作。

2-2-2 导入Android Studio前的一些客户化操作

大家都知道使用Eclipse倒入源码很慢,Android Studio导入源码时也慢,所以建议修改android.iml文件(将自己不用的代码去掉),然后再导入Studio。

就像下面摘取的android.iml文件1887行开始的这些一样:

我们可以仿照上面这段代码的<excludeFolder url="file://$MODULE_DIR$/.repo"/>写法一样过滤掉不需要的内容,这样在导入时就会快很多。

也可以通过Android Studio的Project Stucture 打开左侧Modules,然后将右侧Sources中一些目录Excluded掉。

2-2-3 使用Android Studio导入源码工程

有了如上的这些操作以后,我们打开Android Studio,然后选择打开一个现有的Android Studio项目,然后选择打开源码根目录下的android.ipr文件,然后出现如图一样的索引即可等待导入就行:tu

到目前为止我们就可以方便的使用Android Studio查看源码啦。如下图所示:

吊不屌!!!

2-3 使用技巧

上图我们看见了,可以通过Android Studio搜索整套源码的代码了。但是这时候如果你打开一个Service.java类,然后把鼠标放在其中任意方法的Intent参数上按住CTRL+鼠标左键跳转到Intent类你会发现跳转过去的是一个Intent.class文件,为啥呢?因为他跳转的是你的默认SDK中的jar内部的class文件。既然要修改查看整套源码,这么跳转得多蛋疼啊,所以我们需要配置让其能跳转到Intent.java文件,具体做法如下:

首先删掉依赖中的所有依赖,只保留下图中没被选中的那两个(当然你可以选择保留一些你用到的其他jar),如下:

接着点击加号的JARs or directories将你源码的frameworks及external和你用到的其他跳转目录添加到依赖中,然后apply即可。

这时候我们在像上面一样打开Service.java跳转Intent,你会发现像下图一样直接跳转到你源码路径下的Intent.java文件了,如下:

到此对于平时只是查看源码的人来说已经够用了。

3 总结


俗话说工欲善其事必先利其器,你会发现使用Android Studio比Eclipse和Source Insight都好很多(当然了,SubText还是很强大的),无论是代码提示还是跳转、还是Python Shell等插件支持等都很强大,慢慢体验吧。

顺带说一句,Google的野心真的很大,看来Android Studio即将要被他们打造为全能IDE了。

4 附加README


附上原版的英文README文档,英语高手直接看这里就行:

IDEGen automatically generates Android IDE configurations for IntelliJ IDEA

and Eclipse. Your IDE should be able to compile everything in a reasonable

amount of time with no errors.

If you're using IntelliJ...

If this is your first time using IDEGen...

IDEA needs a lot of memory. Add "-Xms748m -Xmx748m" to your VM options

in "IDEA_HOME/bin/idea.vmoptions" on Linux or

"IntelliJ IDEA.app/Contents/Info.plist" on OS X.

Create a JDK configuration named "1.6 (No Libraries)" by adding a new

JDK like you normally would and then removing all of the jar entries

under the "Classpath" tab. This will ensure that you only get access to

Android's core libraries and not those from your desktop VM.

From the project's root directory...

Repeat these steps after each sync...

  1. make (to produce generated .java source)

  2. development/tools/idegen/idegen.sh

  3. Open android.ipr in IntelliJ. If you already have the project open,

hit the sync button in IntelliJ, and it will automatically detect the

updated configuration.

If you get unexpected compilation errors from IntelliJ, try running

"Build -> Rebuild Project". Sometimes IntelliJ gets confused after the

project changes significantly.

If you're using Eclipse...

If this is your first time using IDEGen...

Edit eclipse.ini ("Eclipse.app/Contents/MacOS/eclipse.ini" on OS X) and

add "-Xms748m -Xmx748m" to your VM options.

Configure a JRE named "1.5 (No Libraries)" under "Preferences -> Java ->

Installed JREs". Remove all of the jar entries underneath "JRE system

libraries". Eclipse will not let​

you save your configuration unless at

least one jar is present, so include a random jar that won't get in the

way.

From the project's root directory...

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

t directory...

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

[外链图片转存中...(img-inSl6a3r-1719097814499)]一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

相关推荐
阿华-vitor2 小时前
自定义控件之动画篇(六)——联合动画的代码及xml实现
android·xml·gitee
baozongwi4 小时前
ctfshow web sql注入 web242--web249
android·数据库·经验分享·sql·mysql·web安全
Dnelic-4 小时前
Android 15 应用适配默认全屏的行为变更(Android V的新特性)
android·ui·view·应用开发·android 15·android应用开发
svygh1236 小时前
安卓h5打包系统设计
android·html5·打包
人民的石头7 小时前
Android studio 打包低版本的Android项目报错
android·ide·android studio
鸿儒5177 小时前
C++ Linux调试(无IDE)
linux·c++·ide
xiangxiongfly9158 小时前
Android 换肤之主题换肤
android·换肤·主题换肤
Freeze-hu13 小时前
qt for android 工程添加AndroidManifest.xml 文件
android·xml
夜色呦16 小时前
探索Jupyter Notebook的数学美学:LaTeX公式的优雅之旅
ide·python·jupyter
H10016 小时前
手机系统设置选项
android