当前位置: 首页 > 编程日记 > 正文

linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...

原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html 

之前写过一篇《windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件》,关于ant打包原理,请先阅读此篇文章,再阅读本文章。
我使用的Linux环境是ubuntu-10.10-desktop-i386.iso(32位的,之前自己虚拟机上装的,有点老,有些日子没操作linux系统了有点手生,如有写的不对的地方,还请指正。)。安装前所需要准备的软件:

1. JDK(jdk-7-linux-i586.tar.gz)

2. AndroidSDK

3.apache-ant-1.9.4-bin.tar.gz

将所需软件拷贝到当前用户的桌面上,开始环境搭建。

一、安装配置JDK

这个过程不再赘述,网上有很多教程,配置的环境变量的时候 注意是用户变量还是系统变量就行了。

二、安装配置AndroidSDK

由于谷歌被墙,所以不翻墙一般下载不到SDK,我们通过另外一种方式来获得androidSDK。

谷歌为了方便大家做android开发,推出了一个ADT Bundle的工具包,里面包含了Eclipse、ADT插件和SDK Tools,目前国内镜像能下载到的最新的是adt-bundle-linux-x86-20140702.zip,解压后里面包含eclipse和sdk文件夹,我们就用这个sdk文件夹来配置android SDK。将这个sdk文件夹拷贝到系统中,我的放到了opt目录下。然后配置用户环境变量:

1、执行 sudo gedit /etc/profile 命令 ,讲以下配置加入到文件末尾:

export ANDROID_HOME=/opt/adt-bundle-linux-x86-20140702/sdk

export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH

2、修改完成后,保存关闭文件,生效一下:sudo source /etc/profile

3、输入命令:android,如果出现以下: Android SDK and AVD Manage图,说明配置成功。

注:这里需要注意下,我们当前android开发环境是Android5.0.1,也就是API 21,而adt-bundle-linux-x86-20140702.zip自带的sdk是API 20,所以我们需要更新下我图上选择的两个目录。

三、安装配置ant

ant 解压后我一样是放到了opt目录下。

1、执行 sudo gedit /etc/profile 命令 ,将以下红色部分配置下:

export PATH=$JAVA_HOME/bin:$PATH:$ANT_HOME/bin

export ANT_HOME=/opt/apache-ant-1.8.2

2、配置完成后,保存关闭文件,生效一下:sudo source /etc/profile

3、验证是否安装成功,输入命令: ant -version,如果输出以下内容,则表示配置成功。

Apache Ant(TM) version 1.9.4 compiled on April 29 2014

四、打包APK

以上环境配置好之后,进入apk打包环节。

1、从SVN下载最新工程代码。

2、由于windows和linux的不同,我们这里需要修改一些配置文件,让ant自动打包同时支持windows和linux环境。

修改epeiwang_yxhd工程下build.xml,将<property file=”local.properties” />这个属性配置 修改为以下内容:

<property environment=”env” />

<property name=”sdk.dir” value=”${env.ANDROID_HOME}”/>。

因为我们local.properties文件中配置的sdk.dir=D:\\Program Files\\Android\\android-sdk,我们修改之后,直接取的是当前系统环境中配置的ANDROID_HOME也就是sdk的路径。

检查下引用的三个第三方工程目录下的build.xml文件,如果有同样问题,一并修改。

3、将项目联通三个第三方工程传到ubuntu系统桌面上。然后命令进入epeiwang目录下,执行ant deploytest或者ant deployrel打包相应环境的APK。

4、打包成功

注意:如果提示Unable to delete file /home/yangzhenwei/Desktop/antAPKyxhd/epeiwang/bin/AndroidManifest.xml 这个错误,说明权限不够,切换到root账户,执行即可。

转载于:https://www.cnblogs.com/ycxyyzw/p/4555328.html

相关文章:

自制的一个eclipse 插件jcodesmith(代码生成器)

为什么80%的码农都做不了架构师&#xff1f;>>> 实现思路 使用模板输出&#xff0c;定制一些特定的输入【如数据库元素、普通文件】等控制模板生成&#xff1b;并把指定输入可视化&#xff0c;方便使用&#xff1b; 下载安装 插件下载&#xff1a;http://git.os…

Boring counting HDU - 3518 (后缀数组)

Boring counting \[ Time Limit: 1000 ms \quad Memory Limit: 32768 kB \] 题意 给出一个字符串&#xff0c;求出其中出现两次及以上的子串个数&#xff0c;要求子串之间不可以重合。 思路 对字符串后缀数组&#xff0c;然后枚举子串长度 \(len\)&#xff0c;若某一段连续的 \…

什么是JTAG

JTAG(Joint Test Action Group)联合测试行动小组)是一种国际标准测试协议&#xff08;IEEE 1149.1兼容&#xff09;&#xff0c;主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议&#xff0c;如DSP、FPGA器件等。标准的JTAG接口是4线&#xff1a;TMS、 TCK、TDI、TDO&a…

Java项目:个人博客系统(java+SSM+Mysql+Servlet+JavaWeb)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 项目内容包括&#xff1a;首页&#xff0c;登陆&#xff0c;新建文章&#xff0c;搜索&#xff0c;登陆日志&#xff0c;登录次数&#xff0c;评论统计&#xff0c;相关信息&#xff0c;文章列…

Lucene4 入门(2)–Field类及辅助类说明

2019独角兽企业重金招聘Python工程师标准>>> Lucene4 入门(2)–Field类及辅助类说明 一、Eclipse中Field类的继承关系图&#xff1a; 二、Field类 1、 类的说明 在一般情况下为Document对象创建一个Field对象会使用它的子类&#xff0c;比如&#xff1a; IntField,…

C#入门详解(4)

什么是类型 类型又名数据类型。表示数据在内存中存储时的型号。小内存容纳大尺寸数据会丢失精度&#xff0c;发生错误。 大内存容纳小尺寸的数据会导致内存浪费。 编程语言的数据类型与数据的数据类型不完全相同。 类型在C#语言中的作用 类型所包含的信息有&#xff1a; 存储此…

使用 Trace32 对 FLASH 编程

from: http://www.ibm.com/developerworks/cn/linux/l-trace32/随着软硬件复杂性的增加&#xff0c;在嵌入式系统开发中&#xff0c;调试器对项目的开发进度、质量起着越来越重要的作用。在众多的调试器中&#xff0c;Lauterbach 公司的 Trace32 凭借其强大的功能&#xff0c…

Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明

导航目 录&#xff1a;Farseer.net轻量级ORM开源框架 目录 上一篇&#xff1a;没有了 下一篇&#xff1a;Farseer.net轻量级ORM开源框架 V1.x 入门篇&#xff1a;数据库配置 前言V1.x版本终于到来了。本次版本的开发从3月份开始&#xff0c;花了一个月的时间完成了概念版本设…

Java项目:健身管理系统(Java+ssm+springboot)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 主要技术&#xff1a;springmvc、 springboot 、mybatis、mysql 、jQuery、layui、css、jsp shiro权限控制 主要功能截图如下&#xff1a; 用户登录、首页主要功能有&#xff1a;会员信息管理、会员到期续费…

计算几何算法概览

为什么80%的码农都做不了架构师&#xff1f;>>> 计算几何算法概览一、引言 计算机的出现使得很多原本十分繁琐的工作得以大幅度简化&#xff0c;但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简单的通用解决方案&#xff0c;比如几何问题。作为计算…

诚意租房网blog2

&#xff08;一&#xff09;数据库设计部分&#xff1a; 创建数据库hourse: 1&#xff1a;关注表 CREATE TABLE guanzhu ( id int(11) NOT NULL AUTO_INCREMENT, uid int(11) DEFAULT NULL, hid int(11) DEFAULT NULL, time datetime DEFAULT NULL, PRIMARY KEY (id) ) ENGINEI…

基于S3C4510B的一个简单BSP的开发报告

系统环境 &#xff08;一&#xff09; 硬件环境 CPU&#xff1a;S3C4510B SDRAM:W981216DH 16M FLASH:MX29LV160AB 2M &#xff08;二&#xff09; 软件环境 tornado2.01 for arm&#xff08;AKA的FTP上有tornado2.2需要的可以自己去下载&#xff1a;&#…

Java项目:房屋租赁管理系统(java+SSM+Layui+Maven+Mysql+Jsp)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能包括&#xff1a; 房屋租赁管理系统是一款方便快捷&#xff0c;易操作的租房和各种物业收费的管理系统&#xff0c;该系统官网包含着用户和管理员分类登录&#xff0c;减少了为使用管理员…

sdtz技术组成

发送短信数据库表到第二天就删除前一天的的内容重新建表是用触发器功能实现的 回款、发标、发短信一些核心功能是用windows服务运行在服务器上自动运行的 sql管理中的维护计划就能设置自动备份数据库转载于:https://www.cnblogs.com/zheng510ke/p/4562812.html

13个 ASP.NET MVC 的扩展

ASP.NET MVC设计的主要原则之一是可扩展性。处理管线&#xff08;processing pipeline&#xff09;上的所有&#xff08;或大多数&#xff09;东西都是可替换的。因此&#xff0c;如果您不喜欢ASP.NET MVC所使用的约定&#xff08;或缺乏某些约定&#xff09;&#xff0c;您可以…

javascript实例

数组排序 ①冒泡排序 思路&#xff1a; 比较相邻的元素。如果第一个比第二个大&#xff0c;就交换他们两个。对每一对相邻元素作同样的工作&#xff0c;从开始第一对到结尾的最后一对。在这一点&#xff0c;最后的元素应该会是最大的数。针对所有的元素重复以上的步骤&#xff…

Ubuntu10.04安装Flash插件

1. 从Adobe下载Flash安装程序&#xff0c;并且解压。 tar -xzvf install_flash_player_10_linux.tar.gz 2. 把解压出来的“libflashplayer.so” 复制到 /usr/lib/mozilla/plugins 目录下。 sudo cp libflashplayer.so /usr/lib/mozilla/plugins 3. 执行以下命令&#x…

Java项目:健身俱乐部管理系统(java+SSM+Mysql+Jsp)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 项目介绍&#xff1a; 基于jspmysqlSpringmybatis的SSM健身房管理系统 运行环境: jdk 1.8 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA都可以 tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可&#xf…

通过代理进行页面传值

A 页面跳转到 B页面&#xff0c;在关闭B页面的时候想将B页面的某些内容回传给A页面 在B页面写代理的相关方法 protocol 控制器的名称 Delegate <NSObject> optional -(void) xxxxxx:(控制器 *) control end interface 控制器 : UIViewController property (weak,nonatom…

Linux系统下如何安装软件包

现在一般是使用 RPM &#xff0c;YUM 和 APT 来管理软件包。软件包常用的也就是&#xff0c;查找软件包&#xff0c;安装&#xff0c;卸载&#xff0c;升级。这几个功能。RPM 比较经典&#xff0c;但是也比较麻烦&#xff0c;尤其是在软件依赖关系上面&#xff0c;有的时…

自己设计大学排名-数据库实践

今天我们来学习以下有关于数据提取以及数据库的一些知识&#xff0c; 我们知道其实数据库是一个非常神奇的存在&#xff0c;它是是按照 数据结构来组织、 存储和管理数据的仓库 我们可以使用它对数据进行储存和管理&#xff01; 下面是有关于sqlite3的学习&#xff0c;SQLite3 …

Windows 和 Linux 应用程序从上到下调用层次比较

刚毕业的时候&#xff0c;做了将近一年的Window下的程序开发&#xff0c;主要用MFC&#xff0c;那是也不明白程序在操作系统角度从上到下的整个调用层次。遇到调用库函数&#xff0c;不明白&#xff0c;就查MSDN&#xff0c;每个月1500行代码左右&#xff0c;那时以为这就是软件…

Java项目:药品管理系统(java+swing+Gui+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a;用户管理、药品库存管理、进销管理、营销管理、药品购入、药品售出、药市信息 系统主页&#xff1a; SuppressWarnings("serial") public class SystemMainView extends JFr…

WEBSHELL跳板REDUH使用说明

原文链接: http://www.fendou.info/network/webshell-proxy-reduh.html reDuh是可以把内网服务器的端口通过http或https隧道转发到本机&#xff0c;形成一个TCP连通回路&#xff0c;用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部端口的工具。 reDuh和LCX类似&…

站立会议(三)

一、会议时间&#xff1a;2014年4月13日 二、会议目的&#xff1a;统计项目进度以及每个人的进度、计划以及问题 三、会议内容&#xff1a; 党云龙&#xff1a; 今天内容 查阅资料&#xff0c;上网搜索&#xff0c;完成API调用&#xff1b; 遇到问题 还是在实现的时候无法阻止…

python celery

celery 一般用于做异步 和定时任务 不过听网上说 celery 坑还是蛮多的&#xff0c;特别定时任务&#xff0c;我们一般用来做定时任务&#xff0c;还有数据导入导出。celery 不支持 redis cluster 集群模式uWSGI 自带了一个简单的 Spooler 可以处理大部分异步任务和周期运行的任…

c语言实现memcpy

今天到I 公司去面试&#xff0c;面试方式比较特殊&#xff0c;没有笔试&#xff0c;就是2 个面试官&#xff0c;一人一句轮番发问&#xff0c;涉及面很广&#xff0c;涉及到操作系统(MMU 、page out 、process/thread 、semaphore 、interrupt), OOP( 多态、design pattern) 、…

Java项目:图书管理系统(java+swing+Gui+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a;借阅列表、图书类别管理、图书馆里、用户管理、借阅管理、关于我们 登录服务类&#xff1a; WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet …

十五天精通WCF——第三天 client如何知道server提供的功能清单

通常我们去大保健的时候&#xff0c;都会找姑娘问一下这里能提供什么服务&#xff0c;什么价格&#xff0c;这时候可能姑娘会跟你口述一些服务或者提供一份服务清单&#xff0c;这样的话大 家就可以做到童嫂无欺&#xff0c;这样一份活生生的例子&#xff0c;在wcf中同样是一个…

MySQL Cluster 日常维护

在前面几篇文章已经详细介绍了MySQL Cluster的搭建&#xff0c;配置讲解。而且相信大家都掌握了基本用法。现在我们来看看Cluster的日常维护。熟悉日常维护&#xff0c;将有助于工作中更好的管理和使用Cluster。 一. 数据备份 相信大家都熟悉mysql的日常备份工具&#xff0c;比…