導航:首頁 > 源碼編譯 > android源碼打包成apk原理

android源碼打包成apk原理

發布時間:2023-06-10 20:01:41

① 用1個android軟體的源碼如何做成apk安裝包


你再看bin下面會有個.apk

② 安卓手機用java來開發。但是擴展名並非JAR,而是APK為什麼

因為android使用的Java語言只能算一種非正式的「方言」變種。
只在語言層面用了Java的語法,並沒有用Java的平台。
android不遵守JCP的各項JSR標准,沒有通過oracle的平台測試包測試並獲得認證,也就不能稱之為「java」。進一步不能使用任何Java商標。
android沒有發布語言標准,只能看成約等於Java 5.0的語法。
由Google一家來決定android的開發的語法和api,比Java平台來說要相對封閉。
從標准化的角度,屬於退步。但android的開源免費彌補了一些標准不足。

平台方面,類庫是繼承Apache Harmony針對Java 5的庫。虛擬機用的google自己開發的dalvik虛擬機。和JVM不同,android的java代碼被編譯成class位元組碼後還要再次編譯成dex的位元組碼,再打包成APK由dalvik虛擬機執行。執行時不再是java的bytecode,用的完全不同的dalvik位元組碼指令語言。執行JAR需要符合Java標準的平台,而android平台不符合任何java標准,所以android環境也就不能直接執行JAR。

③ Android 將 apk 反編譯為源碼

將 apk 解壓,在解壓後的文件夾中可以找到 classes.dex 文件。(除了 classes.dex 文件,可能還會有 classes2.dex , classes3.dex 等等,本文以 classes.dex 為例,對其他幾個 dex 文件的操作是類似的)

使用 dex2jar 工具,將 dex 文件轉換為 jar 文件

使用方式:

執行命令後,生成的 classes-dex2jar.jar 就是我們需要的 jar 文件。

使用 Luyten 工具查看 jar 文件,就能看到反編譯後的源碼了。

本例中, classes.dex 文件中存儲的是 android 的一些基礎庫,實際編寫的源碼在 classes3.dex 中,對 classes3.dex 執行第二步,查看生成的 classes3-dex2jar.jar 文件,可以看到如下內容:

這就是反編譯 apk 的基本操作了。

Cmder 是一個非常好用的命令行工具。

效果如下:

只需要執行 apk2jar 命令,就可以實現把 apk 解壓到 apk_ 文件夾中,並將 apk_ 文件夾中的 classes.dex 文件轉換為 jar 。原理就是通過 Cmder 添加別名,把上述的第一步和第二步中執行的命令行組合起來了。

為 Cmder 添加別名很簡單,編輯 Cmder安裝目錄\config\user_aliases.cmd 文件,將別名添加到裡面即可。本例添加的別名如下:

其中:

④ 如何用Android 源碼生成APK簽名文件

我們很多應用需要用到系統簽名,可以通過生成系統簽名文件,在生成apk時使用這個簽名,然後可以安裝到機器中,不需要放在源碼里編譯,重新刷系統。

先附上 50和 20機器人通用的debugkey(圖已經省略)

在Linux環境中,以Android源碼目錄為根目錄。

其中的platform.pk8是製作系統簽名需要的文件。

1、在這個目錄下,執行

生成臨時文件platform.pem

2、接著執行以下命令,將在目錄下生成platform.p12文件,它本質上應該就是一個數字證書

3、然後再執行以下命令出現以下信息,表示成功生成platform.jks

這個名字可以改成debug.keystore. 它的後綴本身是沒有關系,eclipse和AS都識別 platform.jks

4、然後在打包 apk 的時候選擇platform.jks文件,就可以直接用adb命令安裝apk到機器中了。

xxxx表示需要安裝的apk路徑
5、簽名的 Key store password和Key password都是android

⑤ Android下怎麼將JAVA打包成apk

將你的java代碼放到一個Android工程里去
之後在某個Activity或者Service里調用就行了
只有Android工程才導出apk的

⑥ android 工程 如何一鍵編譯打包成apk

打包步驟:

1、生成keystore

按照下面的命令行在C:ProgramFilesJavajdk1.6.0_10in>目錄下,輸入keytool-genkey-aliasandroid.keystore-keyalgRSA-validity100000-keystoreandroid.keystore

參數意義:-validity主要是證書的有效期,寫100000天;空格,退格鍵都算密碼。

命令執行後會在C:ProgramFilesJavajdk1.6.0_10in>目錄下生成android.keystore文件。如圖-1

圖-2EclipseAndroid打包工具

接下來的步驟就是不斷的next。下面僅貼出圖片,不解釋。

step2:選擇打包的項目

step3:選擇生成的EclipseAndroid.keystore文件並輸入密碼

step4:選擇aliaskey並輸入密碼

step5:最後選擇生成androidapk文件的目錄及文件名

最終生成的apk文件。

⑦ 網上下的APP源碼,問問大佬怎麼變成APK格式

到網上搜索下安卓開發環境搭建,用eclipse打開這個文件夾運行編譯就可以了。

⑧ 怎麼把Android工程打包成apk

你好
第一步,把普通的android project設置成庫項目
庫項目也是一個標準的android項目,因此你先創建一個普通的android項目。 這個項目可以起任何的名稱,任何的報名,設置其他需要設置的欄位等,如圖1所示。
接著把項目設置成庫項目,步驟如下
在Package Explorer中, 滑鼠右鍵項目文件夾,點擊 Properties.
在Properties 窗口, 選擇"Android" ,Library 屬性顯示在右下邊.
把"is Library" 單選框選擇上,再點擊 Apply.
點擊 OK 關閉Properties 窗口.
這時,這個項目就變成庫項目了。
當然,java項目也可以讓其變成一個庫項目,非常簡單,執行上面的四步。其他程序項目就可以引用庫項目了。
圖 1.使一個項目為庫項目
創建manifest文件
一個庫項目的manifest文件也和標準的android應用程序一樣,聲明所有共享的組件。
比如APIDemo中的TicTacToeLib 這個例子,庫項目聲明了Activity GameActivity:
<manifest>
...
<application>
...
<activity android:name="GameActivity" />
...
</application>
</manifest>

第二步 引用庫項目
如果你開發的應用程序想要包括庫項目中的代碼和資源,非常簡單,引用步驟如下

在Package Explorer中, 滑鼠右鍵項目文件夾,點擊 Properties.
在Properties 窗口, 選擇"Android" ,Library 屬性顯示在右下邊.
點擊Add ,打開了Project Selection 對話框.
從可用庫項目列表選擇一個項目,然後點擊 OK.
對話框關閉之後點擊 Apply (在Properties 窗口).
點擊 OK 關閉Properties 窗口.

完成以上六步,Eclipse 會重建項目,把庫項目中的內容包含進去。 如圖2所示
圖 2. 讓項目引用一個庫項目
如果你想增加多個庫項目的引用,使用up和down可以設置他們的相對的優先順序和合並順序。工具在合並引用的庫的時候順序是從低優先順序(列表的下面)到高優先順序(列表的上面)。 如果不只一個庫定義了相同的資源ID,這個工具選擇資源時會選擇高優先順序的資源。應用程序自身擁有最高的優先順序,自身的資源zThe application itself has highest priority and its resources are always used in preference to identical resource IDs defined in libraries.

在menifest文件中聲明庫中的組件
在manifest 文件中必須增加對在當前程序中用到的庫項目中的所有的組件 。比如,你必須聲明任何用到的 <activity>, <service>, <receiver>, <provider>等,<permission>, <uses-library>, 和其他類似的元素。
聲明庫項目中的組件時,必須使用包含包名的類全名。
在TicTacToeMain 例子中,聲明庫Activity GameActivity :

<manifest>
...
<application>
...
<activity android:name="com.example.android.tictactoe.library.GameActivity" />
...
</application>
</manifest>

For more information about the manifest file, see the documentation for AndroidManifest.xml.
望採納祝你好運

閱讀全文

與android源碼打包成apk原理相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:893
app轉賬是什麼 瀏覽:163