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. 最大值减去最小值小于或等于num的子数组数量

    [说明]: 本文是左程云老师所著的<程序员面试代码指南>第一章中“最大值减去最小值小于或等于num的子数组数量”这一题目的C++复现. 本文只包含问题描述.C++代码的实现以及简单的思路, ...

  2. PHP的排列组合问题 分别从每一个集合中取出一个元素进行组合,问有多少种组合?

    首先说明这是一个数学的排列组合问题C(m,n) = m!/(n!*(m-n)!) 比如:有集合('粉色','红色','蓝色','黑色'),('38码','39码','40码'),('大号','中号') ...

  3. Flask源码解读(一)

    Flask是一个使用 Python 编写的轻量级 Web 应用框架.Flask 本身只是 Werkezug 和 Jinja2 的之间的桥梁,前者实现一个合适的 WSGI 应用,后者处理模板. 当然, ...

  4. 斯坦福 IOS讲义 课件总结 一

    1,引入文件, #import <Foundation/Foundation.h> IOS7 中可以这样写 @import Foundation; 2,在.h文件引入的是公用的,在.m文件 ...

  5. Linux软件间的依赖关系(转)

    Linux中的软件大部分是零碎的,其粒度比windows的小很多,软件之间的依赖关系很强烈,下面是自己的一些理解: 一.Linux中的软件依赖Linux中的软件依赖关系成一颗拓扑树结构,比如A直接或间 ...

  6. 嵌入式C开发人员的最好的0x10道笔试题

    嵌入式C开发人员的最好的0x10道笔试题 2006-11-22 15:53 约定: 1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了 2)数据类型 char 一个字节 1 byte int ...

  7. document.createElement在IE和Firefox下的差异

    IE有3种方式都可以创建一个元素: 1 document.createElement("<input type=text>") 2 document.createEle ...

  8. QT 获取文件MD5值

    /* 方法1 */ QFile theFile(fileNamePath); theFile.open(QIODevice::ReadOnly); QByteArray ba = QCryptogra ...

  9. DropBox为什么一直那么红——靠用户体验,旗帜鲜明,它要保存的是你的重要随身资料,并且开放API

    链接:http://www.zhihu.com/question/19705960/answer/71742127来源:知乎 看到这个问题竟然从11年答到现在,有趣的是这几年里国内云存储行业变化也是蛮 ...

  10. Nginx 的 Echo 模块 —— echo-nginx-module(转)

    Nginx 有个 echo 模块可以用来输出一些简单的信息,例如: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 ...