Android源代码结构及Linux编译Android源码

Android源代码结构

Android代码的工程分为3个部分

  • 核心工程(Core Project):建立Android 系统的基础,在根目录的各个文件夹中
  • 扩展工程(External Project):使用其他开源项目扩展的功能,在external 文件夹中。
  • 包(Package):提供Android 的应用程序和服务,在package 文件夹中。

    1. Android 的核心工程
      Android 的核心工程包含了对Android系统基本运行的支持,以及Android系统的编译系统,工程的内容如下表:
      这里写图片描述
    2. Android 扩展工程
      Android 的扩展工程包含在external文件夹中,是一些经过修改后适应Android系统的开源工程。有一些工程在主机上运行,也有些在目标机上运行。由于包含的扩展工程就多,就不一一列出。
    3. Android 中的Java程序包
      Android中的Java程序包是Android系统架构第4层的内容,主要包括应用程序(Application)和内容提供器(Content Providers)两个部分,还有一个目录inputmethods是输入法的部分。
      应用程序(Application)在package/apps目录中,主要包括:
      AlarmClock,Browser,Calculator,Calendar,Camera,Contacts,E-mail,GoogleSearch HTML Viewer,IM,Launcher,Mms,Music,PackageInstaller,Phone Settings,SoundRecorder,Stk,Sync,Updater,VoiceDialer。
        
      内容提供者(Content Providers)在package/providers目录中,主要包括:CalendarProvider,ContactsProvider,DownloadProvider,DrmProvider,GoogleContactsProvider,GoogleSubsribedFeedsProvidercImProvider,MediaProvider SettingsProvider,SubscribedFeedsProvider,TelephonyProvider。

使用Linux编译Android源码

下载安装虚拟机VM,开启VM共享设置,解压缩VM Tool 的.tar.gz文件

sudo tar zxvf ./jdk-7u45-linux-x64.tar.gz

设置JAVA环境变量
环境变量在 .bashrc 文件中设置。

vi ~/.bashrc

在该文件的末尾,加上以上几行代码:

export JAVA_HOME=/jdk/jdk1.8
export CLASSPATH=${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

修改“~/.bashrc”文件和修改“/etc/profile”的区别:

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,文件被读取。
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件。 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。

看完上面描述,你应该知道了原因了,就是“~/.bashrc”的环境变量只对shell有用,而“/etc/profile”而能针对于任何用户的任意程序。

配置默认JDK版本

sudo update-alternatives  --install /usr/bin/java  java  /usr/lib/jvm/jdk1.8.0_25/bin/java 300
sudo update-alternatives  --install /usr/bin/javac  javac  /usr/lib/jvm/jdk1.8.0_25/bin/javac 300

sudo update-alternatives  --install /usr/bin/jar  jar  /usr/lib/jvm/jdk1.8.0_25/bin/jar 300

检查:

sudo update-alternatives  --config   java

修改环境变量时VIM命令
这里写图片描述

为了让更改立即生效,请在终端执行如下命令:

source ~/.bashrc

source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。

环境变量验证和在Windows环境下一样

java -version

然后下载编译的依赖包
Installing required packages (Ubuntu 14.04)
You will need a 64-bit version of Ubuntu. Ubuntu 14.04 is recommended.

sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip

官方说明:http://source.android.com/source/initializing.html

安装Repo工具
Make sure you have a bin/ directory in your home directory and that it is included in your path:
确保home目录下有bin文件夹
官方说明:http://source.android.com/source/downloading.html

mkdir ~/bin
PATH=~/bin:$PATH

然后下载

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

初始化Repo

repo init -u https://android.googlesource.com/platform/manifest
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

同步代码

repo sync
阅读更多
个人分类: Android
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭