APP與SDK的關系是什么?
先說apk,APK是AndroidPackage的縮寫,即Android安裝包(apk),是安卓的應用程序的文件格式。安卓專屬,區別于iOS應用程序的ipa,pxl,deb格式,wp8(10)應用程序的xap(appx)格式。 一.格式定義 在Android平臺中dalvik vm的執行文件被打包為apk格式,最終運行時加載器會解壓然后獲取編譯后的androidmanifest.xml文件中的permission分支相關的安全訪問,但仍然存在很多安全限制,如果你將apk文件傳到/system/app文件夾下會發現執行是不受限制的。安裝的文件可能不是這個文件夾,而在androidrom中,系統的apk文件默認會放入這個文件夾,它們擁有著root權限。 二.文件結構 1. META-INF\ (注:Jar文件中常可以看到); 2. res\ (注:存放資源文件的目錄) ; 3. AndroidManifest.xml (注:程序全局配置文件) ; 4. classes.dex (注:Dalvik字節碼); 5. resources.arsc (注:編譯后的二進制資源文件)。 三.開發環境 Android是一個基于Java的開發環境,它是一種與廣被接受的 Java極為類似,而且也比C++容易得多的開發語言,這是一種規范的移動開發環境。Google也在API文檔的書寫和樣例的提供上做了很出色的工作。 獲取SDK 下載并安裝android的SDK[軟件開發套件],這套SDK主要包括有核心庫文件,一個模擬器,開發工具和一些示范的樣例文件。推薦使用Eclipse 和androideclipse 擴展。如果只是使用android,Eclipse IDE就已經足夠了,但如果是第一次開發Java應用,建議下載完整的Java SE 開發工具 (JDK) 因為它包括簽發應用程序所需要的工具。 應用架構 android應用架構很關鍵,如果不學習它,設計出來的游戲將是一種很難修復bug的產品。 需要了解應用程序、活動、Intents以及它們是如何互相聯系交互的,Google在這兒提供了良好的信息架構。真正重要的是,要理解為什么在設計的游戲中需要不止一個的活動進程以及如何設計一個用戶體驗良好的游戲。這些都應當配合到應用的生命周期中。 應用的生命周期 應用的生命周期是由AndroidOS操作系統進行管理的活動進程都將做為系統命令進行創建,正確處理這些事件對一個應用程序來說是極為重要的,因為終端用戶不會知道什么是正確的。最好在開始設計游戲之前搞明白這些,因為這有助于節省調試時間以及避免代價高昂的重新設計。對大多數應用而言,默認設置即可開始工作,但對游戲而言,可能需要調整單態實例的信號為打開。在默認情況下,Android會新建一個活動實例進程,因為它認為這是比較合適的,而游戲,可能只希望有一個活動的實例進程,這有一點兒影響,它需要了解一些系統狀態的管理。 四.apk反編譯 apk反編譯就是通過使用apk編譯工具將apk文件中的源文件和資源反編譯出來,得到的源文件和資源文件可以進行處理后再進行編譯,以達到個性化定制,漢化apk等目的。[1] apk反編譯工具 1、最典型的apk編譯工具的核心是apktool,但是因為操作需要調用cmd命令,所以出現了很多具有可視化界面的各種編譯工具,像easyapk,apkdb,doapk 2、dex2jar.jar,將apk中的classes.dex轉化成Jar文件,再通過jd-gui工具反編譯jar文件。 apk編譯方法 使用apkdb編譯apk文件只需要在安裝apkdb后直接右擊反編譯就可以將apk文件反編譯出來 1、使用原生apktool工具,需要將apktool的兩個文件釋放到window目錄下,在cmd中使用 apktool d apk文件名 命令來編譯apk文件,此時命令行的執行目錄與apk文件所在目錄必須一致。 2、首先將apk文件,將后綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄,運行 dex2jar.bat classes.dex。再說APP,APP指的是智能手機的第三方應用程序,Application的縮寫 。簡單來說就是智能設備(包括手機,平板,智能電視等~~)所用的軟件!