`
sammor
  • 浏览: 413744 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Android源码下载及开发环境的搭建

 
阅读更多

1、前言

        前一博文给自己列了一下Android的学习计划,是时候一个个的完成了。如计划列的,我要写的第一篇是《Android源码的下载及开发环境的搭建》,致于如何去下载源码,其实网上已经一大堆的帖子了,一搜就有。但在这里,我想说,一个源码的下载,不是简单的把源码下载下来之样就OK了,就可以开始你的源码学习之旅。要想更好的学习源码和进行开发,一个适合自己的开发环境还是必不可少的,这里我会列出来我给自己准备的开发环境的做法,不能说明是最优的,但至少我感觉对我来说还是挺方便的。
 

2、硬件环境准备

         Android源码的开发环境,对机子的要求还是挺高的。首先,源码的大小就接近10G,编译完之后,占用的空间骤增到逼近20G了。而源码的编译过程中,而且还有一种可能是在编译的时候报错了,编译就这样中断了,一直找不到原因的所在,却万万没想到,自己虚拟机的内存分配太小了,导致编译失败。一增大分配的内存大小,就正常的编译过去了。
        自我全用的感觉,如果是虚拟机里面安装的话建议如下:
        1、虚拟机里分配的硬盘大小至少60G(可设置为动态增长就好了) ;
        2、内存大小分配至少1.5G(自家的电脑就2G而已,为止又买了个4G的);
        但如果是双系统的,那就不用说了。
        
        Android源码如官网介绍的在linux和mac系统环境下进行下载,Windows还是不支持哦。
 

3、Android 源码下载

        这里简单的弄出源码下载的一些步骤,可以完成ubuntu环境下的下载,而对于Mac系统或是更多详细的环境下载信息,可以在Android官方网站上查看http://source.android.com/source/initializing.html。

3.1 Android 源码编译环境准备

3.1.1 JDK安装
        由于sun 的已经不再存在于ubuntu的主要包分支中,所以为了下载它,需要添加源路径,以便下载到正确版本的JDK。ubuntu里面自带安装的openjdk会导致Android编译失败。
 
java 6: Android2.3及以上版本
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" 
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
 
3.1.2 添加需要的包
 
64位系统:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \   zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \   x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \   libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \   libxml2-utils xsltproc
对于ubuntu 10.10:
$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
对于ubuntu 11.10:
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
 
32位系统:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \ 
  zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
  libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
  libxml2-utils xsltproc
    以上的方式可以正常的在ubuntu下完成源码编译环境的设置。完成以上的步骤设置,就可以接下来的源码下载了。这个时候无法去确认,只能在源码的编译过程中,碰到了错误,再来解决问题。
 
3.2 源码下载
 
    P.S:有此时候,环境需要设置上网代理。这里需要在终端里面进行代理设置,否则是不能正常的进行下载操作。
    设置代理在终端上设置:
    $export http_proxy=http://username:pwd@yourproxyaddress:proxyport
    $export https_proxy=https://username:pwd@yourproxyaddress:proxyport
    #查询是否设置成功可以使用echo命令打印出刚设置的代理,或可以正常显示出设置的值说明,已经设置完成。
    $echo $http_proxy
    $echo $https_proxy
   
 
3.2.1 下载repo
    由于Android源码内容及模块很多,谷歌使用了git的版本控制工具,并对不同的模块设置不同的git服务器,又自行研发了repo工具,把上百的git工程,统一起来。只需要一个repo文本,便可以从上百的git服务器,取到完成的Android源码。
    在用户目录下,创建bin文件夹,用于存放repo,并把该路径设置到环境变量中:
$ mkdir ~/bin 
$ PATH=~/bin:$PATH
        下载repo的脚本,用于执行repo.
 
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo 
$ chmod a+x ~/bin/repo


 
以上为正常的下载完成的效果。
 
3.2.2 初始化一个repo的客户端
 
      创建一个空的目录,用于存放android源码。
$ mkdir myandroid
$ cd myandroid
在上面创建的目录下运行repo进行下载源码:
    下载主线分支,主分支里面包含着最新修改的bugs,并未正式发出版本的最新源码。
    下载其他分支,正式发布的版本,可以通过添加-b的命令下载下来。
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
以上操作初始化了一个repo客户端,设置分支的方向。
出下以下信息,说明了已经在正常的进行客户端下载操作。
 
在下载过程中会需要填写Name及Email,填写完之后,选择Y进行确认。
 
最后,提示repo初始化完成在所在的目录下,这里也可以看到当前的目录下有一个隐藏文件.repo/ 这个文件里面设置着一些初始化的信息。
 
 
接下来就是代码同步的过程了,这个过程很漫长,也需要很有耐心。
虽然只是一个简单的命令,即:
$ repo sync
 
效果如下:(若出现了new branch 、new tag说明已经在正常的同步过程了)这时只需要等待其完成,这个同步的时间会很久,因为Android的代码全部下载下来了,也包括着其他的分支。整个源码大概会有16G左右,惟有等待了,但这个时候可以用来准备一下开发环境。
 
   下载一个漫长的过程,在下载的过程中,有可以会有中断的情况,这时需要重新的repo sync,进行继续的同步了。下载完成的最后,会有许多100%的下载成功的提示,
 
3.3.1 构建本地开发分支
        主要是构建本地开发分支,在本地的开发分支上可进行添加和修改自己想要的代码。
      
       在源码的根目录下
$git --git-dir .repo/manifests/.git/ branch -a 
 
  
         以上这些就是分支的名称,当希望去切换到其他分支上的时候,这里以切换到android-4.0.3_ri,并创建自己的开发分支为例如下:
$repo init -b android-4.0.3_r1#初始化客户端到某一分支 $repo sync #进行同步,此时更新的速度比一开始的源码下载要快得多了,大概个把小时可完成 $repo start myandroid4.0.3 --all #构造本地分支,取一个分支名称myandroid4.0.3 $repo checkout myandroid4.0.3 #检出到自己创建的分支上。 

 
4、开发环境搭建       
 
4.1 开发环境搭建结构图
 


 
 
图4-1 Android源码开发环境搭建
 
       上图画出我在对Android源码上的学习和工作上所设置的开发环境。这是目前为此我感觉比较合适的方式。
        对于上面的几点,解决以下几点:
        1、为何不直接在ubuntu环境下直接去使安装eclipse就好了?
        理由: 对于我个人来说,编辑和修改代码还是习惯于window环境下,ubuntu里面的环境只是个别情况下才去进行编译,这里面所设计的开发环境适用于习惯基于window下写代码的,如果可本身就已经习惯在ubuntu下进行开发,可直接在ubuntu里面安装eclipse即可。
        2、为什么使用samba来映像挂载,而不是使用mount,直接把window下的目录直接挂载到ubuntu上就好了?
        理由:如果以mount的方式,把window的目录挂载到ubuntu上,再把源码移至挂载的目录上,就会发现,复制或移动的过程中,会报出文件已经存在的现象,提示是否替换。这个原因很简单,windows下的文件系统对文件名的大小写不敏感,对于它来说a.txt和A.txt其实是同一个文件,而对于linux系统来说a.txt和A.txt则是两个不同的文件。Android源码也正因为有这样的同名却大小写一致的情况,所以只能支持在ubuntu环境下。这时就需要把ubuntu环境下的目录给挂载出来,以samba挂载出来的目录实为ubuntu下的,所以其文件系统是基于linux的。这样的方便不会导致破坏源码的现象.
        3、为何这里要使用Xmanger工具。
        理由:工具只是为了提高工作效率,Xmanger工具里面包含着很多实用的小工具,包括Xshll,Xftp等终端命令访问和文件操作,更方便的避免了windows和ubuntu的切换而浪费的时间。Xshell只是作为windows下的窗体,方便窗口间的切换。
 
 
4.2 samba环境搭建
 
4.2.1 安装samba与smbfs
sudo apt-get install samba
sudo apt-get install smbfs
 
4.2.2 创建共享的文件夹
        对于网络映射可见的文件夹目录,放在这文件夹里面的文件可被访问到。
mkdir /home/sammor/share
chmod 777 /home/ray/share #设置文件夹的权限为777
 
4.2.3 备份并编辑smb.conf允许网络用户访问
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
sudo gedit /etc/samba/smb.conf
      搜寻以下一行文字
; security = user
      改为:
security = user
username map = /etc/samba/smbusers
        将下列几行新增到文件的最后面,假设允许访问的用户为:nancy。而文件夹的共享名为 share
[Share]
comment = Shared Folder with username and password
path = /home/sammor/share
public = yes
writable = yes
valid users = sammor
create mask = 0700
directory mask = 0700
force user = sammor
force group = nogroup
available = yes
browseable = yes
        找到[global]把 workgroup = MSHOME  改为:
workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
    上面假设新增加的用户名为nancy,故现在需要添加该用户
sudo useradd nancy
sudo smbpasswd -a nancy
sudo gedit /etc/samba/smbusers
在新建立的文件中加入下面的一行并保存
nancy = "network username"
删除网络上用的帐号的命令把 -a改为-x
sudo testparm #如果显示出之前设置的信息,即成功设置上了
sudo /etc/init.d/samba restart #有可能找不到对应的文件,但此时已经成功启动了。
 
4.2.4 win7/xp中创建映射网络
        计算机—>右击“映射网络驱动器”—>填写虚拟机中的IP及对应的共享的文件share,确定之后需要填写网络上的帐号和密码(即上面创建的为nancy用户),如果顺利的话,可以连接上,这时在此映射文件夹里面,创建和修改的文件可以在ubuntu系统里面看到了。
 
        后面的三行是为了防止出现中文目录乱码的情况。其中根据你的local,UTF-8 有可能需要改成 cp936。
 
4.3 源码导入eclipse
 
4.3.1 设置eclipse的相关配置
       进入eclipse的安装目录中,找到eclipse.ini文件,修改该文件中的。       
-Xms40m 
-Xmx256m 
-XX:MaxPermSize=256m
       
       为能支持Android源码查看,改为:
-Xms128m 
-Xmx512m 
-XX:MaxPermSize=256m
4.3.2 提取android对eclipse的支持的配置文件
 
从android源码的路径中找到

 
把.classpath复制到源码的根目录上,为了导入eclipse作准备。
 
而对于android-formatting.xml、android.importorer,导入eclipse中。
 
打开eclipse,在eclipse中
1、 Window > Preferences > Java > Code Style.
2、 Formatter > Import to import android-formatting.xml.
3、Organize Imports > Import to import android.importorder.
 
4.3.2 修改.classpath
        对于eclipse,每一个工程都对应着一个.classpath,而android源码中,也已经准备好了该文件。但这里需要对.classpath文件进行确定每一个目录路径是否存在,否则可能会导入工程时产生源码的影响。因为工程还未进行编译,帮这里面主要不存在的路径是out/目录。
 

  
4.3.3 创建工程,导入源码
        
        使用eclipse的java project的方式进行项目工程创建,而不是用Android project的方式(该方式会破坏源码的结构)。
        1、  File > New > java  project.
        2、 取工程名,并引导指定源码存在的路径。
        3、 直接Finish进入,并等待完全结果。
       

     
4.3.4 源码的修改
        当外面repo sync去更新码时,需要在eclipse进行同步变化,则需要:
        1、Window > show View > Navigator
        2、在该视图下面,右击对应的工程名字
        3、点击refresh进行更新
         
reference
1、android源码:http://source.android.com
 
  • 大小: 6.6 KB
  • 大小: 5.7 KB
  • 大小: 14.2 KB
  • 大小: 66.7 KB
  • 大小: 25.7 KB
  • 大小: 20.6 KB
  • 大小: 100.8 KB
  • 大小: 14 KB
  • 大小: 60.4 KB
  • 大小: 4.6 KB
分享到:
评论
2 楼 ajax_xu 2013-12-02  
这样的好文章必须顶啊!
1 楼 xiaobei3120 2013-11-18  
楼主写的很好!
对于我这样刚要开始接触源码的人很有帮助。
楼主能否继续更新博客

相关推荐

    Ubuntu中Android开发环境的搭建以及源码下载

    完成以上步骤后,你就成功地在Ubuntu中搭建了Android开发环境并下载了Android源码。现在你可以开始进行Android应用的开发或者对Android系统进行修改和研究了。记得保持环境的更新,以适应最新的Android版本和开发...

    Android应用源码之Android开发环境搭建.zip

    这份"Android应用源码之Android开发环境搭建.zip"文件显然包含了有关如何配置一个完整的Android开发环境的详细步骤和可能的源代码示例。下面将详细介绍这个过程,包括必要的工具、步骤以及一些关键知识点。 首先,...

    完整的 ubuntu android 源码环境搭建

    本文将详细介绍如何在 Ubuntu 10.04 操作系统上搭建基于 Eclipse IDE 的 Android 源码开发环境。整个过程分为几个步骤:获取源码、编译源码前的准备、编译工程、解决编译过程中可能出现的问题、配置 Eclipse 作为 ...

    Android开发环境搭建全程演示(jdk+eclip+android sdk)

    在Android应用开发中,搭建一个合适的开发环境是第一步。本文将详细介绍如何一步步配置Android开发环境,包括安装JDK、设置Eclipse以及获取和配置Android SDK。这个过程对于初学者至关重要,因为只有正确地搭建了...

    Android应用源码之1.Android开发环境搭建.zip项目安卓应用源码下载

    Android应用源码之1.Android开发环境搭建.zip项目安卓应用源码下载Android应用源码之1.Android开发环境搭建.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术...

    Android应用源码之1.Android开发环境搭建.zip

    "Android应用源码之1.Android开发环境搭建.zip"这个压缩包显然旨在帮助开发者构建一个完整的Android开发环境,以便开始他们的源码探索之旅。以下是关于Android开发环境搭建的一些关键知识点,以及可能涉及的步骤和...

    Android用eclipse开发环境搭建详解

    在本文中,我们将深入探讨如何使用Eclipse搭建Android开发环境,这是Android早期开发阶段非常流行的集成开发环境(IDE)。Eclipse以其强大的插件系统和灵活的代码编辑功能,深受开发者喜爱,尤其对于初学者,它提供...

    QT5.14.2搭建Android开发环境测试项目源码

    这个项目源码是关于在Android平台上构建和运行QT应用程序的实例,它包含了搭建开发环境和创建基本QT应用所需的文件。让我们深入探讨一下这个过程中涉及的关键知识点。 1. **QT for Android**: QT为开发者提供了在...

    安卓Android源码——Android Launcher 源码修改可编译.zip

    3. **编译Android源码**:要编译Android源码,开发者需要搭建AOSP(Android Open Source Project)环境,安装必要的工具如Repo、JDK、NDK等,并执行make命令来构建系统。 4. **源码修改**:修改Android源码可能包括...

    android 源码的下载,及其编译步骤

    ### Android源码的下载与编译详解 在深入探索Android操作系统的世界时,了解其源代码的获取和编译过程是至关重要的一步。本文将详细解析从环境搭建到源码编译的全过程,确保读者能够顺利地从零开始构建自己的...

    怎样使用Eclipse来开发Android源码

    在开始使用Eclipse进行Android源码开发之前,我们需要做一些必要的准备工作: 1. **搭建Android开发环境**:确保已经安装了Java Development Kit (JDK) 和 Eclipse IDE,并且设置了正确的环境变量。 2. **获取...

    搭建Android系统开发环境

    这通常涉及到下载Android源码、配置编译环境、执行编译脚本等一系列复杂步骤。编译完成后,还需要将生成的系统镜像固化到目标设备上,并进行一系列的调试和测试,确保系统稳定性和功能完整性。 #### 结论 搭建...

    应用源码之1.开发环境搭建.zip

    开发环境搭建.zip"这个压缩包显然包含了帮助开发者构建一个适宜的开发环境所需的资源和指导。下面我们将深入探讨Android应用源码的学习以及开发环境的搭建过程。 一、Android源码学习的重要性 1. 深入理解:通过...

    android开发环境搭建-win7_64位.doc

    在搭建Android开发环境的过程中,首先需要安装Java Development Kit (JDK)。JDK是Java编程的基础,包含了编译器、调试器以及其他工具,用于创建、编译和运行Java应用程序。在Win7 64位系统中,可以从Oracle官网下载...

    用Git在 Windows下载Android源码

    ### 使用Git在Windows环境下下载Android源码 #### 一、前言 随着移动互联网的发展,...这种方式不仅高效而且便捷,适合初学者快速入门Android开发环境搭建。希望本文能帮助到正在学习或从事Android开发的朋友。

    Android应用源码之1.Android开发环境搭建-IT计算机-毕业设计.zip

    在Android应用开发的世界里,环境搭建是初学者的首要任务,它是通往编程殿堂的第一步。本文将详述如何搭建一个完整的Android开发环境,以便进行Android应用的毕业设计或论文研究。 1. 安装Java Development Kit ...

    android迅雷下载搭建开发环境

    在Android平台上,搭建迅雷下载开发环境涉及到多个步骤和技术,主要目标是使应用程序能够利用迅雷的下载引擎实现高效、稳定的文件下载功能。这个过程通常包括安装必要的开发工具,配置项目环境,集成迅雷SDK,以及...

Global site tag (gtag.js) - Google Analytics