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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7123|回復: 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 為密鑰別名                                                                                            
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久午夜精品 | 爱福利视频网 | 色婷婷成人 | 99热这里| 欧美日韩性 | 日本午夜视频 | 久久久久久久成人 | 9.1成人看片免费版 国产草草影院 | 在线观看国产免费视频 | 一区二区三区四区国产 | 午夜美女福利视频 | 日韩一区二区免费视频 | 中文字幕在线免费视频 | 日日干干 | 日韩精品免费观看 | 日韩伦理视频 | 欧美一级二级三级 | 欧美激情中文字幕 | 日本熟妇毛耸耸xxxxxx | 免费黄色片网站 | 免费日韩av | 在线一区二区三区 | 日韩在线免费视频 | 午夜精品福利视频 | 香蕉视频一直看一直爽 | 亚洲色综合 | 免费不卡av| 精品一区二区三区中文字幕 | 欧美一级日韩一级 | 日本特黄视频 | 欧美精品亚洲 | 久久久午夜 | 久久天堂网 | 91午夜精品亚洲一区二区三区 | 波多野结衣一级 | 亚洲视频一区二区三区四区 | 在线看片a | 亚洲一区久久 | 日本在线一区二区三区 | 婷婷久久五月天 | 国产精品毛片va一区二区三区 |