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

作者&投稿:闭松 (若有异议请与网页底部的电邮联系)
如何使用Android Studio开发/调试Android源码~

Android源码的编辑和调试和Android Studio没什么关系,一个是系统源代码,一个是用于应用开发的集成工具。
Android Studio是利用SDK框架开发运行于Android系统的应用程序的一个代码编辑工具,编写的程序是运行在装有Android系统的设备或者Android虚拟机上运行的,这个家伙搞出来的都是应用,跟系统源码没什么关系。
Android源码是一个复杂的代码包,没有调试的概念,需要验证就是linux下make,这个需要搭建基于linux系统的编译环境,然后生成系统包,用烧录工具写到硬件设备上,开启设备用串口调试,这个完全是系统层上的东西,跟androidstudio那个编写应用的工具没一毛钱关系。源码编辑一般都是直接用vim看,也有用记事本类的东西。这里边搞的代码,也不只是java的,c++的,xml的,还有什么都不是的脚本什么的。

开发调试环境: 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/studio64.vmoptions(x86的机器修改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社区版开发的)的配置文件
Tips:
AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如:



这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快.
④在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来解决该问题。

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

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


 二、配置AS的JDK、SDK

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


三、生成导入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社区版开发的)的配置文件

Tips:

AS在导入代码时比较慢,建议先修改android.iml,将自己用不到的代码exclude出去.可以仿照过滤.repo文件夹的语法,如:

<excludeFolder url="file://$MODULE_DIR$/.repo" />
<excludeFolder 
url="file://$MODULE_DIR$/abi" />
<excludeFolder 
url="file://$MODULE_DIR$/art" />

这样在导入时就会跳过abi和art文件夹.过滤的越多,AS的处理速度就会越快.


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

如果在导入时AS出现


则建议按照其给定的解决方法来解决



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

①为当前工程设置正确的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时可能会显示成:




怎样使用北斗卫星手机导航用北斗卫星手机导航的方法
使用北斗卫星手机导航前要确定使用的手机是否支持使用北斗卫星导航,你可以直接去ZOL查看手机的详细参数来确定。也可以使用软件AndroiTS GPS Test Pro。现在手机主流的导航还是GPS,如果不设置的话,系统默认使用的就是GPS,因此我们需要使用北斗的辅助软件来完成北斗的使用。先下载安装好AndroiTS GPS Test Pro...

华为p30支持北斗导航吗?
1、华为p30支持北斗导航,北斗默认开启的哦,打开gps直接定位就可以使用。确认手机实际是否可以搜到北斗导航卫星,您可以在应用市场搜索名为【androiTSGPSTest】的测试软件,安装到手机后看搜星结果。如果看到卫星ID是200以上的就是北斗导航在运行。2、事实上目前高通的处理器大部分都是支持北斗的,800系列...

如何创建第一个android程序
创建Android程序需要先安装android的开发环境。分为五个步骤来完成Android开发环境的部署。第一步:安装JDK。要下载Oracle公司的JDK可以百度“JDK”进入Oracle公司的JDK下载页面,选择自己电脑系统的对应版本即可。第二步:配置Windows上JDK的变量环境 。JAVA_HOME 先设置这个系统变量名称,变量值为JDK在电脑上...

中国北斗已启用全球服务,如何使用手机北斗卫星导航?
1.下载三方软件。我们在用北斗导航的时候需要下载软件。毕竟现在手机主流的导航还是GPS,如果不设置的话,系统默认使用的就是GPS,因此我们需要使用北斗的辅助软件来完成北斗的使用。目前可以打开应用商店,搜索AndroiTS GPS Test Pro进行下载。2.打开手机设置导航系统:首先要打开手机的硬件。打开手机设置。找...

怎么查看北斗信号
查看北斗信号的方法,首先在应用商店搜索并下载安装AndroiTS GPS Test Pro软件,打开手机的定位服务功能,打开手机的设置找到定位服务,在定位服务里面选择打开定位,模式选择准确度高;使用A-GPS可以加速定位,然后打开刚安装好的软件,在最下面的菜单栏里面有多种模式,第一个是电子罗盘,第二个可以看到...

如何创建第一个android程序
Package Name :程序包的命名空间,与java或c#类似。你的包名应该定义一个唯一的名字,保证与在androi系统中安装的所有其他包名称不一样。因此,强烈建议以组织或公司的域名或发布者名字开头。在这个项目中,我们使用"com.example.myfirstapp." ,但是,你不能发布以"com.example”为命名空间的应用到Google...

北斗导航说是能用了,就是不说怎么用的,让人火大,本人华为麦芒5,不知道...
华为麦芒5手机支持的导航有GPS\/AGPS\/Glonass\/北斗。想使用北斗的服务不需要刻意下载专门的导航APP,也不用专门的设置,只要设备支持北斗就行。可以网上搜索名为“androiTS GPS”或者“gpstest“的测试软件,安装到手机后看搜星结果。如果看到卫星ID是200以上的就是北斗导航在运行,如下图。

unity3d 怎样发布android程序
Androi sdk下载完毕后,解压,然后运行SDK Manager.exe,在弹出的界面中勾选需要的内容,如下图所示 其中最重要的是Android的版本,这里列出了很多版本,有些文章说,不能单独选择一个4.0以上的版本(不包括4.0),否则发布的时候会报错,但是通过实验,只勾选Android 4.4.2(API19),然后安装也能够...

学生党舍不得卸载的宝藏app
iOS X Androi√ 手机里使用频率最高的一款app! 包含了80多种常用工具,生活日常工具、文字相关工具、图片处理工具等,不用下载免费使用!一个它可以替代很多不常用的app ~ 体积特别小,节省了好多内存! BFT ios √ Android √ 一款可以帮助我们集中注意力提高效率的app!画风特别可爱 ~好好集中完成任务的话还会得到赞...

Androi公司是哪个国家的
尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android...

嘉禾县13670224424: Android Studio怎么用 -
铎狗盐酸: 新建工程 安装完成后,选择默认选项点击OK即可:进入Android Studio,开始界面和Xcode有点类似,点击New project新建一个工程,新建过程和在Eclipse上差不多,这里就不赘述了.下图是开始界面:新建工程完毕后就进入了Android ...

嘉禾县13670224424: 如何用android studio 编写一个app -
铎狗盐酸: Android studio作为面市不久的安卓开发工具,越来越受到大家的喜爱,这里我将介绍如何在Android studio中创建一个APP项目,并在以后经验中介绍其他有关Android studio的操作和编程方法.工具/原料 Android studio 方法/步骤1 打开软件,...

嘉禾县13670224424: 如何使用Android Studio开发/调试Android源码 -
铎狗盐酸: 一、修改Android Studio(以下简称AS)的内存配置因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmopt...

嘉禾县13670224424: linux怎么安装android studio -
铎狗盐酸: 三条命令:sudo apt-add-repository ppa:paolorotolo/android-studio sudo apt-get update sudo apt-get install android-studi

嘉禾县13670224424: androidstudio怎么逐步调试
铎狗盐酸: 1.在android studio中新建默认的android应用app. 2.点击菜单栏的“Run”->“Attach debugger to Android process”. 3.然后会打开“Choose Process”窗口.选中要调试的进程,然后点击ok. 4.console中会输出:Connected to the target VM, address: 'localhost:8601'. 5.transport: 'socket'.说明已经可以进行调试. 6.在MainActivity的第14行打断点,然后运行程序,可以看到程序停在断点上.

嘉禾县13670224424: 如何从Eclipse中导入第三方库到Android Studi -
铎狗盐酸: 如何从Eclipse中导入第三方库(并且是带有JNI的)到Android Studio开发工具中?这里提供一种解决途径:一.直接导入源项目 二.带有JNI的第三方Library可能会报错1.报NDK的路径找不到的错误 解决:在整个项目的local_properties中填写...

嘉禾县13670224424: android studio linux 怎么安装 -
铎狗盐酸: 1、下载JDK ,我下载的是jdk-7u51-linux-i586.tar.gz我这里有jvm文件夹,直接cd过去:$ cd /usr/lib/jvm/ 拷贝下载的jdk-7u51-linux-i586.tar.gz到jvm文件夹:$ sudo cp ~/下载/jdk-7u51-linux-i586.tar.gz /usr/lib/jvm 解压:$ sudo tar -zxvf jdk-7u51-linux-i...

嘉禾县13670224424: android studio 怎么使用genymotion模拟器 -
铎狗盐酸: 1、注册(Genymotion是要注册才能使用的)2、下载免费版本,选择左边那个有virtualBox的,下载好就可以2、下载好后就点击安装(会安装两个软件,一个是Genymotion,另一个是VirtualBox虚拟机),一定的记住Genymotion的安装路径 ,...

嘉禾县13670224424: 用惯了 ADT 的人怎么快速适应 Android Studio -
铎狗盐酸: AS和ADT差别还是很大的,但是AS有很多方便的设置来是你快速的学习和适应新的开发工具,个人建议赶学习AS并使用它作为日常的开发工具.首先你肯定要心态上确定以后要使用AS开发,那么首先了解一下AS的好处. AS的优势: 1、...

嘉禾县13670224424: 用惯了ADT的人怎么快速适应Android Studio -
铎狗盐酸: 先忘掉快捷键,找个快速入门教程,写几个小程序找下感觉,用个两三天就会觉得还可以,然后慢慢熟悉下菜单和快捷键,我eclipse用了3年多了,现在用android studio几个月了,整体感觉还是相当不错的,值得花精力. 从另一个角度说,android studio是大趋势,估计迟早是要转过来的,现在studio的完成度已经相当高了,大功能上的缺陷也就还不支持ndk,一般的应用开发我觉得已经可以尝试用studio了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网