日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java生成apk工具,生成并运行apk流程

發布時間:2024/1/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java生成apk工具,生成并运行apk流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

生成和運行apk文件相關的組件:

apk文件的編譯流程圖如下:

下面逐一說明:

項目的源文件結構如下:

E:\Example\

│??AndroidManifest.xml

├─assets

├─res

│??├─drawable-hdpi

│??│??????icon.png

│??│

│??├─drawable-ldpi

│??│??????icon.png

│??│

│??├─drawable-mdpi

│??│??????icon.png

│??│

│??├─layout

│??│??????main.xml

│??│

│??└─values

│??????????strings.xml

└─src

└─net

└─claudxiao

└─example

Example.java

1、從res生成R.java

mkdir gen

aapt package -f -m -J gen -S res -I “E:\Program Files\Android\android-sdk-windows\platforms\android-7\android.jar” -M AndroidManifest.xml

其中,-f將覆蓋已有結果,-m -J gen指定輸出路徑,-S指定資源文件目錄,-I指定要包含的包,-M指定AndroidMenifest.xml文件。

2、將.java編譯為.class

mkdir bin

javac -encoding GB18030 -target 1.6 -bootclasspath “E:\Program Files\Android\android-sdk-windows\platforms\android-7\android.jar” -d bin src\net\claudxiao\example\Example.java gen\net\claudxiao\Example\R.java

其中,-target指定類文件的虛擬機版本,-bootclasspath覆蓋引導類文件的位置,-d指定輸出路徑。

3、將.class編譯為classes.dex

dx.bat –dex –output=E:\Example\bin\classes.dex E:\Example\bin

注意這里必須用絕對路徑。

4、將資源文件打包

aapt package -f -M AndroidManifest.xml -S res -A assets -I “E:\Program Files\Android\android-sdk-windows\platforms\android-7\android.jar” -F bin\resources.ap_

-F指定輸出的apk文件。

5、打包成未簽名apk文件

apkbuilder.bat E:\Example\bin\Example_unsigned.apk -u -z E:\Example\bin\resources.ap_ -f E:\Example\bin\classes.dex -rf E:\Example\src

這個命令的常用格式為:

apkbuilder ${output.apk.file} -u -z ${packagedresource.file} -f ${dex.file} -rf ${source.dir} -rj ${libraries.dir}

參數必須使用絕對路徑。

此外,運行后提示這一工具即將被廢棄,但我沒有找到新的替代工具是什么。

6、生成一個簽名

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

當前目錄下生成了一個android.keystore文件

7、對apk文件簽名

jarsigner -keystore E:\Example\android.keystore -storepass claudxiao -keypass claudxiao -signedjar E:\Example\bin\Example.apk E:\Example\bin\Example_unsigned.apk android.keystore

這個命令的常用格式為:

jarsigner -keystore ${keystore} -storepass ${keystore.password} -keypass ${keypass} -signedjar ${signed.apkfile} ${unsigned.apkfile} ${keyalias}

至此,bin\Example.apk就是一個可以安裝的apk文件了。作為對比,現在的目錄結構如下:

E:\Example\

│??android.keystore

│??AndroidManifest.xml

├─assets

├─bin

│??│??classes.dex

│??│??Example.apk

│??│??Example_unsigned.apk

│??│??resources.ap_

│??│

│??└─net

│??????└─claudxiao

│??????????└─example

│??????????????????Example.class

│??????????????????R$attr.class

│??????????????????R$drawable.class

│??????????????????R$layout.class

│??????????????????R$string.class

│??????????????????R.class

├─gen

│??└─net

│??????└─claudxiao

│??????????└─example

│??????????????????R.java

├─res

│??├─drawable-hdpi

│??│??????icon.png

│??│

│??├─drawable-ldpi

│??│??????icon.png

│??│

│??├─drawable-mdpi

│??│??????icon.png

│??│

│??├─layout

│??│??????main.xml

│??│

│??└─values

│??????????strings.xml

└─src

└─net

└─claudxiao

└─example

Example.java

8. 對齊

如果apk是Release模式,則必須使用zipalign工具進行對齊,對齊可減少內存使用。

總結

以上是生活随笔為你收集整理的java生成apk工具,生成并运行apk流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。