分享

独辟蹊径系列 带着大家玩Android(1)

 开花结果 2010-09-06
本期将带着大家在Ubuntu 9.10的系统上源码编译一个Android系统和在VirtualBox中使用Android-x86项目安装一个Android的系统,如果你想体验Google手机操作系统Android的神奇魅力,但不想花几千元钱购买昂贵的Android手机,在没有硬件手机之前了解和使用Android系统。本文中介绍的两种方式将是不错的一个选择。

  首先介绍一下什么是Android

  Android 是Google开发的基于Linux平台的开源手机操作系统。它摩托罗拉的首款Android手机CLIQ包括操作系统、用户界面和应用程序 —— 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。Google与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。

  它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分:低层以Linux核心工作为基础,只提供基本功能,其他的应用软件则由各公司自行开发,以java作 为编写程式的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟(Open Handset Alliance)。 Android使用Linux2.6作为操作系统,Linux2.6是一种标准的技术,Linux也是一个开放的操作系统。Android对操作系统的使 用包括核心和驱动程序两部分,Android的Linux核心为标准的Linux2.6内核,Android更多的是需要一些与移动设备相关的驱动程序。

  android官方网站 http://code.google.com/intl/zh-CN/android/

  android开发网站 http://developer.

  再来了解一下Android-X86 任何手机都是要在专有的硬件中使用的,即便Android是Linux开源代码平台也不例外的要依赖专有的手机硬件平台,不过在几位华人软件工程师 的努力下,Linux的用户已经可以享受到真正在上网本上可以安装使用的Android了,这就是Android-x86开源项目。此项目可以轻松的将 Android系统安装在X86平台的上网本或者是老式的笔记本上,当然也可以在老式的台式机上运行,不过在选择是否使用Android系统在本本上运行 之前,首先在VirtualBox进行体验式很好的方式。 Android-x86 - Porting Android to x86 http://www./ Android源码编译和使用Android-X86项目是两个完全不同的体验Android方式,前者是编译后的镜像文件通过Android的模拟器在Linux系统上运行,后者是使用一个rebuild的Linux版本安装在电脑上。本文的目的就是为大家揭开一层Android的神秘面纱。

  再来了解一下Android-X86

  任何手机都是要在专有的硬件中使用的,即便Android是Linux开源代码平台也不例外的要依赖专有的手机硬件平台,不过在几位华人软件工 程师的努力下,Linux的用户已经可以享受到真正在上网本上可以安装使用的Android了,这就是Android-x86开源项目。此项目可以轻松的 将Android系统安装在X86平台的上网本或者是老式的笔记本上,当然也可以在老式的台式机上运行,不过在选择是否使用Android系统在本本上运 行之前,首先在VirtualBox进行体验式很好的方式。

  Android-x86 - Porting Android to x86 http://www./

  Android源码编译和使用Android-X86项目是两个完全不同的体验Android方式,前者是编译后的镜像文件通过Android的模拟器在Linux系统上运行,后者是使用一个rebuild的Linux版本安装在电脑上。

  本文的目的就是为大家揭开一层Android的神秘面纱。

  一、在Ubuntu 9.10上编译Android源码并使用模拟器运行

  1、编译前的准备工作,通过git获取Android的源码

  通过git获取Android的源码、配置JDK1.5环境(使用最新的JDK1.6反倒是编译不过去),准备Ubuntu 9.10必要的编译环境。

  Android是由Kernel、Dalvik、Bionic、Prebuilt、build等多个项目组成,每个部分分别使用Git进行管理,当时如果使用git命令来逐个获取显得很麻烦,所以Android项目编写了一个名为Repo的Python的脚本来统一管理这些项目的仓库,使得项目的获取更加简单。

  在Ubuntu 9.10上安装git管理工具,su - 切换到root账户下执行apt-get install git-core curl

   通过curl工具从获取Android项目Repo脚本文件。curl http://android.git. /repo>~/repo
chmod a+x ~/repo

  下载repo脚本文件到当前用户的home目录下,并保存在文件repo中,并给repo文件可执行权限。

  执行利用repo脚本和Git、curl软件获取Android的源代码,~/repo init –u git://android.git./platform/manifest.git ~/repo initialized in /android这样的提示,说明本地的版本库已经初始化完毕,并且包含了当前最新的sourcecode。~/repo sync

  使用repo sync命令把整个Android代码树同步到本地


Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->Initializing project platform/packages/apps/Browser ...
remote: Counting objects: 2015, done.
remote: Compressing objects: 100% (484/484), done.
Receiving objects:  72% (1451/2015), 1.88 MiB | 185 KiB/s  
Initializing project platform/packages/apps/GlobalSearch ...
remote: Counting objects: 1779, done.
remote: Compressing objects: 100% (290/290), done.
remote: Total 1779 (delta 862), reused 1779 (delta 862)
Receiving objects: 100% (1779/1779), 345.14 KiB | 118 KiB/s, done.
Resolving deltas: 100% (862/862), done.
* [new tag]         android-sdk-1.6_r1 -> android-sdk-1.6_r1
* [new tag]         android-sdk-tools_r2 -> android-sdk-tools_r2
Initializing project platform/packages/apps/Launcher ...

Fetching projects: 100% (142/142), done.  
Checking out files: 100% (16/16), done.ng out files:  50% (8/16)  
Checking out files: 100% (8022/8022), done.ut files:  13% (1095/8022)  
Checking out files: 100% (5254/5254), done.
Checking out files: 100% (3810/3810), done.out files:   6% (232/3810)  
Checking out files: 100% (4398/4398), done.out files:  25% (1137/4398)  
Checking out files: 100% (641/641), done.g out files:  17% (110/641)  
Checking out files: 100% (9061/9061), done.out files:  22% (2056/9061)  
Checking out files: 100% (7942/7942), done.out files:   0% (33/7942)  
Checking out files: 100% (1947/1947), done. out files:   2% (44/1947)  
Syncing work tree: 100% (142/142), done.  

   repo sync同步过程,Syncing work tree说明已经同步完成。如果编译后需要获取新版本再次编译,不要重复执行初始化和sync同步过程。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多