欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java代碼封裝apk,java代碼封裝成應(yīng)用程序

java程序如何打包成apk?

首先下載eclipse與android插件,安裝完畢后,建立android項(xiàng)目,編碼完成后,生成keystore,使用jdk自帶的keytoo l-genkey -aliasandroid.keystore -keyalg RSA -validity 100000 -eystore android.keystore

吳川網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,吳川網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為吳川上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的吳川做網(wǎng)站的公司定做!

然后選擇要打包的項(xiàng)目,右鍵點(diǎn)擊–Androidtools–Export Signed Application Package,選擇哪個(gè)項(xiàng)目,下一步后,選擇剛才生成的那個(gè)key和生成時(shí)錄入的密碼,下一步設(shè)置輸出位置。

完成APK生成。

WEB項(xiàng)目不可能生成APK ,如果你現(xiàn)有項(xiàng)目可以把相關(guān)的源碼文件復(fù)制到新建的android項(xiàng)目?jī)?nèi),但是lib包有可能不支持,要看你用了那里lib。

怎樣把JAVA編寫(xiě)的程序封裝成軟件啊???

想要把java生成可執(zhí)行文件需要第三方軟件的支持,不過(guò)在沒(méi)有安裝JDK的機(jī)器上是不可能運(yùn)行JAVA程序的,哪怕是編譯成為exe文件。

將Java應(yīng)用程序本地編譯為EXE的幾種方法(推薦使用JOVE和JET)

1. 從獲得一個(gè)TowerJ編譯器,該編譯器可以將你的CLASS文件

編譯成EXE文件。

2. 利用微軟的SDK-Java 4.0所提供的jexegen.exe創(chuàng)建EXE文件,這個(gè)軟件可以

從微軟的網(wǎng)站免費(fèi)下載,地址如下:

jexegen的語(yǔ)法如下:

jexegen /OUT:exe_file_name

/MAIN:main_class_name main_class_file_name.class

[and other classes]

3. Visual Cafe提供了一個(gè)能夠創(chuàng)建EXE文件的本地編譯器。你需要安裝該光盤(pán)

上提供的EXE組件。

4. 使用InstallAnywhere創(chuàng)建安裝盤(pán)。

5. 使用IBM AlphaWorks提供的一個(gè)高性能Java編譯器,該編譯器可以從下面的

地址獲得:

6. JET是一個(gè)優(yōu)秀的Java語(yǔ)言本地編譯器。該編譯器可以從這個(gè)網(wǎng)站獲得一個(gè)

測(cè)試版本:

7. Instantiations公司的JOVE

JOVE公司合并了以前的SuperCede,一個(gè)優(yōu)秀的本地編譯器,現(xiàn)在SuperCede

已經(jīng)不復(fù)存在了。

8. JToEXE

Bravo Zulu Consulting, Inc開(kāi)發(fā)的一款本地編譯器,本來(lái)可以從該公司的

網(wǎng)頁(yè)上免費(fèi)下載的,不過(guò)目前在該公司的主頁(yè)上找不到了。

用showJava轉(zhuǎn)換成源代碼后,怎么打包成apk

最近看了老羅分析android資源管理和apk打包流程的博客,參考其他一些資料,做了一下整理,脫離繁瑣的打包細(xì)節(jié)和數(shù)據(jù)結(jié)構(gòu),從整體上概述了apk打包的整個(gè)流程。

流程概述:

1、打包資源文件,生成R.java文件

2、處理aidl文件,生成相應(yīng)java 文件

3、編譯工程源代碼,生成相應(yīng)class 文件

4、轉(zhuǎn)換所有class文件,生成classes.dex文件

5、打包生成apk

6、對(duì)apk文件進(jìn)行簽名

7、對(duì)簽名后的apk文件進(jìn)行對(duì)其處理

打包過(guò)程使用的工具

名稱 ? ?功能介紹 ? ?在操作系統(tǒng)中的路徑 ? ?源碼路徑 ?

aapt

(Android Asset Package Tool)

Android資源打包工具 ?

${ANDROID_SDK_HOME} /build-tools/

ANDROID_VERSION/aapt

frameworks\base\tools\aap ?

aidl

(android interface definition language)

Android接口描述語(yǔ)言,

將aidl轉(zhuǎn)化為.java文件的工具

${ANDROID_SDK_HOME}/build-tools/

ANDROID_VERSION/aidl

frameworks\base\tools\aidl ?

javac ? ?Java Compiler ?

${JDK_HOME}/java

c或/usr/bin/javac

dex ?

轉(zhuǎn)化.class文件為Davik VM

能識(shí)別的.dex文件

${ANDROID_SDK_HOME}/build-tools/

ANDROID_VERSION/dx

apkbuilder ? ?生成apk包 ?

${ANDROID_SDK_HOME}/tools/

apkbuilder

sdk\sdkmanager\libs\sdklib\

src\com\android\sdklib\build\

ApkBuilderMain.java

jarsigner ? ?.jar文件的簽名工具 ? ?${JDK_HOME}/jarsigner或/usr/bin/jarsigner ? ?? ?

zipalign ? ?字節(jié)碼對(duì)齊工具 ?

${ANDROID_SDK_HOME}/tools

/zipalign

第一步:打包資源文件,生成R.java文件。

【輸入】Resource文件(就是工程中res中的文件)、Assets文件(相當(dāng)于另外一種資源,這種資源Android系統(tǒng)并不像對(duì)res中的文件那樣優(yōu)化它)、AndroidManifest.xml文件(包名就是從這里讀取的,因?yàn)樯蒖.java文件需要包名)、Android基礎(chǔ)類庫(kù)(Android.jar文件)

【工具】aapt工具

【輸出】打包好的資源(bin目錄中的resources.ap_文件)、R.java文件(gen目錄中)

打包資源的工具aapt,大部分文本格式的XML資源文件會(huì)被編譯成二進(jìn)制格式的XML資源文件,除了assets和res/raw資源被原裝不動(dòng)地打包進(jìn)APK之外,其它的資源都會(huì)被編譯或者處理。?。

生成過(guò)程主要是調(diào)用了aapt源碼目錄下的Resource.cpp文件中的buildResource()函數(shù),該函數(shù)首先檢查AndroidManifest.xml的合法性,然后對(duì)res目錄下的資源子目錄進(jìn)行處理,處理的函數(shù)為makeFileResource(),處理的內(nèi)容包括資源文件名的合法性檢查,向資源表table添加條目等,處理完后調(diào)用compileResourceFile()函數(shù)編譯res與asserts目錄下的資源并生成resources.arsc文件,compileResourceFile()函數(shù)位于aapt源碼目錄的ResourceTable.cpp文件中,該函數(shù)最后會(huì)調(diào)用parseAndAddEntry()函數(shù)生成R.java文件,完成資源編譯后,接下來(lái)調(diào)用compileXmlfile()函數(shù)對(duì)res目錄的子目錄下的xml文件分別進(jìn)行編譯,這樣處理過(guò)的xml文件就簡(jiǎn)單的被“加密”了,最后將所有的資源與編譯生成的resorces.arsc文件以及“加密”過(guò)的AndroidManifest.xml文件打包壓縮成resources.ap_文件(使用Ant工具命令行編譯則會(huì)生成與build.xml中“project name”指定的屬性同名的ap_文件)。

關(guān)于這一步更詳細(xì)的流程可閱讀

第二步:處理aidl文件,生成相應(yīng)的java文件。

【輸入】源碼文件、aidl文件、framework.aidl文件

【工具】aidl工具

【輸出】對(duì)應(yīng)的.java文件

對(duì)于沒(méi)有使用到aidl的android工程,這一步可以跳過(guò)。aidl工具解析接口定義文件并生成相應(yīng)的java代碼供程序調(diào)用。

第三步:編譯工程源代碼,生成下相應(yīng)的class文件。

【輸入】源碼文件(包括R.java和AIDL生成的.java文件)、庫(kù)文件(.jar文件)

【工具】javac工具

【輸出】.class文件

這一步調(diào)用了javac編譯工程src目錄下所有的java源文件,生成的class文件位于工程的bin\classes目錄下,上圖假定編譯工程源代碼時(shí)程序是基于android SDK開(kāi)發(fā)的,實(shí)際開(kāi)發(fā)過(guò)程中,也有可能會(huì)使用android NDK來(lái)編譯native代碼,因此,如果可能的話,這一步還需要使用android NDK編譯C/C++代碼,當(dāng)然,編譯C/C++代碼的步驟也可以提前到第一步或第二步。

第四步:轉(zhuǎn)換所有的class文件,生成classes.dex文件。

【輸入】 .class文件(包括Aidl生成.class文件,R生成的.class文件,源文件生成的.class文件),庫(kù)文件(.jar文件)

【工具】dx工具

【輸出】.dex文件

前面多次提到,android系統(tǒng)dalvik虛擬機(jī)的可執(zhí)行文件為dex格式,程序運(yùn)行所需的classes.dex文件就是在這一步生成的,使用的工具為dx,dx工具主要的工作是將java字節(jié)碼轉(zhuǎn)換為dalvik字節(jié)碼、壓縮常量池、消除冗余信息等。

第五步:打包生成apk。

【輸入】打包后的資源文件、打包后類文件(.dex文件)、libs文件(包括.so文件,當(dāng)然很多工程都沒(méi)有這樣的文件,如果你不使用C/C++開(kāi)發(fā)的話)

【工具】apkbuilder工具

【輸出】未簽名的.apk文件

打包工具為apkbuilder,apkbuilder為一個(gè)腳本文件,實(shí)際調(diào)用的是android-sdk\tools\lib\sdklib.jar文件中的com.android.sdklib.build.ApkBuilderMain類。它的代碼實(shí)現(xiàn)位于android系統(tǒng)源碼的sdk\sdkmanager\libs\sdklib\src\com\android\sdklib\build\ApkBuilderMain.java文件,代碼構(gòu)建了一個(gè)ApkBuilder類,然后以包含resources.arsc的文件為基礎(chǔ)生成apk文件,這個(gè)文件一般為ap_結(jié)尾,接著調(diào)用addSourceFolder()函數(shù)添加工程資源,addSourceFolder()會(huì)調(diào)用processFileForResource()函數(shù)往apk文件中添加資源,處理的內(nèi)容包括res目錄與asserts目錄中的文件,添加完資源后調(diào)用addResourceFromJar()函數(shù)往apk文件中寫(xiě)入依賴庫(kù),接著調(diào)用addNativeLibraries()函數(shù)添加工程libs目錄下的Native庫(kù)(通過(guò)android NDK編譯生成的so或bin文件),最后調(diào)用sealApk()關(guān)閉apk文件。

第六步:對(duì)apk文件進(jìn)行簽名。

【輸入】未簽名的.apk文件

【工具】jarsigner

【輸出】簽名的.apk文件

android的應(yīng)用程序需要簽名才能在android設(shè)備上安裝,簽名apk文件有兩種情況:一種是在調(diào)試程序時(shí)進(jìn)行簽名,使用eclipse開(kāi)發(fā)android程序時(shí),在編譯調(diào)試程序時(shí)會(huì)自己使用一個(gè)debug.keystore對(duì)apk進(jìn)行簽名;另一種是打包發(fā)布時(shí)對(duì)程序進(jìn)行簽名,這種情況下需要提供一個(gè)符合android開(kāi)發(fā)文檔中要求的簽名文件。簽名的方法也分兩種:一種是使用jdk中提供的jarsigner工具簽名;另一種是使用android源碼中提供的signapk工具,它的代碼位于android系統(tǒng)源碼build\tools\signapk目錄下。

第七步:對(duì)簽名后的apk文件進(jìn)行對(duì)齊處理。

【輸入】簽名后的.apk文件

【工具】zipalign工具

【輸出】對(duì)齊后的.apk文件

這一步需要使用的工具為zipalign,它位于android-sdk\tools目錄,源碼位于android系統(tǒng)源碼的build\tools\zipalign目錄,它的主要工作是將spk包進(jìn)行對(duì)齊處理,使spk包中的所有資源文件距離文件起始偏移為4字節(jié)整數(shù)倍,這樣通過(guò)內(nèi)存映射訪問(wèn)apk文件時(shí)速度會(huì)更快,驗(yàn)證apk文件是否對(duì)齊過(guò)的工作由ZipAlign.cpp文件的verify()函數(shù)完成,處理對(duì)齊的工作則由process()函數(shù)完成。

以一個(gè)具體項(xiàng)目中包含的具體文件為例作圖如下:

Android下怎么將JAVA打包成apk

1.用aapt命令生成R.java文件

2.用aidl命令生成相應(yīng)java文件

3.用javac命令編譯java源文件生成class文件

4.用dx.bat將class文件轉(zhuǎn)換成classes.dex文件

5.用aapt命令生成資源包文件resources.ap_

6.用apkbuilder.bat打包資源和classes.dex文件,生成unsigned.apk

7.用jarsinger命令對(duì)apk認(rèn)證,生成signed.apk

為了便于理解和記憶,下面來(lái)用一張流程圖來(lái)說(shuō)明以上的幾個(gè)過(guò)程:

網(wǎng)頁(yè)標(biāo)題:java代碼封裝apk,java代碼封裝成應(yīng)用程序
標(biāo)題來(lái)源:http://chinadenli.net/article25/dsiiiji.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPTGoogle全網(wǎng)營(yíng)銷推廣網(wǎng)站營(yíng)銷品牌網(wǎng)站建設(shè)定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化