`
mmdev
  • 浏览: 12846889 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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

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

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

如果你不希望每次都设置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 <span style="font-size:14px;">$ android avd</span>

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

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

1 $ android list avd

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

1 $ emulator @Gingerbread

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

创建一个Android项目

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

1 $ 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 $ cd android_proj/
2 $ ls src/com/example/TestProjActivity.java
3 src/com/example/TestProjActivity.java

安装和创建PhoneGap的应用程序

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

安装好Android SDK后,从这里获取Cordova(原名PhoneGap)(或从GitHub获取一个稳定的版本),并且添加bin目录到你的PATH

2 $ export PATH=$PATH:~/incubator-cordova-android/bin

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

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

第一个参数是该项目的路径;
第二个是包名(JAVA);
第三是初始Activity的名字,它用于载入index.html;
第四个参数是Android SDK的ID(如'android 1.5'的id是'3')。

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

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

Ant命令

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

1 $ sudo ~/android-sdk-linux/platform-tools/adb start-server
检查adb服务进程运行情况:
1 $ ps aux|grep adb
2 root 12589 0.0 0.0 20184 948 pts/3 Sl 16:43 0:00 adb fork-server server

将应用程序部署到模拟器

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

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

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

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

1 $ ddms

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

签名应用程序发布到市场

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

1 $ keytool -genkey -v -keystore app_signing.keystore -alias release \
2 -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 $ 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,它已经包含了上述命令,而且还带有其他好的东西。


分享到:
评论

相关推荐

    构建Adobe AIR应用程序

    使用 Flex SDK 创建您的第一个 AIR for Android 应用程序 第 6 章: 开发针对桌面的 AIR 应用程序 开发桌面 AIR 应用程序的工作流程 设置桌面应用程序属性 调试桌面 AIR 应用程序 对桌面 AIR 安装文件进行打包 ...

    Linux命令行下编译Android NDK的示例代码

    所以花了点时间研究Android NDK,网上的资料都是讲IDE里的编译方法,这里记录一下命令行下的编译方法,供有需要的朋友参考。 这里以编译hello-gl2为例: 0.安装Android NDK/SDK,设置PATH变量(根据具体情况调整) ...

    Google Android SDK开发范例大全(完整版)

    下一节讨论构建 Android 应用程序所需的开发环境。 -------------------------------------------------------------------------------- 回页首 所需的工具 开始开发 Android 应用程序的最简捷的方式是下载 ...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    Linux_Dersleri:Kali Linux上处理Linux命令行教程的文档资源

    为了使您轻松地遵循此处的“土耳其语基础Linux文档”的内容,已经开发了能够脱机工作的Web和android应用程序。 您可以使用应用程序从任何设备访问和跟踪所有文档内容,而不会受到干扰。 Android应用程式 除了当前的...

    platform-tools_r28.0.1-linux

    如果您是应用程序开发人员,则应从Android Studio的SDK Manager或 sdkmanager 命令行工具获取最新版本。这样可以确保使用其他Android SDK工具将工具保存到正确的位置并轻松更新。 但是,如果您只想要这些工具,可以...

    termux-api:Termux附加应用程序,它将设备功能作为API公开给命令行程序

    在开发或打包时,请注意,此应用程序需要使用与Termux主应用程序相同的密钥签名才能获得工作许可(仅允许主Termux应用程序调用此应用程序中的API方法)。 安装 Termux:API应用程序可以从获得。 此外,我们为那些...

    Aadhaar-Batua:使用 Aadhaar 简化付款的 Android 应用程序。 作为 https 的一部分开发

    打开命令行并按照以下说明进行操作: ``` &gt; gradlew.bat assembleDebug ``` 在 Mac OS X 和 Linux 上,打开终端并按照以下说明进行操作: $ chmod + x gradlew $ ./gradlew assembleDebug``` 注意:如果您拥有...

    android开发指南

    使用命令行工具和Android模拟器 - 第六章(1) 29 利用Windows CLI创建一个壳活动 - 第六章(2) 29 运行ActivityCreator.bat - 第六章(3) 30 项目结构 - 第六章(4) 32 在Windows CLI下创建Hello World!活动 - 第六章...

    Android C++高级编程:使用NDK_Onur Cinar, 于红PDF电子书下载 带书签目录 完整版

    13.2.2 创建WAVE播放器Android应用程序 306 13.2.3 创建WAVE播放器主Activity 306 13.2.4 实现WAVE Aduio播放 310 13.3 运行WAVE Audio Player 327 13.4 小结 328 第14章 程序概要分析和NEON优化 329 14.1 用...

    pro_android_cpp_with_the_ndk.pdf

    4.3.5 执行应用程序 4.3.6 剖析生成的代码 4.4 封装C语言代码 4.4.1 全局变量 4.4.2 常量 4.4.3 只读变量 4.4.4 枚举 4.4.5 结构体 4.4.6 指针 4.5 封装C++代码 4.5.1 指针、引用和值 4.5.2 默认参数 4.5.3 重载函数...

    platform-tools_r28.0.1-windows-linux-darwin

    如果您是应用程序开发人员,则应从Android Studio的SDK Manager或 sdkmanager 命令行工具获取最新版本。这样可以确保使用其他Android SDK工具将工具保存到正确的位置并轻松更新。 但是,如果您只想要这些工具,可以...

    QT完整自学例程序demo

    它是一个跨平台的 C++ 应用程序开发框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发图形用户界面程序,也可用于开发非图形用户界面(比如命令行界面)程序。Qt 是完全面向对象的,很容易扩展,并且...

    Haxe 3.0垮平台开源编程语言

    不管是开发原生iOS、Android应用,还是网页;不论是应用于服务器还是个人桌面,Haxe都 可以胜任。” Haxe分别为Windows、Mac OSX以及Linux安装程序进行打包,当然如果安装包出现问题或者洁癖者也可以进行手工安装。...

    LAMW4Windows-installer:可以生成Lazarus IDE [和所有设备!]的安装程序,可以为Android开发!”

    准备好为Android开发应用程序的 ! Linux用户,请此处 LAMW Manager安装以下工具和依赖项: Android NDK Android SDK 阿帕奇蚂蚁 Freepascal编译器 新增:构建FPC ARMv7 / Android 新增:构建FPC AARCH64 / ...

    学习Java基本语法 存放学习Java文件和Java代码.rar

    应用软件:word ,ppt,画图板,… 人机交互方式: 图形化界面 vs 命令行方式 应用程序 = 算法 + 数据结构 2.计算机语言的发展迭代史 第一代:机器语言 第二代:汇编语言 第三代:高级语言 面向过程:C,Pascal、...

    Keybase Go 库、客户端、服务、OS X、iOS、Android、Electron

    我们所有的客户端应用程序(macOS、Windows、Linux、iOS 和 Android)都在这个存储库中积极开发。拜托,四处挖掘。警告 我们希望您阅读我们的源代码。但是 - 这个 repo 中的一些东西是探索性的,你从源代码构建的...

    linux复习题

    6. Android系统是基于Linux操作系统开发的手机系统,因此在进行刷机、删除系统自带软件时需要获得管理员账户( )的权限。 A.administrator B.admin C.root D.liveuser 7.已知当前系统umask的值为022,请问这时新建...

    客户端:Keybase Go库,客户端,服务,OS X,iOS,Android,Electron

    该存储库中正在积极开发我们所有的客户端应用程序(macOS,Windows,Linux,iOS和Android)。 请挖。警告事项我们希望您阅读我们的源代码。 但是-此回购中的某些内容是探索,而您从源代码构建的应用程序可能并没有...

    5e-Roper-Droid:更好的D&D 5e应用

    更好的D&D 5e应用程序。 这个应用程式目前正在建设中,有关路线图的更多详细资料可以在找到。 要求 Android SDK 22(可以通过编辑pom.xml更改目标sdk) Maven版本3 Linux编译 必须设置ANDROID_HOME环境变量 还必须...

Global site tag (gtag.js) - Google Analytics