我是靠谱客的博主 爱笑季节,最近开发中收集的这篇文章主要介绍linux下android编译,linux下完全命令行搭建android开发环境和开发编译过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

linux下完全命令行搭建android开发环境和开发编译过程

author: 布智道

date:   2010.08.19

参考网上别人的经验加上自己的一点点探索,得出了此文.

现在只是完成了开发环境和编译打包,调试还要继续探索.

以下所有的测试都是在ubuntu 9.10上操作

当然相信其它版本也可以

ubuntu和debian应该可以直接按以下的操作进行

redhat或centos可能在安装java sdk时有所不同

而ms windows下可能除了安装java sdk, android sdk, android tools不同外

还要注意目录名'/'改为''

0, sudo apt-get install sun-java6-jdk

1, download sdk and tools

wget https://dl-ssl.google.com/android/repository/tools_r06-linux.zip

wget https://dl-ssl.google.com/android/repository/android-1.5_r04-linux.zip

2, install sdk and tools

cd /opt

unzip android-1.5_r04-linux.zip

unzip tools_r06-linux.zip

3, fixed apkbuilder bug for me (我自己修改的)

edit file /opt/tools_r06-linux/apkbuilder

append follow content into line 49

###### append begin ######

if [ ! -r "$frameworkdir/$jarfile" ]

then

progdir="$0"

frameworkdir=`dirname "$progdir"`/lib

libdir=`dirname "$progdir"`/lib

fi

###### append end ######

4, 处理环境变量

export JAVA_HOME=/usr/lib/jvm/java-6-sun

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:${CLASSPATH}

export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin

export

PATH=${PATH}:${JAVA_PATH}:/opt/android-1.5_r04-linux/tools:/opt/tools_r06-linux

5, 以下以android sdk里的HelloActivity为例子介绍

cd android-1.5_r04-linux/samples/HelloActivity

mkdir bin

mkdir assets

mkdir -p gen/com/example/android/helloactivity

6, 使用aapt命令生成R.java类文件:

例:

aapt package

-f -m -J gen

-S res

-I /opt/android-1.5_r04-linux/android.jar

-M `pwd`/AndroidManifest.xml

其中

-f -m -J gen 代表按覆盖的形式在gen目录下生成带包路径的R.java

-S res 指定资源文件

-I android.jar 指定使用的android

-M AndroidManifest.xml 指定程序的配置文件

7, 使用aidl命令把.aidl转成.java文件 (没有.aidl文件则跳过)

aidl -p${android-framework} -I${srcdir} dir="${srcdir} **/*.aidl

8, 编译.java类文件生成class文件:

例:

javac -encoding GB18030

-target 1.5

-bootclasspath /opt/android-1.5_r04-linux/android.jar

-d bin

src/com/example/android/helloactivity/*.java

gen/com/example/android/helloactivity/R.java

9, 使用dx命令行脚本生成classes.dex文件:

例:

dx --dex --output=bin/classes.dex bin

其中

classes.dex为生成的目标文件

bin为class文件所在目录

10, 使用aapt生成资源包文件(包括res、assets、androidmanifest.xml等):

例:

aapt package -f -M AndroidManifest.xml

-S res

-A assets

-I /opt/android-1.5_r04-linux/android.jar

-F bin/resources.ap_

将AndroidManifest.xml,res和assets文件夹中的资源文件打包生成resources.ap_

11, 使用apkbuilder命令生成未签名的apk安装文件:

apkbuilder ${output.apk.file}

-u -z ${packagedresource.file}

-f ${dex.file}

-rf ${source.dir}

-rj ${libraries.dir}

例:

/home/pxw/Public/tools_r06-linux/apkbuilder bin/hello.apk

-v -u -z bin/resources.ap_

-f bin/classes.dex

-rf src

其中

bin/hello.apk 为生成的apk

-z bin/resources.ap_ 为资源包

bin/class.dex 为类文件包

12, 使用jdk的keytool生成证书(密钥)

keytool -genkey

-alias android.keystore

-keyalg RSA

-validity 365

-keystore android.keystore

Enter keystore password:

输入keystore密码:[密码不回显]

Re-enter new password:

再次输入新密码:[密码不回显]

What is your first and last name?

您的姓名是什么?

[Unknown]:  android

What is the name of your organizational unit?

您的组织单位名称是什么?

[Unknown]:  www.android.com.cn

What is the name of your organization?

您的组织名称是什么?

[Unknown]:  www.android.com.cn

What is the name of your City or Locality?

您所在的城市或区域名称是什么?

[Unknown]:  ShenZhen

What is the name of your State or Province?

您所在的州或省份名称是什么?

[Unknown]:  GuangDong

What is the two-letter country code for this unit?

该单位的两字母国家代码是什么

[Unknown]:  CN

Is CN=android, OU=www.android.com.cn, O=www.android.com.cn, L=ShenZhen,

ST=GuangDong, C=CN correct?

[no]:  yes 正确否, yes

Enter key password for输入的主密码

(RETURN if same as keystore password):

(如果和 keystore 密码相同,按回车):

其中

-validity为证书有效天数

输入密码时没有回显,只管输入就可以,一般位数建议使用20位,需要记下来后面

还要用

13, 使用jdk的jarsigner对未签名的包进行apk签名:

jarsigner -keystore ${keystore}

-storepass ${keystore.password}

-keypass ${keypass}

-signedjar ${signed.apkfile}

${unsigned.apkfile}

${keyalias}

例如:

jarsigner -verbose

-keystore android.keystore

-signedjar bin/hello_signed.apk

bin/hello.apk

android.keystore

或者:

jarsigner -verbose

-keystore android.keystore

-storepass 123456

-keypass 123456

-signedjar bin/hello_signed.apk

bin/hello.apk

android.keystore

其中

–keystore f:explorereclipse3.5bbyread.keystore 为密钥文件

-storepass byread002为密钥文件密码,和keytool输入的一样

-keypass byread002为密钥别名密码,和keytool输入的一样

-signedjar bin/hello_signed.apk为签名后生成的apk文件

bin/hello.apk为未签名的文件

byread 为密钥别名

最后

以上就是爱笑季节为你收集整理的linux下android编译,linux下完全命令行搭建android开发环境和开发编译过程的全部内容,希望文章能够帮你解决linux下android编译,linux下完全命令行搭建android开发环境和开发编译过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部