如何在linux上设置android SDK进行命令行开发?

时间:2010-03-12 12:58:39

标签: android linux android-emulator motorola

我正在尝试设置android SDK以在Linux(Ubuntu 9.10)的命令行上开发一个简单的程序。我尝试了eclipse,但它已经知道在Ubuntu上运行的问题,所以我放弃了它。这是我到目前为止所做的:

  1. http://developer.android.com/sdk/index.html下载了android-sdk_r05-linux_86.tgz
  2. tar xvzf android-sdk_r05-linux_86.tgz
  3. ln -s android-sdk-linux_86 android
  4. 在.tcshrc中添加了setenv PATH .....:/ home / user / android / tools
  5. source .tcshrc
  6. 跑'android'。这开了一个gui。在可用的软件包下:我安装了所有东西,并退出了gui。
  7. 跑'android list targets'并列出了这些:
  8. 可用的Android目标:

      

    id:1或“android-3”        名称:Android 1.5        类型:平台        API级别:3        修订:1        外壳:HVGA-P,HVGA(默认),QVGA-P,QVGA-L,HVGA-L

         

    id:2或“Google Inc.:Google API:3”        名称:Google API        类型:附加组件        供应商:谷歌公司        修订:3        说明:Android + Google API        基于Android 1.5(API级别3)        图书馆:         * com.google.android.maps(maps.jar)             适用于Google地图的API        外壳:QVGA-P,HVGA-L,HVGA(默认),QVGA-L,HVGA-P

         

    id:3或“android-4”        名称:Android 1.6        类型:平台        API级别:4        修订:1        皮肤:HVGA(默认),WVGA800,WVGA854,QVGA

         

    id:4或“Google Inc.:Google API:4”        名称:Google API        类型:附加组件        供应商:谷歌公司        修订:2        说明:Android + Google API        基于Android 1.6(API级别4)        图书馆:         * com.google.android.maps(maps.jar)             适用于Google地图的API        外壳:WVGA854,HVGA(默认),QVGA,WVGA800

         

    id:5或“android-6”        名称:Android 2.0.1        类型:平台        API级别:6        修订:1        外壳:WQVGA432,HVGA(默认),WVGA800,WVGA854,WQVGA400,QVGA内容:6   或“Google Inc.:Google API:6”        名称:Google API        类型:附加组件        供应商:谷歌公司        修订:1        说明:Android + Google API        基于Android 2.0.1(API级别6)        图书馆:         * com.google.android.maps(maps.jar)             适用于Google地图的API        外壳:WQVGA400,WVGA854,HVGA(默认),WQVGA432,QVGA,WVGA800

         

    id:7或“android-7”        名称:Android 2.1        类型:平台        API级别:7        修订:1        外壳:WQVGA432,HVGA(默认),WVGA800,WVGA854,WQVGA400,QVGA

         

    id:8或“Google Inc.:Google API:7”        名称:Google API        类型:附加组件        供应商:谷歌公司        修订:1        说明:Android + Google API        基于Android 2.1(API级别7)        图书馆:         * com.google.android.maps(maps.jar)             适用于Google地图的API        外壳:WQVGA400,WVGA854,HVGA(默认),WQVGA432,QVGA,WVGA800

    我想为我的motorola机器人创建一个简单的hello world程序。我应该使用以下哪些目标?

    我如何看皮肤?

    如果我从命令行运行'android',它表示没有虚拟设备。虚拟设备是否与目标相同?

    如何获得机器人皮肤和/或机器人目标和/或机器人虚拟设备?


    我认为我需要运行类似'android create avd --target 2 --name my_avd'的东西,但不确定。是否有关于如何在某处执行此操作的分步列表?

    感谢, 鲍勃

    稍后:

    我发现我必须创建像这样的目标(=虚拟设备):

      

    android create avd -t 1 -n myavd1
      .......
      android create avd -t 8 -n myavd8

    当我从命令行运行'android'时,这给了我8个虚拟设备。

    有谁知道用于Droid的api级别/平台是什么?哪里可以找到合适的皮肤?是否有任何硬件规格,我需要知道Droid开发?

    最后,是否有任何步骤列表从命令行(linux)创建一个hello world应用程序并在模拟器上运行它然后在真实手机上运行它?

    鲍勃

7 个答案:

答案 0 :(得分:6)

虽然我经常使用IDE(或GUI包装器)进行开发,但我发现Android的CLI特别令人不悦。

我最近开始将所有Android项目转换为Maven manged。使用这种方法有growing community左右,这非常令人愉快。

这个想法围绕maven-android-plugin建立,它完成了所有繁重的工作。有samples显示各种用例(非Java语言,多模块项目等)。繁琐的CLI任务,例如使用proguard缩小APK大小,签署APK以及对APK进行压缩签名都有all been automated

还有一种自定义格式.apklib,用于通过Maven存储库分发Android library projects

当您将所有这些功能与已经存在的优势Maven(自动化测试,模块支持,依赖关系管理,自动发布,maven站点生成等)相结合时,您真正获得了非常简化的工作流程。

哦,它也可以controldeploy模拟器!

答案 1 :(得分:5)

  

想要创造一个简单的hello世界   我的摩托罗拉机器人程序。哪一个   我应该使用这些目标吗?

Droid的库存为2.0(API 6)但截至2011年3月14日为2.2.2(FRG83G)。您应该定位2.0,因为并非所有机器人都是2.2.2。

  

我如何看皮肤?

     

如何获得机器人皮肤和/或机器人目标和/或机器人虚拟设备?

您需要为Motorola Droid安装外观。 在这里查看MotoDev网站..

http://developer.motorola.com/docstools/tools/

  

如果我从命令运行'android'   它说它没有   虚拟设备。是虚拟设备   和目标一样吗?

没有目标和虚拟设备不同。您需要从目标创建虚拟设备。

  

有谁知道api级别/   用于Droid的平台?和   哪里可以找到合适的皮肤?在那儿   任何硬件规格,那   我需要知道Droid开发吗?

API级别:应该执行6或更高版本,因为并非所有设备都已更新。

规格:请参阅此处http://developer.motorola.com/products/droid/

  

最后,是否有任何步骤列表   从中创建一个hello world app   命令行(Linux)并在其上运行它   模拟器然后在真实上运行它   电话?

去Eclipse + Ubuntu ..它也更容易设置外观和插件。插件最适合物理设备。其他选择是使用乏味的开发(对于像你这样的初学者)。在这里问你怀疑或作为一个单独的问题发布。你肯定会得到一个休息。

HTC最近为开发人员提供了一个小指南,以帮助他们使用命令行工具。 请在这里查看http://htcdev.com/devcenter/opensense-sdk/quick-guide#building

您也可以使用Eclipse + MotoDev studio ...

http://developer.motorola.com/docstools/motodevstudio/

答案 2 :(得分:4)

使用android list target列出可用目标。这将包含以下信息:
 -Target ID:每个目标都有不同的id,应该在所有其他命令中使用  -Skin:每个目标包含支持的皮肤列表
 -API级别:特定目标的API级别

创建avd:

android create avd --target 8 --name DROID_EMULATOR --sdcard 128M --skin WVGA854

创建一个HelloWorld项目:

android create project --name "HelloWorld" --target 8 --package com.test.helloworld --activity HelloWorld --path HelloWorld

这将在当前目录中创建一个HelloWorld目录。它还将在当前目录中创建build.xml。

您可以使用ant compile编译项目,使用ant install编译和安装项目。这将在可用的模拟器或设备上安装该应用程序。您可以使用ant查看可用的不同构建目标。

HTH!

PS:我正在使用Android SDK工具,修订版9和平台工具,修订版3。

答案 3 :(得分:2)

一旦你建立了AVD,那么就命令行构建而言,我发现这两个链接最有用:

http://developer.android.com/guide/developing/projects/projects-cmdline.html

http://developer.android.com/guide/developing/building/building-cmdline.html

如果您按照“创建Android项目”中的描述创建示例项目,那么它将为您创建目录结构,最有用的是build.properties和build.xml。即使您不熟悉Ant,使用Ant构建它也很容易,而且它通过自动生成的build.xml为您完成所有工作。该过程在第二个链接中详细描述。唯一乏味的是签署应用程序。链接没有告诉你的一件事是,如果你向build.properties添加两行,如:

key.store.password=YourPassword
key.alias.password=YourOtherPassword

然后签名也会自动完成。

示例应用程序本身就是一个Hello World。如果要将其推送到真实设备,您只需要对该应用进行签名。对于模拟器,您只需调用Ant'debug'和'install'目标,这些目标将构建并将应用程序推送到模拟器

答案 4 :(得分:0)

很抱歉没有直接回答你的问题,但是你在Ubuntu上有什么问题吗?我已经运行Ubuntu多年了,我是沉重的Eclipse用户,并没有遇到任何问题。

编辑:这要求澄清,因此应该是一个评论,但我当时没有足够的代表发表评论,所以那里。

答案 5 :(得分:0)

尝试坚持使用eclipse,如果你遇到问题,尝试在命令行上做事会更糟糕。 log cat和调试器等内置工具非常有用。

答案 6 :(得分:0)

我在ubuntu 10.10上运行eclipse for android dev而且我没有遇到任何麻烦。不要放弃日食。我建议问一下你在eclipse中遇到麻烦的问题。

如果问题是在日食中你得到“??????????”当您尝试在手机上运行设备ID时,您只需在eclipse打开时在终端中运行sudo adb kill-serversudo adb start-server。您可能还需要以root身份登录,以将adb(从您的android sdk)添加到PATH环境变量。