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

Posted

技术标签:

【中文标题】如何在 linux 上设置 android SDK 以进行命令行开发?【英文标题】:How to set up android SDK for command line development on linux? 【发布时间】:2011-01-26 19:55:49 【问题描述】:

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

    从http://developer.android.com/sdk/index.html下载了android-sdk_r05-linux_86.tgz tar xvzf android-sdk_r05-linux_86.tgz ln -s android-sdk-linux_86 android 在 .tcshrc 中添加了 setenv PATH .....:/home/user/android/tools 源.tcshrc 运行“机器人”。这打开了一个gui。在可用包下:我安装了所有东西,然后退出了 gui。 运行 'android list targets' 并列出了这些:

可用的 Android 目标:

id: 1 或“android-3” 名称:安卓1.5 类型:平台 API等级:3 修订:1 皮肤:HVGA-P、HVGA(默认)、QVGA-P、QVGA-L、HVGA-L

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

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

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

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

id: 7 或“android-7” 名称:安卓2.1 类型:平台 API等级:7 修订:1 皮肤:WQVGA432、HVGA(默认)、WVGA800、WVGA854、WQVGA400、QVGA

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

我想为我的摩托罗拉机器人创建一个简单的 hello world 程序。我应该使用这些目标中的哪一个?

我如何查看皮肤?

如果我从命令行运行“android”,它会说没有虚拟设备。虚拟设备是否与目标相同?

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


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

谢谢, 鲍勃

稍后:

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

android 创建 avd -t 1 -n myavd1 ....... android 创建 avd -t 8 -n myavd8

当我从命令行运行“android”时,这在 gui 中为我提供了 8 个虚拟设备。

有谁知道 Droid 使用什么 api 级别/平台?在哪里可以买到合适的皮肤?对于 Droid 开发,我需要了解任何硬件规格吗?

最后,有没有从命令行(linux)创建一个hello world应用并在模拟器上运行然后在真手机上运行的步骤列表?

鲍勃

【问题讨论】:

【参考方案1】:

很抱歉没有直接回答您的问题,但是您在 Ubuntu 上使用 Eclipse 有什么问题?我已经运行 Ubuntu 多年了,我是 Eclipse 的重度用户,并且对这个设置没有任何问题。

编辑:这要求澄清,因此应该是评论,但当时我没有足够的代表来发布 cmets。

【讨论】:

答案如何?此外,Eclipse 在任何平台上都有问题,而不仅仅是 Ubuntu Ognian,用户292344 写道:“我尝试了eclipse,但它知道在Ubuntu 上运行有问题,所以我放弃了它。”这太含糊了(就像您对未指定的 Eclipse 问题的评论一样)。这确实是题外话,所以请坚持可能有助于 OP 的事实。 是的.. Ubuntu 和 Eclipse 对我来说完全没有问题... +1 用于 Ubuntu 和 Eclipse... 如果他能解释他的问题是什么,那么我们可以解决它..或尝试解决它...我的设置.. Ubuntu 10.10,Eclipse Helios,所有软件和 SDK 工具的最新更新...它是我的主要构建环境。 -1 Eclipse 速度慢、笨重且臃肿。你喜欢它……酷……你也喜欢寿司吗?猫怎么样..你对猫有什么看法?狗人?现在,你知道如何在命令行上设置 android dev 了吗?是的.. 很酷,你告诉我们怎么样。【参考方案2】:

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

【讨论】:

【参考方案3】:

想创建一个简单的hello world 我的摩托罗拉机器人程序。哪一个 我应该使用这些目标中的哪一个?

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

我如何查看皮肤?

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

您需要为 Motorola Droid 安装 Skins。 在此处查看 MotoDev 网站..

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

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

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

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

API 级别:应该使用 6 或更高,因为并非所有设备都已更新。

规格:见这里http://developer.motorola.com/products/droid/

最后,有没有步骤列表 从 命令行 (Linux) 并在 模拟器,然后在真机上运行 电话?

选择 Eclipse + Ubuntu.. 设置皮肤和插件也更容易。插件与物理设备最匹配。其他选择是使用繁琐的开发(对于像你这样的初学者)。在此处询问您的疑问或作为单独的问题发布。你肯定会得到回应。

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

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

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

【讨论】:

【参考方案4】:

一旦构建了 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 的“调试”和“安装”目标,它们将构建应用程序并将其推送到模拟器

【讨论】:

【参考方案5】:

我在 ubuntu 10.10 上为 android dev 运行 eclipse,我一点问题都没有。不要放弃日食。我建议您询问有关您在 Eclipse 中遇到问题的问题。

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

【讨论】:

【参考方案6】:

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

我最近开始将我所有的 Android 项目转换为 Maven 管理。有一个growing community 使用这种方法,它可以是相当愉快的。

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

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

当您将所有这些功能与 Maven 提供的现有优势(自动测试、模块支持、依赖管理、自动发布、maven 站点生成等)结合起来时,您会真正获得一个非常简化的工作流程。

哦,它也可以control 和deploy 模拟器!

【讨论】:

【参考方案7】:

使用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。

【讨论】:

试过 "android create avd --target 8 --name DROID_EMULATOR --sdcard 128M --skin WVGA854" 得到 "jenkins@ip-172-31-22-20:~/pp_files$ $ANDROID_HOME /tools/android create avd --target 8 --name DROID_EMULATOR --sdcard 128M --skin WVGA854 Valid ABIs: no ABIs. Error: This platform has more ABIs. Please specify one using --abi.jenkins@ip- 172-31-22-20:~/pp_files$ $ANDROID_HOME/tools/android 创建 avd --target 8 --name DROID_EMULATOR --sdcard 128M --skin WVGA854 "

以上是关于如何在 linux 上设置 android SDK 以进行命令行开发?的主要内容,如果未能解决你的问题,请参考以下文章

如何在命令行上安装 Android SDK Build Tools?

c语言中如何使用android ADB命令??

如何在Mac上找到Android SDK Manager路径

如何在mac本上安装android sdk

如何在mac本上安装android sdk

如何在mac本上安装android sdk