打造一个全命令行的 Android 构建系统

发布于 2024-11-18 00:53:50 字数 4947 浏览 0 评论 0

IDE 都是给小白程序员的,大牛级别的程序员一定是命令行控,终端控,你看大牛都是使用 vim、emacs 就一切搞定

这话说的虽然有些绝对,但是也不无道理,做开发这行要想效率高,自动化还真是缺少不了命令行工具,因为只有命令行才是最佳的人机交互工具。其实 IDE 也是底层也是调用命令行工具而已,只不过给普通开发者呈现一个更友好的开发界面。这里可不是宣扬让大家放弃 IDE 都改命令行,只是每种事物都有他存在的理由,无论是编程语言还是工具都是一个原则 没有最好的,只有最合适的。

前一段时间做一个人产品 http://xbrowser.me ,发布产品的时候为了统计各渠道流量免不了要构建不通的渠道包,你懂得国内渠道上百个,靠 IDE 编译打包非吐血不可。这些重复劳动最适合交个程序来做,很多程序员想不明白这个问题,宁愿把大量的精力时间花在业务上,却不知道用工具提高工作效率。在这里写一篇简单的教程,告诉大家怎么脱离 IDE 环境完成一个 android 项目的编译构建,有了这基础开发什么自动化构建工具都不是什么难事了, 前一阵子做的一个打包 html5 应用的在线工具 AppBuilder 就是基于命令行构建完成的。

说到命令行自然是不需要图形界面,所以 Android SDK 的安装下载自然都是在终端上进行。下面是本文中使用的一些 SDK 和基本环境。

  • ubuntu server 14.04 (64 位)
  • JDK 1.7
  • android-sdk_r24.0
  • gradle-2.2.1

进入正题,接下来一步一步介绍如何安装配置一个命令行下的编译构建系统.

step 1 安装 JDK 环境

配合 android 的 JDK 最好选用 JDK 官方版本而不是 Open JDK,下面是在 unbuntu 下安装 JDK 1.7 的方法。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

step 2 安装 Android SDK

android sdk 工具包的一些命令行工具是基于 32 位系统的,在 64 为平台运行 32 程序必须安装 i386 的一些依赖库,方法如下:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1

安装完成 32 位的依赖库后,我们使用 wget 去官方下载最新的 linux 下 android SDK 包。

cd ~
wget http://dl.google.com/android/android-sdk_r24.0.1-linux.tgz
tar xvzf android-sdk_r24.0.1-linux.tgz

编辑 .profile 或者 .bash_profile 把下面的目录增加到 path 的搜索路径中,确保 android SDK 的的一些命令工具可以直接在终端使用,比如 adb 命令。

ANDROID_HOME=$HOME/android-sdk-linux
export PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools"
exprot ANDROID_HOME

使环境变量生效

source ~/.profile

环境变量生效后,你可以使用 android 命令 列出 sdk 相关的列表,以便我们选择和自己项目匹配的 SDK 版本。(刚才只是安装了最基础的 SDK,要完全满足你的开发环境需要还得从下面的列表中选择你需要的 SDK 和工具更新下载)

android list sdk --all

输出如下所示:

   1- Android SDK Tools, revision 24.0.1
   2- Android SDK Platform-tools, revision 21
   3- Android SDK Build-tools, revision 21.1.2
   4- Android SDK Build-tools, revision 21.1.1
   5- Android SDK Build-tools, revision 21.1
   6- Android SDK Build-tools, revision 21.0.2
   7- Android SDK Build-tools, revision 21.0.1
   8- Android SDK Build-tools, revision 21
   9- Android SDK Build-tools, revision 20
  10- Android SDK Build-tools, revision 19.1
  11- Android SDK Build-tools, revision 19.0.3
  12- Android SDK Build-tools, revision 19.0.2
  13- Android SDK Build-tools, revision 19.0.1
  14- Android SDK Build-tools, revision 19
  15- Android SDK Build-tools, revision 18.1.1
  16- Android SDK Build-tools, revision 18.1
  17- Android SDK Build-tools, revision 18.0.1
  18- Android SDK Build-tools, revision 17
  19- Documentation for Android SDK, API 21, revision 1
  20- SDK Platform Android 5.0.1, API 21, revision 2
  21- SDK Platform Android 4.4W.2, API 20, revision 2
  22- SDK Platform Android 4.4.2, API 19, revision 4
  23- SDK Platform Android 4.3.1, API 18, revision 3
  24- SDK Platform Android 4.2.2, API 17, revision 3
  ....

这里包括不同的 Android API 版本和不同的构建工具,选择你想要安装项目的序号,这里我想安装 build tools 19.1 ,build tools 21 及 android 4.2.2 以上的 SDK 所以选择序号 “1,2,3,20,21,22,23”

android update sdk -u -a -t  1,2,3,10,20,21,22,23

step 3 安装 gradle 构建环境

使用 Ant 构建项目已经是过去式了,这里我们选用更加强悍和方便的构建工具 gradle 。

下载 grdle 二进制包

cd ~
wget https://services.gradle.org/distributions/gradle-2.2.1-bin.zip

释放到本地 Home 目录,创建名字为"gradle"的符号链接,符号连接的好处是方便版本更新,有了新的版本直接修改符号链接即可。

 unzip gradle-2.2.1-bin.zip 
 ln -s gradle-2.2.1 gradle

配置 gradle 环境变量并使其生效,编辑 ~/.profje 文件增加下面内容

GRADLE_HOME=$HOME/gradle
export PATH=$PATH:$GRADLE_HOME/bin

保存后使环境变量使其生效

source ~/.profile

环境变量生效后你可以在终端敲入'gradle'命令并运行用以检测 gradle 是否安装成功。

gradle

如果安装配置的没有问题将会提示类似下面的信息

:help
Welcome to Gradle 2.2.1
To run a build, run gradle <task> ...
To see a list of available tasks, run gradle tasks
To see a list of command-line options, run gradle --help
BUILD SUCCESSFUL

验证是否可以编译 android 应用

完成以上的环境配置,我们的一个 Android 下的基础构建环境就全部配置好了,接下来做的事情就是尝试使用 gradle 编译一个 android 应用出来验证我的编译环境是否 OK,下载我写的一个 gadle demo 例子进行测试。

git clone https://github.com/examplecode/gradle_demo
cd gradle_demo/hello-apk-with-gradle
gradle build

一切顺利的话,编译完成后,你会在 “hello-apk-with-gradle/build/outputs/apk” 目录下找到编译好的 apk 包。至于如何整合到你自己的项目中去,只需要仿照例子给你的项目提供一个"gradle.build" 脚本即可。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
23 人气
更多

推荐作者

雨幕

文章 0 评论 0

alipaysp_XIzGSod4b1

文章 0 评论 0

许强

文章 0 评论 0

别理我

文章 0 评论 0

败给现实

文章 0 评论 0

淡淡の花香

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文