android在ubuntu中编译为.apk文件

  今天我在ubuntu环境之下将android程序编译为.apk文件,特将其过程写下来:

  1. 在windows环境下使用MyEclipse编辑好android工程,我的工程名为:TestAndroid;

  2. 在ubuntu中搭建好android环境(略),并设置好环境变量:

  设置环境变量过程如下:
  vim ~/.bashrc
  在.bashrc中新增或整合PATH变量,如下
  #java 程序开发/运行的一些环境变量
  JAVA_HOME=/usr/lib/jvm/java-6-sun
  JRE_HOME=${JAVA_HOME}/jre
  export ANDROID_JAVA_HOME=$JAVA_HOME
  export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSPATH
  export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
  export JAVA_HOME;
  export JRE_HOME;
  export CLASSPATH;
  HOME_BIN=~/bin/
  export PATH=${PATH}:${JAVA_PATH}:${JRE_PATH}:${HOME_BIN};
  #echo $PATH;

  最后不要忘记了,同步这些变化:
  source ~/.bashrc

  3. android编译的一些环境变量设置(为了方便使用mm编译等):

  (1)在~/.profile文件末尾加上:

  PATH=$PATH:.../out/host/linux-x86/bin(其中...代表你的android环境根目录)

  注意使用source同步变化哦,这时你就可以方便的使用adb等工具了。

  (2)在~/.bashrc文件中加上:

  source .../build/envsetup.sh(其中...代表你的android环境根目录)

  还是要同步变化的哦,这时你就可以方便的使用mm了,不用每次使用都要使用

  . build/envsetup.sh 设置当前的shell环境变量了。

  4. 使用samba将工程TestAndroid上传到ubuntu服务器上,放到android环境根目录或其子目

  录之下,并删除工程中的bin,gen,.project等目录,只留下:AndroidManifest.xml 

  res src 这三个文件即可。

  5. Android.mk 文件的编写(仿照android的例子编写即可):

  LOCAL_PATH:= $(call my-dir)
  include $(CLEAR_VARS)

  LOCAL_MODULE_TAGS := debug

  LOCAL_SRC_FILES := $(call all-subdir-java-files)

  LOCAL_PACKAGE_NAME := TestAndroid

  LOCAL_PROGUARD_ENABLED := full

  include $(BUILD_PACKAGE)

  6. 编写好Android.mk文件后,在你的工程根目录之下输入:mm 编译工程;比如:我的工程

  放在android环境根目录之下的子目录AndroidProject之下,那么在.../AndroidProject/

  TestAndroid 目录之下直接执行mm就可以了。

  7. 编译完成后就会将apk生成到 out/target/product/generic/system/app/(android工程

  名).apk。

android在ubuntu中编译为.apk资料的更多相关文章

  1. 配置android source 在ubuntu中编译环境

    在Ubuntu中可以配置 android source 编译环境,推荐使用最新的64位的Ubuntu  LTS(Long Time Support); 1.安装JDK. AOSP主分支代码需要java ...

  2. 在Ubuntu中编译QT工程Tesful

    今天晚上开机到Ubuntu中了,试了一下之前在Windows下建立的Tesful工程,发现没有任何改动就可以编译成功/运行. 附上图:

  3. 解决一个Ubuntu中编译NEON优化的OpenCV的错误

    在Ubuntu 16中编译开启NEON优化的Opencv时,遇到libpng编译是使用汇编代码的错误,完整错误见文章末尾.通过查询发现解决方案是安装跨平台编译器,安装代码如下: sudo apt-ge ...

  4. Android源码中编译出指定jar包

    今天想把android源码/vendor/letv/frameworks/base/java下的源码编译成 framework-letv.jar供乐乐语音客户端使用,编译完后,发现jar包文件虽然生成 ...

  5. ubuntu中编译安装gcc 9.2.0

    一切都和其他源码安装软件是一样的: 一.下载源代码: http://ftp.gnu.org/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.xz 二.解压文件 tar xvf gcc- ...

  6. android 开发 程序中下载安装APK文件 问题汇总 解析程序包时出现问题

    1 若把APK文件保存到应用程序的files目录下,则一定注意保存时使用 FileOutputStream os = openFileOutput(fileName, MODE_WORLD_READA ...

  7. PHP在ubuntu中编译安装

    关于怎么获取php源码和解压就不再说了. 编译的参数为: ./configure --prefix=/opt/php --with-bz2 --with-mcrypt --with-mhash --w ...

  8. 在android应用程序中启动其他apk程序

    Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用. 一般我们知道了另一个应用的包名和MainActivity的名 ...

  9. Ubuntu中编译链接Opencv应用的简便方式

    安装完毕Opencv后,使用下面命令查 看编译/连接參数 pkg-config --cflags --libs opencv 可看到例如以下信息 -I/usr/include/opencv  /usr ...

随机推荐

  1. POJ 2142:The Balance_扩展欧几里得(多组解)

    先做出两个函数的图像,然后求|x|+|y|的最小值.|x|+|y|=|x0+b/d *t |+|y0-a/d *t| 这个关于t的函数的最小值应该在t零点附近(在斜率大的那条折线的零点附近,可以观察出 ...

  2. Java RMI 简介及其优劣势总结

    今天,帮别人看UDAS配置问题时,看到采用的是RMI方式的调用,如:rmi://10.20.134.140:2299/DataServer,而且这个端口是被直接硬编码在UDAS的代码中的.既然看到了, ...

  3. linux cmd: ps

    每天一个linux命令(41):ps命令 http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html Linux中的ps命令是Proces ...

  4. JavaSE_ 网络编程 目录(26)

    JavaSE学习总结第26天_网络编程26.01 网络编程概述26.02 网络模型概述和图解26.03 网络编程三要素概述26.04 网络编程三要素之IP概述126.05 InetAddress类的概 ...

  5. 5.6.1 Boolean类型

    Boolean类型是与布尔值对应的引用类型.要创建Boolean对象,可以像下面这样调用Boolean构造函数并传入true或false值. var booleanObject=new Boolean ...

  6. 整理一些常用函数库PHP版本

    function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) { if(function_ex ...

  7. Libev学习笔记1

    和Libevent相似,Libev是一个高性事件驱动框架,据说性能比Libevent要高,bug比Libevent要少.Libev只是一个事件驱动框架,不是网络库,因为它的内部并没有任何socket编 ...

  8. poj 2192 Zipper(区间dp)

    题目链接:http://poj.org/problem?id=2192 思路分析:该问题可以看做dp问题,同时也可以使用dfs搜索求解,这里使用dp解法: 设字符串StrA[0, 1, …, n]和S ...

  9. HDU 1544 Palindromes(回文子串)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1544 问题分析: 问题要求求出字符串的连续子串中的回文子串个数.首先,需要区分连续子串与子序列的区别. ...

  10. UISegmentedControl(分页控制器) AND UISlider(滑块控制器)

    - (void)viewDidLoad { [super viewDidLoad]; UIImageView * animatedImageView = [[UIImageView alloc]ini ...