Linux 下使用命令行开发 Android 应用程序

原文: http://oss.org.cn/?action-viewnews-itemid-68999


本文将讲述如何在 Linux 平台下使用命令行开发 Android 应用程序,以及如何创建 PhoneGap 的 android 项目,如果你对这此感兴趣,请就继续阅读本文。

首先,让我们安装 Android SDK(我假设你已经安装了 JDK 和 Ant)。你可以从在这里安装 SDK 到你的开发平台上。由于我使用的是 Ubuntu,所以我下载 Linux 平台下的 SDK 到我的主目录。解压缩下载文件,并设置加载可执行文件的路径:

 

1
2
3
$ tar xvf android-sdk_r16-linux.tgz
$ export PATH=$PATH:~ /android-sdk-linux/tools :~ /reqs/android-sdk-linux/platform-tools
$ android sdk

 在命令行开发 Android 应用程序

如果你不希望每次都设置 PATH,你可以设置你的〜/.bashrc〜/.bash_profile文件。

然后,使用 Android SDK 的命令打开 Android SDK 管理器。下载必要的 SDK 版本包。我打算开发姜饼和冰淇淋三明治系统手机的应用程序,因此下载 Android 4.0.3(API 15)和 Android 2.3.3(API 10)的组件。

让我们来检查是否安装了 SDK 版本包:

1
$ android list targets

当开发应用程序的时候,我们需要创建一个 Android 虚拟机(AVD)来测试应用程序:

1
$ android avd

 在命令行开发 Android 应用程序

通过上一步,你可以下载并创建许多 AVD。

查看 AVD 列表,可以使用以下命令:

1
$ android list avd

假设现在我们要在 AVD 上运行名字为”Gingerbread“的模拟器,使用下面命令:

1
$ emulator @Gingerbread

 在命令行开发 Android 应用程序

现在我们已经基础设置好了开发 Android 应用程序的环境。

创建一个 Android 项目

让我们创建一个 Android 项目(要创建 PhoneGap 的 Android 项目,请阅读下一节):

$ android create project -n TestAndroidProj -t 'android-15' -p~/android_proj -k com.example -a TestProjActivity

●-n:项目名(TestAndroidProj);

●-t:android SDK 版本号(android-15);

●-p:Android 项目的路径;

●-k:Java 的包名;

●-a:初始的Activity

运行上面的命令后,一个 Android 项目就创建完成了。

检查一下目录及文件:

1
2
3
$ cd android_proj/
$ ls src /com/example/TestProjActivity .java
src /com/example/TestProjActivity .java

安装和创建 PhoneGap 的应用程序

如果你不打算创建 HTML5 的应用程序或不打算使用 PhoneGap,你可以跳过这一节。

安装好 Android SDK 后,或从GitHub获取一个稳定的版本,并且添加 bin 目录到你的PATH

1
2
$ git clone git: //git .apache.org /incubator-cordova-android .git
$ export PATH=$PATH:~ /incubator-cordova-android/bin

让我们创建一个 Cordova 项目,这是将 android 项目进行套壳,需要设置 PhoneGap 的依赖(jar 和 js 文件):

1
2
$ cd ~ /incubator-cordova-android
$ . /bin/create ~ /phonegap_android_proj com.example TestProjActivity 3

第一个参数是该项目的路径;

第二个是包名(JAVA);

第三是初始 Activity 的名字,它用于载入 index.html;

第四个参数是 Android SDK 的 ID(如’android 1.5′的 id 是’3′)。

让我们来看看,如果该项目已成功创建:

1
2
3
4
5
6
7
$ cd ~ /phonegap_android_proj/
$ ls assets /www/
cordova-1.5.0.js  index.html  main.js  master.css
$ ls libs/
cordova-1.5.0.jar
$ ls res /xml/
cordova.xml  plugins.xml

Ant 命令

假设现在,我们已经完成该项目的代码编写,我们需要在模拟器上测试。因此,先让我们启动模拟器,然后启动 Android 调试桥(ADB)。建议你用超级用户启动,因为如果以后用你的手机连接,它需要有必要的权限来访问:

1
$ sudo ~ /android-sdk-linux/platform-tools/adb start-server

检查 adb 服务进程运行情况:

1
2
3
$ ps auxgrep adb
root     12589  0.0  0.0  20184   948 pts /3
Sl   16:43   0:00 adb fork-server server

将应用程序部署到模拟器

在项目的根目录运行 ant 命令,部署应用程序到模拟器(用 debug key 进行签名):

1
2
$ cd ~ /android_proj
$ ant clean debug install

当应用程序显示在模拟器上,你就可以测试了。如果你打算使用手机测试,同样可以使用上述相同的命令。

你可以使用的虚拟调试监视服务器(DDMS)调试和查看日志信息:

1
$ ddms

此时,只要你对开发的应用程序满意,你就可以进行签名,并把它发布到谷歌市场。

签名应用程序发布到市场

首先,让我们生成一个私钥用于签名:

1
2
$ keytool -genkey - v -keystore app_signing.keystore - alias release \
-keyalg RSA -keysize 2048 -validity 10000

JDK 的 keytool 用于创建私钥。

-keystore:输出私钥文件的名称;

-alias:私钥别名,可存储多个键在密钥库用来后面使用;

设置 RSA 加密算法,密钥长度 2048 位和 10000 天的有效期。

确保生成的 keystore 文件非常安全,因为这谷歌市场对你的唯一标识。

成功生成私钥后,我们把应用程序编译成发布模式:

1
$ ant clean release

你会发现在你项目的 bin 目录下,有一个 apk 文件:<project_name>-release-unsigned.apk(在我们的例子中是’TestAndroidProj-release-unsigned.apk’)。说明我们还没有对先前创建的私钥进行应用程序签名:

1
2
$ jarsigner -keystore app_signing.keystore -digestalg SHA1
  -sigalg MD5withRSA bin /TestAndroidProj-release-unsigned .apk release

使用 jarsigner 工具签名,keystore 是先前创建的,同时指定签名算法,发布 Android 应用程序用了 keystore 的别名。

让我们来验证一下:

1
$ jarsigner -verify bin /TestAndroidProj-release-unsigned .apk

你应该得到一个’jar verified’ 的消息。

最后,让我们提交生成的 apk 文件到 Google 市场。

1
$ zipalign - v 4 bin /TestAndroidProj-release-unsigned .apk bin /TestAndroidProj .apk

’4′指定 apk 文件使用 4 字节;接下来的参数是签名后的应用文件;最后一个参数是输出上传到谷歌市场的文件。

这里唯一我们经常使用的命令是 ant clean debug install,可以避免在 Eclipse 运行时内存不足。

注意:如果你是一个 Emacs 用户,你可以使用android-mode,它已经包含了上述命令,而且还带有其他好的东西。

英文原文:developing-android-applications-from-command-line


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值