手工打包APK

<center>手工打包APK</center>


1. 設(shè)置SDK環(huán)境變量

添加目錄到環(huán)境變量....

當(dāng)前環(huán)境為4.0的SDK, 1.8額JDK

JAVA SDK目錄

%JAVA_HOME%\bin;

Android SDK根目錄

%ANDROID% = Android SDK 的%Path%

sdk工具目錄

%ANDROID%\sdk\tools;
%ANDROID%\platform-tools;
%ANDROID%\build-tools\23.0.1;對(duì)應(yīng)版本號(hào)的目錄


2. 利用命令行創(chuàng)建Android工程

命令: android create project -n Test -t android-14 -p DstPath -k org.test.test -a test

編譯命令

命令參數(shù)

android create project 的參數(shù)

命令 命令解釋
-n --name 工程名稱
-t --target 項(xiàng)目編譯的目標(biāo)Android版本,詳情見(jiàn)查看安卓版本
-p --path 生成的目標(biāo)目錄
-k --package 指定項(xiàng)目的包名
-a --activity Activity名稱
-g --gradle 使用Gradle模版
-v --gradle-vers Gradle版本

查看安卓版本

可以使用android.bat list targets命令查看當(dāng)前安裝的AndRoid版本,(ID或者名稱)

查看當(dāng)前安裝的版本


3. 編譯資源

利用AAPT編譯資源文件

  1. 先切換命令行到工程目錄,
  2. 根目錄新建一個(gè)gen目錄,
  3. 然后輸入命令產(chǎn)生R.java文件
    aapt package -f -m -J gen -S res -I %Android%\platforms\android-14\android.jar -M AndroidManifest.xml
AAPT參數(shù)
命令 命令解析
-f 覆蓋現(xiàn)有文件
-m 產(chǎn)生包目錄在J命令所指目錄之下
-J 指定R.java資源文件存放路徑
-S 從什么目錄找到資源文件,可指定多個(gè)文件
-I 指定版本平臺(tái)的android.jar的路徑
-M 指定完整的AndroidManifest.xml路徑包含到ZIP中
-A assert文件夾的路徑
-F 具體指定apk文件的輸出

4. 使用javac編譯.java文件為.class

javac -source 1.6 -target 1.6 -bootclasspath %Android%/platforms/android-14/android.jar -d bin gen/org/test/test/*.java src/org/test/test/*.java

javac       
-source 1.6     //什么版本JDK源文件
-target 1.6     //什么版本JDK目標(biāo)文件
-bootclasspath %Android%/platforms/android-14/android.jar   //編譯時(shí)可能使用的環(huán)境
-d bin                                                      //輸出目錄
gen/org/test/test/*.java src/org/test/test/*.java           //源目錄
javac
命令 功能
-target 表示編譯之后的class文件運(yùn)行的環(huán)境版本
-bootclasspath 表示編譯需要用到的系統(tǒng)庫(kù)
-d 表示編譯之后的class文件存放的目錄

5. 使用dx 生成 .dex文件

dx版本dx version 1.11 (23.0.1目錄下dx文件)

dx --dex --output=bin/classes.dex bin\org\test\test

Tips: 轉(zhuǎn)換時(shí)出錯(cuò)了, 給javac編譯版本從1.8轉(zhuǎn)換為1.6之后轉(zhuǎn)換成功


5. 使用aapt生成資源包文件

根目錄新建assets文件夾
aapt package -f -A assets -S res -I %Android%/platforms/android-14/android.jar -M AndroidManifest.xml -F bin/test


6.打包一個(gè)未簽名的APK

解決apkbuilder不存在的問(wèn)題

copy android.bat apkbuilder.bat
修改com.android.sdkmanager.Maincom.android.sdklib.build.ApkBuilderMain

產(chǎn)生未簽名的APK

apkbuilder 目標(biāo)文件路徑與文件名.apk -v -u -z 資源包文件路徑與文件名 -f dex文件路徑與文件名 -rf 源文件路徑
路徑均為全路徑

Apkbuilder
Apkbuilder
命令 功能
-z 資源打包文件
-f 類打包文件
-rf 源代碼目錄

7. 使用keytool來(lái)產(chǎn)生一個(gè)keystore文件

keytool -genkey -alias CR23Test -keyalg RSA -validity 20000 -keystore CR23Test.keystore

命令 功能
-alias KeyName 表示別名
-keyalg RSA 產(chǎn)生鍵的加密算法
-validity 40000 有效期限4000天
-keystore 保存到本地的文件名

8. 簽名APK

jarsigner -verbose -keystore CR23Test.keystore -signedjar HelloWorld_signed.apk HelloWorld.apk CR23Test

jarsigner -verbose
-keystore keystore文件名
-signedjar 簽名后的apk名稱 需簽名apk名稱
keystore中的別名(不是文件名)

注意:上面的keystore中的別名,一定記住不是文件名,如果寫文件名就會(huì)提示
jarsigner: 找不到 xxx 的證書鏈项炼。xxx 必須引用包含私有密鑰和相應(yīng)的公共密鑰證書鏈的有效密鑰庫(kù)密鑰條目。


9. 安裝APK

adb install HelloWorld_signed.apk

成功圖


10. 卸載APK

adb uninstall org.test.test

填寫應(yīng)用的包名


Tips

Android 版本號(hào)說(shuō)明

安卓版本
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末轴脐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唁盏,老刑警劉巖蚕苇,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哩掺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡涩笤,警方通過(guò)查閱死者的電腦和手機(jī)嚼吞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門盒件,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人舱禽,你說(shuō)我怎么就攤上這事炒刁。” “怎么了誊稚?”我有些...
    開(kāi)封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵翔始,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我里伯,道長(zhǎng)城瞎,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任疾瓮,我火速辦了婚禮脖镀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘狼电。我一直安慰自己蜒灰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布漫萄。 她就那樣靜靜地躺著卷员,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腾务。 梳的紋絲不亂的頭發(fā)上毕骡,一...
    開(kāi)封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音岩瘦,去河邊找鬼未巫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛启昧,可吹牛的內(nèi)容都是我干的叙凡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼密末,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼握爷!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起严里,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤新啼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后刹碾,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體燥撞,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了物舒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片色洞。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冠胯,靈堂內(nèi)的尸體忽然破棺而出火诸,到底是詐尸還是另有隱情,我是刑警寧澤涵叮,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布惭蹂,位于F島的核電站伞插,受9級(jí)特大地震影響割粮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜媚污,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一舀瓢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧耗美,春花似錦京髓、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蛇摸,卻和暖如春备图,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赶袄。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工揽涮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饿肺。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓蒋困,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親敬辣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子雪标,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容