久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: linux下完全命令行搭建android開發環境和開發編譯過程 [打印本頁]

作者: xueren    時間: 2013-8-9 21:41
標題: 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:\explorer\eclipse3.5\bbyread.keystore 為密鑰文件
-storepass byread002為密鑰文件密碼,和keytool輸入的一樣
-keypass byread002為密鑰別名密碼,和keytool輸入的一樣
-signedjar bin/hello_signed.apk為簽名后生成的apk文件
bin/hello.apk為未簽名的文件
byread 為密鑰別名                                                                                            

作者: 卡三角地    時間: 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)




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲免费成人 | 日韩成人精品一区二区 | 一区二区三区四区精品 | 亚洲欧美国产精品 | 在线观看小视频 | 成人毛片在线 | 一级肉体全黄裸片 | 国产成人一区二区 | 欧美视频一区二区三区 | 中文字幕免费在线看线人动作大片 | 精品视频在线免费观看 | 综合av | 日韩福利| 黄色大片免费观看 | 日韩精品视频网站 | 亚洲一级黄色片 | 国产黄色免费看 | av一二三区| 亚洲黄色成人 | 午夜视频免费看 | 日韩精品一区在线 | 精品久久视频 | 青青草原国产 | 日本中文字幕在线播放 | 婷婷狠狠爱 | 国产黄色精品 | 国产精品天堂 | 精品自拍视频 | 久久久成人免费视频 | 丁香婷婷色| 中文字幕国产在线 | 长河落日电视连续剧免费观看 | 国产欧美视频在线观看 | 福利小视频 | 欧美午夜理伦三级在线观看 | 九九精品视频在线观看 | 成人黄色免费视频 | 国产福利在线 | 日韩二三区| 国产免费成人 | 一区二区在线看 |