《深入理解Android:Telephony原理剖析与最佳实践》一2.1 Ubuntu Linux操作系统及工具安装

2.1 Ubuntu Linux操作系统及工具安装

要搭建Android的编译环境,首先要选择好使用什么操作系统。本书选择Ubuntu 10.10桌面版64位Linux操作系统作为编译Android源码的操作系统。
注意 为什么选择使用64位Ubuntu 10.10桌面版的操作系统呢?在搭建Android源代码编译环境的过程中通过对比Ubuntu 10版本和11版本,发现Ubuntu 10更加简单,比如在Ubuntu 11.10采用的GCC和G++ 4.6版本,需要回退到4.4版本,否则会出现编译错误,无法通过编译;另外Ubuntu 10.10的桌面环境采用GNOME 2桌面环境,而Ubuntu 11.10桌面环境采用较新的Unity,在两个版本的使用过程中,笔者认为GNOME 2桌面环境使用时要稳定和方便一些。读者也可以选择自己喜欢的Ubuntu的其他版本。

2.1.1 PC配置建议

建议采用的PC配置如下。
CPU类型:第二代智能英特尔酷睿i5处理器或i7处理器。
内存:4GB或8GB容量DDR3内存。
硬盘容量:500GB或1TB。

2.1.2 Ubuntu安装光盘的制作

首先下载Ubuntu安装镜像文件,进入此网站后发现有如下Ubuntu版本:
Ubuntu 12.04 LTS (Precise Pangolin)
Ubuntu 11.10 (Oneiric Ocelot)
Ubuntu 11.04 (Natty Narwhal)
Ubuntu 10.10 (Maverick Meerkat)
Ubuntu 10.04.4 LTS (Lucid Lynx)
Ubuntu 8.04.4 LTS (Hardy Heron)
本书选用的是64位Ubuntu 10.10桌面版操作系统,故选择下载ubuntu-10.10-desktop-amd64.iso镜像文件,然后使用一些刻录软件工具将ISO镜像文件刻录到光盘上,系统安装光盘即制作完成了。
注意 如果没有刻录光盘的条件,可以采用制作USB系统启动盘的方式。目前大多数计算机支持USB引导系统,加上目前USB闪存容量大、价格相对较低,可选择1GB或以上容量的U盘,使用UltraISO即可制作系统安装启动盘。具体的方法可上网搜索制作U盘安装盘详情。

2.1.3 Ubuntu安装过程

Ubuntu安装盘制作完成后,就可以开始安装Ubuntu操作系统了。没有使用过Linux的读者也不必担心,Ubuntu操作系统的安装和使用绝大部分采用图形化界面并支持中文,非常便于使用。下面开始Ubuntu操作系统的安装。
将前期制作的光盘或USB系统安装盘放入计算机光驱或插入USB接口,启动PC并按F12键选择引导计算机的方式。这里选择从光驱或U盘引导系统,然后进入Ubuntu 10.10的系统安装欢迎界面,如图2-1所示。

系统安装欢迎界面非常友好,选择语言中文简体,其安装过程与Windows相似,均采用图形化安装向导形式。此处选择安装Ubuntu,进入下一步,会提示安装Ubuntu需要两个必要的条件:一是至少有2.6GB的磁盘空间,二是笔记本电脑需要插入电源方式供电。满足这两个条件,不必接入网络,继续进入下一步。
这一步非常关键,为对磁盘的分区,涉及如何分配磁盘空间。这里建议手工划分磁盘空间大小,划分3个Ubuntu操作系统必备的磁盘空间即可,如图2-2所示。

3个磁盘分区分别是:
/ 根目录挂载分区:不论磁盘大小,一般使用10GB即可,本例中分配15GB磁盘空间大小。
swap交换分区:根据经验来讲,交换分区以内存大小乘以2为最佳,本例中分配2GB磁盘空间大小。
/home 用户数据挂载分区:目前PC市场上硬盘都较大,500GB已成为基本配置,而/home用户数据挂载分区用于保存用户数据,在Android编译环境中,源代码的保存和编译都在此空间中进行,需要较大空间,所以将剩余的磁盘空间都分配到此挂载分区。
分区完成后,进入下一步,选择地区和时区,选择“亚洲”和“上海”;再进入下一步,选择键盘布局,使用默认的USA键盘布局;然后进入计算机基本信息输入安装界面,在这里输入用户名、密码、计算机名等,如图2-3所示。

计算机基本信息输入完成后,进入下一步,到此安装向导已收集完成安装信息,系统安装程序开始安装Ubuntu操作系统。安装过程界面会显示Ubuntu的一些特性,时间在30分钟左右,根据计算机配置运行速度不同时间上下有所浮动,只需耐心等待系统安装完成即可。
Ubuntu操作系统完成安装后,弹出安装完成提示,需要重启计算机,然后就可以进入图形化Ubuntu登录界面了。整个Ubuntu操作系统的安装至此已完成。

2.1.4 Ubuntu系统工具包更新升级

前面已经完成了Ubuntu操作系统的安装,现在需要更新和安装Android编译环境需要的系统工具包,其Linux命令为:

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

在网络异常或其他异常情况下,这些工具包可能不能完全下载和更新,那就需要在执行完此命令以后,再次执行此命令验证工具包是否完整安装和更新,其运行日志如下:
正在读取状态信息... 完成
注意,选取 lib32z1-dev 而非 lib32z-dev
bison 已经是最新的版本了。
……
libxml2-utils 已经是最新的版本了。
ia32-libs 已经是最新的版本了。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包……
说明所有的包没有遗漏,都已经安装完成。如果每个工具包提示均已完成更新和安装,便可进入下一步操作,否则我们要继续执行此命令更新和安装未完成的系统工具包。
注意 至此,还需要创建一个libGL.so.1到libGL.so的链接,其命令为:

  sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

   如果读者的操作系统是其他版本的Ubuntu操作系统,可进入Android官方网站参考其他版本Ubuntu操作系统的工具包安装方法。
我们已经完成Ubuntu系统Android源码编译所需的工具包安装和更新,下一步需要安装和配置Java运行环境。

2.1.5 Java运行环境JDK安装及配置

安装和配置Java运行环境JDK(Java Development Kit,Java开发工具包),需要先下载JDK的Linux平台安装包,进入http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html,选择Linux平台64位JDK最新版本jdk-6u31-linux-x64.bin,下载并保存到~/tools目录下。
$chmod +x jdk-6u31-linux-x64.bin //增加jdk-6u31-linux-x64.bin的可执行权限
$./jdk-6u31-linux-x64.bin //执行JDK的安装,会在当前目录下新建jdk1.6.0_31目录,安装的文
     //件都会保存到此目录下
解压jdk-6u31-linux-x64.bin安装文件后,接下来配置Java环境变量。
进入home路径下的vi .bashrc中,在此配置文件最后加入Java的一些基本环境配置信息:JAVA_HOME、JRE_HOME、CLASSPATH、PATH,详细代码如下:

export JAVA_HOME=~/tools/jdk1.6.0_31
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

Java配置信息完成后,需要使新增的配置信息立即生效,并验证刚配置的Java环境变量是否正确,详细代码如下:
$source .bashrc//立即使.bashrc环境变量的配置信息生效
$java –version//验证Java安装、配置是否成功

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

2.1.6 Android SDK的下载和配置

前面已经完成Java运行环境的安装和配置,接下来需要安装Android SDK(Software Development Kit,软件开发工具包)。进入http://developer.android.com/sdk/index.html,下载Android SDK安装管理工具包,根据操作系统选择不同平台版本,这里选择Linux版本,下载android-sdk_r16-linux.tgz保存到~/tools目录下;然后进入~/tools目录,运行tar-xvf android-sdk_r16-linux.tgz,解压android-sdk_r16-linux.tgz到在当前目录android-sdk-linux下;接着进入android-sdk-linux/tools目录,运行 ./android,此时会弹出Android SDK Manager运行窗口,如图2-4所示。

至此,其实我们仅安装了SDK框架,并未包含具体的SDK内容。接下来通过Android SDK Manager下载和安装SDK中对应的工具和具体的Android SDK。这里选择下载和安装Tools和需要的Android SDK版本。
注意 这里列出了Android已经发布的所有SDK版本,选择安装的Android SDK版本越多,下载和安装的时间就越长,需要的磁盘空间也就越大;本文选择Tools和Android 4.0.3,读者可以根据兴趣和需要选择下载Android其他版本的SDK。
单击“Install”按钮开始下载和安装,下载前会弹出“Package Description & License”对话框,选择Accept and Install,即可正式开始下载和安装。
SDK下载和安装完成后,将Android SDK相关的工具路径加入系统变量中,这样可使我们在命令行中的任何路径下运行和使用Android SDK相关工具。增加platform-tools和tools目录到PATH,详细代码如下:

$vi ~/.bashrc
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:\
~/tools/android-sdk-linux/tools: ~/tools/android-sdk-linux/platform-tools
$source .bashrc  //配置文件的修改即时生效

2.1.7 使用Android SDK启动虚拟设备

Android SDK完成安装后,我们该如果使用SDK呢?运行和使用SDK中的虚拟设备是Android SDK最重要的应用之一,使用SDK的虚拟设备首先要增加虚拟设备的配置信息,然后启动虚拟设备,最后可在虚拟设备上模拟操作、使用Android手机。
首先退出之前启动的Android SDK Manager,接着再一次运行android命令,弹出Android SDK Manager窗口,单击Tools→Manage AVDs...菜单,弹出Android SDK and AVD(Android Virtual Device,Android虚拟设备)Manager对话框,单击此对话框右边的“New”按钮,新建Android虚拟设备配置信息,进入创建Android虚拟设备界面,其具体配置项信息可参考图2-5所示。

输入虚拟设备名称MyFirstDevice,选择SDK的Android 4.0.3版本,修改Built-in屏幕类型,默认“WVGA800”;单击“Create AVD”,开始创建Android虚拟设备;接着会弹出创建虚拟设备信息确认框,确认AVD基本信息没有问题后单击“OK”按钮,这样就成功地创建了Android虚拟设备;创建成功后在Android SDK and AVD Manager对话框可以看到刚创建的MyFirstDevice虚拟设备,可在此界面中新增、修改、删除和启动虚拟设备。
Android虚拟设备创建成功后,接着启动虚拟设备。单击Android SDK and AVD Manager 对话框右边的“Start”按钮启动虚拟设备;然后弹出启动虚拟设备选项对话框,按照默认选项单击“Launch”开始启动Android虚拟设备;最后弹出虚拟设备界面并开始启动Android虚拟设备,启动虚拟设备需要2分钟左右,需要耐心等待。启动成功后的界面如图2-6所示。

虚拟设备界面分为如下几大部分:
标题栏,显示“5554:MyFirstDevice”,5554代表虚拟设备的运行端口,MyFirstDevice代表运行的虚拟设备名称;
虚拟手机屏幕区域和Android运行显示区域,可通过鼠标在此区域单击对Android进行操作;
虚拟按键区域,包括照相机、声音控制(2个)、关机、接听电话、挂断电话、Home、菜单、返回、查找以及上、下、左、右和确认共15个虚拟按键;
虚拟全电脑键盘区域。
注意 Android AVD启动成功后,可以用鼠标结合右边的虚拟按键操作虚拟设备,这是不是和我们使用Android手机差不多呢?对Android不熟悉的读者可以在这里熟悉Android的一些基本操作和Android基本功能。

时间: 2024-10-28 12:02:16

《深入理解Android:Telephony原理剖析与最佳实践》一2.1 Ubuntu Linux操作系统及工具安装的相关文章

《深入理解Android:Telephony原理剖析与最佳实践》一导读

前 言 随着ICT技术的推广和发展,在三网融合.智慧的地球(物联网)等概念风行的形势下,手机终端技术的发展和进步可谓日新月异:Android经受住了市场的考验,并占据了较大的市场份额,从手机芯片厂家.手机生产厂家到各种应用开发公司.互联网公司等,逐步形成了以Android系统平台为核心的上下游产业链.正是由于Android源代码的开源,各大手机厂商才能通过深度定制Android系统平台,在降低研发成本的同时,快速推出具有自身特色的Android智能手机产品.因此,各大手机厂家在推出新版本Andr

《深入理解Android:Telephony原理剖析与最佳实践》一1.3 Android Telephony框架结构

1.3 Android Telephony框架结构 前面对Android手机操作系统整体框架结构及每一层进行了简单的分析和说明,相信大家对Android智能手机操作系统有了一些基本的了解和认识.结合前面Android的系统整体框架,我们接着学习Android Telephony涉及的框架结构,如图1-3所示. 通过图1-3所示不难发现Android Telephony框架结构的一些规律,总结如下. Android Telephony的业务应用跨越了AP和BP.AP与BP相互通信,符合前面介绍的智

《深入理解Android:Telephony原理剖析与最佳实践》一3.5 本章小结

3.5 本章小结 本章主要对Android Telephony相关模块使用到的一些关键技术进行了分析和实例讲解,包括Handler.Broadcast两种异步通信的机制和AIDL跨应用的服务调用.Handler主要有几种消息处理方式?Handler对象的创建在主线程和子线程有什么区别?AIDL如何定义接口?AIDL接口定义完成后,对应的代码是如何生成的?Broadcast接收方的过滤器有几种设置方式?通过本章的学习,相信大家都对这些知识点会有较深入的认识和理解. 对Android中的Handle

《深入理解Android:Telephony原理剖析与最佳实践》一3.3 AIDL跨应用服务

3.3 AIDL跨应用服务 Android Telephony框架层提供了一些AIDL系统服务以及第三方应用,通过这些系统服务可方便地获取手机当前状态,如待机状态.通话中.来电等,这些状态在Android手机应用开发中非常重要.如果我们开发一款Android平台的手机音乐播放器,在使用音乐播放器的过程中需要知道手机当前是什么状态,如果是通话中或来电,这时就必须暂停播放音乐. 3.3.1 AIDL概念分析 什么是AIDL呢?AIDL的Android官方定义如下: AIDL (Android Int

《深入理解Android:Telephony原理剖析与最佳实践》一3.1 何为同步和异步

3.1 何为同步和异步 Android Telephony相关应用中,Telephony大量使用了Handler.Broadcast等通信方式,而在Android操作系统平台中的Handler消息处理.Broadcast广播消息等均采用异步通信机制,那么我们首先要清楚什么是异步通信机制,与它相对同步的通信机制是什么,有什么区别. Synchronous(同步)和Asynchronous(异步)的概念最早来自通信领域. 通信的同步:指客户端在发送请求后,必须要在服务端有回应后客户端才继续发送其他请

《深入理解Android:Telephony原理剖析与最佳实践》一第2章 搭建Android源代码编译环境

第2章 搭建Android源代码编译环境 第1章介绍了Android以及其Telephony功能模块的基本结构,在本章中将带着读者去搭建Android编译环境.即使你已经能够在自己计算机上成功编译Android源代码了,也希望你能阅读本章内容,因为本章不乏一些技巧的总结和Android相关实用工具使用方法的介绍. Android的编译环境作为深入学习Android的基础,不可缺失,能够成功下载Android源代码并编译成功,对深入学习Android是非常关键和重要的一步:Android环境搭建比

《深入理解Android:Telephony原理剖析与最佳实践》一第3章 主要技术准备

第3章 主要技术准备 第2章介绍了搭建Android源码编译环境以及Android相关常用工具使用的一些技巧和总结,接下来我们是不是应该开始学习Android Telephony相关内容了呢?先不着急,工欲善其事,必先利其器,我们还要做一些的技术准备工作,也就是学习Android Telephony涉及的一些关键技术,其中包括Handler消息处理机制.AIDL跨应用服务访问和Broadcast系统广播.这些技术在Telephony中使用较多,所以在学习Telephony前,需要对这几个重点技术

《深入理解Android:Telephony原理剖析与最佳实践》一1.2 Android系统架构

1.2 Android系统架构 前面学习了智能手机的基本硬件结构,可以通过功能手机与智能手机的特点和区别从本质上认识它们.Android智能手机操作系统作为运行在AP上的开源智能手机操作系统,其系统架构是什么样的呢?我们先看看图1-2. 通过图1-2不难发现,Android手机操作系统是一个基于Linux Kernel的分层智能手机操作系统,其共分为4层,从上到下分别是Java Applications(应用层).Java Frameworks(应用框架层).User Libraries(系统运

《深入理解Android:Telephony原理剖析与最佳实践》一2.4 Eclipse配置及使用

2.4 Eclipse配置及使用 首先需要下载Eclipse安装包,进入Eclipse官方下载网址,选择Linux 64位Eclipse Indigo (3.7.2)版本,下载eclipse-java-indigo-SR1-linux-gtk-x86_64.tar.gz到~/tools目录,然后解压此安装文件到~/tools/eclipse目录,进入~/tools/eclipse文件夹,双击Eclipse文件即可运行.注意 可能会提示找不到jre/bin目录下的Java可执行文件,最简单直接的解