安卓應用如何工作,裡面都有些什麼文件——揭秘app那點事

2020-12-14 幽居客

我們生活中使用手機,經常每一天不停的安裝或者刪除應用。那這些應用都是怎麼做出來的呢?到底是怎麼運行工作的呢?安裝包裡面到底有什麼文件呢?

今天我給大家揭開這個謎題。說到應用,大家肯定想到是程式設計師編程出來的。如果從最基礎的編程講起,可能大家感覺太複雜,也太晦澀難懂。所以我今天就從別人做好的應用下手,看看應用有哪些文件?這些文件到底起怎麼作用?

下面我們以安卓安裝包apk文件作為例子。apk其實就是一個壓縮文件,把它的文件擴展名改成zip格式之後可以直接解壓,今天,我們拆開一個安卓應用的安裝包,看看裡面到底都有些什麼。

我們隨便拿個app做實驗,因為apk是個壓縮文件,所以直接把它的擴展名改為zip即可。

將安裝包解壓後,我們可以看到裡面的一些文件夾和文件

這些文件有什麼用呢?這些應用所有的代碼、資源和配置文件都在裡面,接下來我主要給大家講一些主要文件的功能。

1,/assets

通常這個文件夾裡存放的是一些靜態文件,比如說明文檔或者字體文件,我們以上圖app安裝包為例,它的/assets目錄下有個名為fonts的子目錄,打開它,我們可以看到兩個ttf格式的字體文件。

當然了,不同類型應用的安裝包,它/assets裡面包含的資源也是不同的,比如有些瀏覽器應用的/assets目錄下有很多html格式的文件,這些文件用瀏覽器可以直接打開。

2,/META-INF

通常這個文件夾裡存放的是安裝包的籤名證書和安裝包中所有文件哈希值的計算結果。

應用程式的安裝包在打包的時候,每個文件都會經過校驗計算,計算結果就存放在/META-INF裡,我們可以直接使用文本編輯器來打開後綴名為MF和SF的記錄這些文件校驗計算結果的文件。

在我們安裝一個應用的時候,系統會首先根據/META-INF裡的文件校驗結果來核實安裝包中文件的正確性和完整性,目的是確保安全,避免用戶安裝到遭受過病毒感染的或者被惡意篡改過的應用程式。

這個文件夾下的RSA格式的文件是開發者對該應用程式進行籤名的籤名證書文件,你若玩過塞班系統,那應該對這個詞並不陌生,這也是為了保證應用程式和系統的安全,籤名文件不是純文本格式,不過當我們用文本編輯器打開它時,可以在亂碼中零散地看到Microsoft Corporation字樣。

3,/res

res是resource的縮寫,裡面存放的是應用程式的資源文件,比如圖片素材和布局文件,這個文件夾下有很多子目錄,

其中,以anim開頭的文件夾,通常裡面存放的是應用程式的動畫效果資源;

以color開頭的文件夾,通常裡面存放的是應用程式的各種顏色值;

以drawable開頭的文件夾,通常裡面存放的是應用程式的圖片或圖形資源;

有些以drawable開頭的文件夾在結尾會跟著諸如hdpi、xhdpi這樣表示解析度的字符,目的是適配不同解析度的屏幕。

我們來進入一個以drawable開頭的文件夾,可以看到裡面有png和webp格式的圖片,其中,webp格式的圖片可以用旗魚瀏覽器打開:

以layout開頭的文件夾,通常裡面存放的是應用程式的界面布局文件;

4,/AndroidManifest.xml

AndroidManifest.xml是一個單獨的文件,裡面包含很多信息,比如應用程式的包名、數據權限、接口權限、版本信息、安裝參數等等,另外,它還可以聲明應用程式的每一個組件及其屬性,聲明應用程式所申請的權限、進程,聲明顯示模式等等,AndroidMainfest.xml裡面包含的信息太多了,單獨為它開一篇文章都不為過。這是一個非常重要的文件,它的名稱是固定的,不能隨意修改。

5,/classes.dex

這是可在安卓的Dalvik虛擬機中直接運行的字節碼,是由JAVA的原始碼經過複雜的編譯形成的,和傳統的.class文件相比,dex文件的運行效率更高。

6,/lib

通常這個文件夾中會存放一些應用程式依賴的庫,一般以.so結尾。

到了這裡你可能會問了,你讓我們把apk安裝包拆開了,可是裡面的東西有好多都看不了啊,用記事本打開以後是亂碼阿,有什麼用啊?大家先不要著急,我們下一期接著講安卓應用反編譯。可能這個大家看得比較枯燥,下一期我帶大家去做實戰。

相關焦點

  • IT之家學院:安卓的APK安裝包裡都有些什麼?
    應用程式是系統重要的組成部分,我們可以通過很多方式在安卓系統上安裝應用程式,就像Windows系統的exe和塞班系統的sis一樣,安卓系統的應用程式也有其專屬的安裝包格式——apk。安卓apk的全稱是Package,翻譯成中文就是「安卓安裝包」。既然apk是「包」,那就說明裡面包著很多東西,這就讓我很好奇了,裡面到底有些什麼啊?
  • 如何用 Python 寫一個安卓 APP ?
    22點24分準時推送,第一時間送達  編輯:技術君 | 來源:youerning  上一篇:  正文  前言  用 Python 寫安卓 APP 肯定不是最好的選擇,目前用Java和 kotlin
  • 超簡單的教程來了:無需安裝應用程式就可在安卓手機上隱藏文件
    超簡單的教程來了:無需安裝應用程式就可在安卓手機上隱藏文件 2018年12月20日 12:27作者:李普拉斯編輯:李芹文章出處:泡泡網原創
  • 如何用kwetza給安卓應用加後門
    額不是百分百的過殺軟還是有些擔心,這個payload並不是才出現並且也沒有什麼特殊之處。為何不是百分百的檢測出,我也挺納悶的。Step 2:減負對於這一步驟,如果我們著眼於beard.apk就會發現它有些臃腫,所以我們想通過一個單獨的Java Class來完成這個重擔。
  • 如何Python寫一個安卓APP,附源碼!
    熱文導讀 | 點擊標題閱讀重磅實戰:如何用TensorFlow在安卓設備上實現深度學習
  • 放不下的中國市場,谷歌再推安卓app:文件極客
    早前,谷歌就推出了一個名叫Files Go的新程序,便於用戶在手機上管理文件。今日有消息稱,谷歌發布了針對於中國用戶的Files Go——Google 文件極客。這是谷歌在主業務在退出中國市場後推出的第二款安卓APP。
  • 用 Python 寫一個安卓 APP
    APP 肯定不是最好的選擇,目前用Java和 kotlin 寫的居多,但是肯定也是一個很偷懶的選擇,而且實在不想學習 Java,再者,就編程而言已經會的就 Python與Golang(註:Python,Golang水平都一般),那麼久Google了一下Python 寫安卓的 APP 的可能性,還真行。
  • 文件路徑那點事
    這兩天自己事情多點,自己電腦office又出了問題,閒著的去裝了個office365,激活的時候出了些問題然後又卸載,回裝office2016也是各種奇葩問題都遇到了
  • appdata是什麼文件 可以刪除嗎?
    appdata是什麼文件夾,在使用電腦過程中會發現AppData文件夾佔用了很大的空間。許多的用戶們都不禁要問,appdata是什麼文件夾,這個C盤中的文件夾在逐漸吞噬著系統空間。那麼接下來就跟大夥聊聊appdata是什麼文件夾。
  • 安卓PC是什麼鬼?Remix mini告訴你
    (原標題:安卓PC是什麼鬼?Android PC這個概念並不是現在才有,它就是我們常說的安卓盒子。但加上「The world's first ture」這樣的前綴,世界上第一臺真正的安卓電腦?安卓PC是什麼鬼?Remix mini跟現有的安卓盒子到底又有何不同呢?
  • Quest如何安裝非Oculus商店安卓應用,方法來了
    大多數Android TV應用都可以運行,除了谷歌官方應用;3,手機端安卓應用:這裡指的就是安卓手機中使用的應用。考慮到Oculus作業系統並沒有谷歌獨有的Play服務框架,因此不是每個安卓app都能正常運行,而且這些app專為觸屏設計,在VR中可能會遇到輸入方式問題。此外,要使用這類應用,你需要一些額外步驟,具體會在下方解釋。
  • python能否開發安卓應用app?當然可以,python助你輕鬆搞定
    python是非常簡單方便的程式語言,你可以用python很簡潔的實現很多功能,今天就來說說如何用python開發安卓應用app。 app的開發有兩種方式: 第一種,混合開發。
  • 黑莓BBOS10教材之讓app運行如電
    1bb10優化設置A 設置〖應用程式權限〗A 1點〖設置〗>>〖安全和隱私〗>>〖應用程式權限〗A 2設置裡面的權限,如〖最小化運行〗、〖在後臺運行〗等等,假如是〖話筒〗和〖聯繫人〗〖bbm〗之類看個人決定了,另外這個只能設置bb10軟體,如果是轉制或apk的軟體,就無法設置,在後面會介紹到。
  • 如何利用安卓APP來調試藍牙
    若想了解如何在APP中採用低功耗藍牙技術,或只是想創建樣板文件框架代碼,都可以點擊訪問應用加速器套件(App Accelerator Kit)頁面。 要想讓APP的性能更上一層樓,很有必要先了解一下安卓開發中的藍牙API。
  • 安卓用戶不得不知的10個應用商店!
    希望本期的推送可以解決大家找應用下載應用的痛點!文章所提到的平臺及安裝包,都為大家整理好了,關注我的百家號即可獲取!網頁端有個APK下載器,這個功能比較實用,你可以直接輸入Google Play的應用連結,然後就可以直接提取它的APK文件,然後安裝到其他設備。
  • 安卓手機微信語音消息文件如何導出到電腦
    安卓手機微信語音文件是以.amr格式存儲在手機上的,下面我來教大家如何把這些音頻文件導出到電腦,並轉換為通用的音頻格式(wav格式),並且不需要一個一個文件地進行轉換,而是通過批量化的操作,一次進行轉換。
  • 安卓如何訪問電腦硬碟? 安卓手機訪問電腦硬碟文件的方法
    安卓如何訪問電腦硬碟? 安卓手機訪問電腦硬碟文件的方法時間:2017-06-05 14:55   來源:三聯   責任編輯:沫朵 川北在線核心提示:原標題:安卓如何訪問電腦硬碟?安卓手機訪問電腦硬碟文件的方法 關於安卓如何訪問電腦硬碟的問題解答 1.在同一區域網下電腦端設置好密碼 2.打開手機電腦控應用選擇電腦,輸入密碼後就可以訪問電腦各個磁碟的文件了。   原標題:安卓如何訪問電腦硬碟?
  • Win 10 手機運行安卓 app !你敢你先試
    過去幾個月,我們一直在報導微軟正考慮把安卓的 app 移植到 Windows Phone 生態系統。
  • 說說DPI與PPI的那點事
    幸好這也沒有你想像的那麼嚴重,我們後面再說。讓我們先說說單位,因為現在比起像素,你更需要單位來規範多DPI設計。這就是DP和PT起作用的地方。附加: 對於每一個你正在做的設計,像素比都是需要知道的。像素比把屏幕大小和PPI結合起來,讓人們更理解它們。
  • 磁力貓app下載安卓版
    磁力貓是一款手機上的影音播放類應用,能夠為用戶進行全網的資源搜索,本身還擁有龐大的視頻資源庫,只要你想看,這裡全都有。磁力貓app下載安卓版簡介:磁力貓整合全網資源,深度挖掘視頻和圖片文件等等資源,讓我們更快捷、更平等的獲取資源信息,具有界面簡潔,操作簡單的特點,並且可以自由的搜索你想要的內容。