AndroidV2.2 PC编译环境搭建

本文档详细介绍了如何在PC环境下搭建Android V2.2版本的开发环境,包括依赖包安装、源代码下载与编译、SDK生成、模拟器运行、无IDE环境配置、应用创建与调试等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AndroidV2.2 PC编译环境搭建

1 简介

 该章节主要描述如何在PC环境下搭建Android的开发环境,Android提供两种开发环境:
 1) 基于eclipse的IDE插件开发环境;
 2) 基于无IDE的命令行开发环境。
 该章节主要介绍无IDE的命令行开发环境。

2 编译Android所需要的依赖包

 编译Android的PC环境需要依赖以下包(为了方便大家基于Linux环境下载依赖包,建议使用ubuntu 9.10),
 在命令行终端敲入以下命令:
 $sudo apt-get install git-core gnupg sun-java5-jdk flex /
                      bison gperf libsdl-dev libesd0-dev /
                      libwxgtk2.6-dev build-essential zip /
                      curl libncurses5-dev zlib1g-dev
 这儿有以下几个关键点:
 1) JDK开发环境,JDK的开发环境必须是sun-java5-jdk的deb包,不支持sun-java6-jdk编译环境,
    由于在9.10国内源只有sun-java6-jdk的deb包,所以需要到官方源去下载;
 2) 由于ubuntu安装的时候,安装了OpenOffice,该软件依赖的是open-jdk-6的deb包,需要进行卸载;
 3) Git版本必须在1.5.4以上。

3 下载Android的源代码

 1, 下载源代码之前,请预留10G空间进行编译,并且下载repo命令协助下载:
    1) 在当前目录下建立一个bin文件夹,用来存放本地专属命令:
       $ cd
       $ mkdir bin
    2) 将本地bin文件夹纳入系统命令路径:
       $ export PATH=$PATH:~/bin
    3) 通过curl下载android服务器上repo文件:
       $ curl http://android.git.kernel.org/repo


 >~/bin/repo
       $ chmod a+x ~/bin/repo
 2, 开始下载代码:
    1) 在当前目录下建立一个目录用来存放源代码:
       $ mkdir Android
    2) 进行代码下载,如果要进行主分支下载则敲以下命令:
       $ repo init -u git://android.git.kernel.org/platform/manifest.git
       当然我们目前建议下载Android V2.2版本,使用froyo分支:
       $ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
    3) 进行代码同步:
       $ repo sync
 3, 代码需要下载两三个钟头,大家可以休息休息休息一会。

4 代码编译

 代码下载完毕之后,进入Android目录进行编译:
 $ make
 我们不仅仅编译源代码,还需要形成SDK,所以完成上述命令之后要设置环境变量,
 然后编译SDK:
 $ chmod a+x build/envsetup.sh
 $ . ./build/envsetup.sh
 $ make sdk

5 环境设置和初步运行

 编译完成之后,初步设置环境,就能实现模拟器预览效果:
 $ export ANDROID_PRODUCT_OUT=~Android/out/target/product/generic
 $ export PATH=$PATH:~/Android/out/host/linux-x86/bin
 $ ./emulator
 此时,大家都能看到运行的Android 2.2的PC效果,但是此刻才是万里长征的第一步,
 路漫漫其修远兮,吾将上下而求索。

6 搭建无IDE开发环境

 这时候大家奇怪了,为什么还没开始搭建无IDE开发环境呢?上面不是已经将模拟器跑起来了吗?
 这儿有两个误区:
 1) 模拟器跑起来了,证明模拟器生成没太大问题;
 2) 无IDE开发环境的搭建是为了一直Android的Java应用,和模拟器没有太大关系,
    最多的一丝关系是内置应用的JAVA包生成没太大问题。
 以下开始介绍概念:
 1) AVD,全称android virtual device,应用程序模拟安装是安装在AVD设备上,所以当
    我们进行android的Java应用程序安装的时候,需要安装在AVD设备上;
 理解上述概念和理念之后,我们开始设备的创建:
 1) android的PC模拟安装包在~/Android/out/host/linux-x86目录下,我们在make sdk之后
    模拟安装包形成不完全,需要手动拷贝一些目录到linux-x86目录下,不知道Google为什么不直接
    把生成的SDK放到该目录下,可能Google认为大家都很聪明,能理解Google的意图:
    $ ~/Android/out/host/linux-x86
    $ mkdir framework/x86
    $ cp sdk/android-sdk_eng.dengkexi_linux-x86/platforms ./ -rf
    $ cp sdk/android-sdk_eng.dengkexi_linux-x86/tools ./ -rf
    $ cp sdk/android-sdk_eng.dengkexi_linux-x86/add-ons ./ -rf
    以上android-sdk_eng.dengkexi_linux-x86目录会根据repo的时候输入开发者名字不同而不同。
    以上拷贝完成之后,基本的无IDE开发环境基本搭建。
 2) 创建AVD设备,在Android V1.5版本以前有专门的命令创建AVD设备,现在全部集成在android命令中:
    我们首先查看当前目标机器信息:
    $ android list
    



    接着我们开始创建AVD设备:
    $ android create avd -n dengkexi -t 1
    设备名为dengkexi, target为list列表中的1,创建完之后,我们输入以下"android list"命令
    如下图所示:
    



 3) 设备创建之后的验证,如果AVD设备创建完成之后,则敲入以下命令:
    $emulator @dengkexi
    将AVD的模拟器运行起来之后的效果如下图:
    



7 创建应用

 在SDK完成之后,AVD创建之后,我们该创建一个应用:
 $ android create project -t 1 -k com.dengkexi.chipsbank -a DemoApi -p ./tmp
 -t 表示设备目标序号;
 -k 表示packet包的名字,该命名方式按照Java包的命名方式;
 -a 表示Activity的类名;
 -p 表示存放路径。
 在创建完项目之后,进行项目的编译:
 $ ant
 ant工具简单介绍一下:该工具是用来形成Java的编译工具,类似我们使用的configure, automake等。
 紧接着开始编译应用:
 $ ant debug
 该命令生成debug版本的应用,如果应用基本发布的话,使用ant release命令。
 这个时候晴天霹雳,雷雨震天,编译应用报错:
 -resource-src:
    [echo] Generating R.java / Manifest.java from the resources...
    [null] W/ResourceType( 8602): Unable to get buffer of resource asset file
    [null] /home/dengkexi/Android/test/tmp/res/layout/main.xml:2: 
          error: No resource identifier found for attribute 'orientation' in package 'android'
  无法生成R.java资源文件,从报错分析上是资源问题。
  以下就是艰难痛苦解决资源问题:
  1) 首先我们分析一下platforms目录下android-2.2下的android.jar资源文件resources.arsc为1.4M,
     而preutil/sdk/8/android.jar的资源文件为1.5M,所以及有可能我们没有摸透默认生成的资源文件有所裁剪;
  2) 知道了问题点,剩下的问题是如何解决这个问题,首先通过点击preutil/sdk/8/android.jar,将resources.arsc
     解压到platfroms/android-2.2/目录下,然后输入以下命令:
     $ jar -uf android.jar resources.arsc
     这样就完成了资源文件的替换。
  这个时候,再次回到应用目录下,输入"ant debug"命令,这个时候则会编译成功。

8 安装和删除应用

 在编译成功应用之后,剩下就是进行应用程序的安装和卸载了,这个时候就需要使用adb命令:
 $ cd bin
 $ adb install DemoApi-debug.apk
 完成之后,应用就安装到设备上了,如截图:
 



 删除应用命令为:
 $ adb uninstall com.dengkexi.chipsbank

 

9 打印输出获取

 Android的应用开发需要获取相关打印信息,Android的打印信息与Java标准的输入输出类不一样,
 Java使用标准System.out.printf(),但是Android使用android.util.Log类,
 该类提供了若干静态方法
 Log.v(String tag, String msg);
 Log.d(String tag, String msg);
 Log.i(String tag, String msg);
 Log.w(String tag, String msg);
 Log.e(String tag, String msg);
 分别对应 Verbose, Debug, Info, Warning,Error.
 tag是一个标识,可以是任意字符串,通常可以使用类名+方法名, 主要是用来在查看日志时提供一个筛选条件。
 打印信息加上了,如何开启打印呢?这个时候,adb再次出现(神器阿),使用以下命令查看打印:
 $adb logcat DemoApi

10 Android文件系统操作

 进入Android文件系统的命令:
 $adb shell
 $adb pull files ./ (将Android内部文件拷贝至当前目录)
 拷贝文件入Android文件系统的命令:
 $adb push local-files /bin/ (将本地文件拷贝到Android文件系统的bin目录下)
 退出Android文件系统:
 $exit

11 Android模块化编译

 在Android目录下执行以下命令:
 $. ./build/envsetup.sh
 敲击help命令之后,会看见几个关键的帮助选项:
 $help
 - m:       Makes from the top of the tree.
 - mm:      Builds all of the modules in the current directory.
 - mmm:     Builds all of the modules in the supplied directories.
 比如编译packages/apps/Contacts/目录,即可敲击:
 $mmm packages/apps/Contacts/
 这时候眼泪哐啷,悸动的心情立刻汹涌澎湃,编译出二进制啦~~。
 希望总是伴随着绝望,虽然二进制出来了,但是img文件没有更新阿,传说上帝总是仁慈的,另外一个命令横空出世了,历史称之为snod!
 $make snod
 make snod: ignoring dependencies
 Target system fs image: out/target/product/generic/system.img
 诞生啦,system.img生成啦,这一刻所有镜像生成啦,大功告成!
 如果我们修改的是ramdisk.img里边的内容,那暂时只能泪流满面了,只能老实敲击make生成。  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值