欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7056|回復: 1
收起左側

linux下完全命令行搭建android開發環境和開發編譯過程

[復制鏈接]
ID:51773 發表于 2013-8-9 21:41 | 顯示全部樓層 |閱讀模式
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:\explorer\eclipse3.5\bbyread.keystore 為密鑰文件
-storepass byread002為密鑰文件密碼,和keytool輸入的一樣
-keypass byread002為密鑰別名密碼,和keytool輸入的一樣
-signedjar bin/hello_signed.apk為簽名后生成的apk文件
bin/hello.apk為未簽名的文件
byread 為密鑰別名                                                                                            
回復

使用道具 舉報

ID:90534 發表于 2015-9-19 16:33 | 顯示全部樓層
我輸入dx --dex --output=/home/sunnyhuang/Hello/bin/classes.dex /home/sunnyhuang/Hello/bin/com/example/hellojni/這樣的代碼報錯。錯誤內容是/usr/bin/dx : unrecognized parameter:  [1] (use -help to get usage information)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表